Tạo VIEW trong SQL Server

2820 lượt xem
Cú pháp onion trong sql

View là một bảng ảo trong SQL Server được tạo ra bởi các câu lệnh. Vậy cụ thể, sử dụng câu lệnh tạo view trong SQL như thế nào? Hãy cùng theo dõi bài viết sau để xem hướng dẫn cụ thể và chi tiết.

1. Cách tạo view trong SQL

Trong SQL Server, để tạo ra view người ta sẽ sử dụng câu lệnh CREATE VIEW. Có nhiều cách để tạo view, ví dụ tạo từ bảng đơn, nhiều bảng hoặc là từ view khác. Cụ thể cú pháp create view trong sql như sau:

CREATE VIEW ten_view AS

SELECT cot1, cot2…..

FROM ten_bang

WHERE [dieu_kien];

Trong câu lệnh SELECT có thể tạo thêm nhiều bảng. Cách tạo tương tự như khi viết câu truy vấn SQL SELECT bình thường.

2. Ví dụ về VIEW trong SQL

Ví dụ, chúng ta có một bảng NHANVIEN. Trong bảng có các nội dung:

ID TEN TUOI DIACHI LUONG
1 Thanh 32 Haiphong 2000.00
2 Loan 25 Hanoi 1500.00
3 Nga 23 Hanam 2000.00
4 Manh 25 Hue 6500.00
5 Huy 27 Hatinh 8500.00
6 Cao 22 HCM 4500.00
7 Lam 24 Hanoi 10000.00

Cách tạo view trong sql từ bảng NHANVIEN (dùng để lấy tên, tuổi trong bảng) như sau:

SQL > CREATE VIEW NHANVIEN_VIEW AS

SELECT ten, tuoi

FROM NHANVIEN;

Tiếp theo các bạn có thể truy vấn NHANVIEN_VIEW giống với các truy vấn trên bảng thực tế, cụ thể:

SQL > SELECT * FROM NHANVIEN_VIEW;

Kết quả nhận được là:

ten tuoi
Thanh 32
Loan 25
Nga 23
Manh 25
Huy 27
Cao 22
Lam 24

3. With Check Option trong SQL

Nội dung tiếp theo trong bài viết hướng dẫn tạo view trong sql này chính là cách sử dụng With Check Option, đây là một tùy trong trong lệnh CREATE VIEW. Khi sử dụng tùy chọn này có thể bảo đảm các UPDATE và INSERT sẽ thỏa mãn được những điều kiện định nghĩa VIEW nêu ra. Trường hợp không thỏa mãn điều kiện thì khi thực hiện UPDATE, INSERT sẽ trả về một lỗi.

Ví dụ, thực hiện tạo view trong sql server NHANVIEN_VIEW với tùy chọn With Check Option:

CREATE VIEW NHANVIEN_VIEW AS

SELECT ten, tuoi

FROM NHANVIEN

WHERE tuoi IS NOT NULL

WITH CHECK OPTION;

Nếu như người dùng cố gắng thực hiện UPDATE hay INSERT NHANVIEN_VIEW với giá trị tuoi=null thì sẽ xảy ra lỗi. Còn nếu giá trị tuoi khác null thì sẽ thành công.

4. UPDATE một view trong SQL

Các bạn có thể thực hiện UPDATE một view trong SQL bằng lệnh ALTER VIEW. Cụ thể, cú pháp như sau:

ALTER VIEW [ten_schema.] ten_view AS

[WITH {ENCRYPTION | SCHEMABINDING | VIEW_METADATA}

SELECT bieu_thuc

FROM bang

WHERE dieu_kien;

Ví dụ về một trường hợp cần UPDATE một view trong SQL, ta sẽ có:

ALTER VIEW sp_htk AS

SELECT sanpham.ten_sanpham, hangtonkho.soluong

FROM sanpham

INNER JOIN hangtonkho

ON sanpham.id_sanpham = hangtonkho.id_sanpham

WHERE sanpham.id_sanpham >= 500

AND sanpham.id_sanpham <= 1000;

Trong ví dụ trên, các bạn sử dụng lệnh ALTER VIEW để cập nhật mới VIEW có tên sp_htk mà không cần phải xóa view cũ để tạo view mới.

5. Chèn hàng VIEW trong SQL

Các bạn có thể chèn thêm hàng dữ liệu vào trong view và quy tắc cũng giống như UPDATE vậy. Trường hợp này sẽ sử dụng câu lệnh INSERT.

Khi chèn hàng sẽ không thể chèn vào trong NHANVIEN_VIEW vì không thể thực hiện SELECT tất cả các cột NOT NULL từ bảng ban đầu được. Chúng ta sẽ thực hiện chèn hàng mới vào trong một VIEW giống với chèn trong một bảng.

6. Xóa VIEW

Để thực hiện xóa VIEW chúng ta sẽ sử dụng cú pháp DROP VIEW. Cụ thể:

DROP VIEW ten_view;

ten_view

Tên của VIEW muốn xóa.

Ví dụ

DROP VIEW NHANVIEN_VIEW;

Khi thực hiện lệnh này các bạn sẽ xóa được VIEW tên NHANVIEN_VIEW.

Như vậy là chúng tôi đã chia sẻ cho các bạn cách tạo view trong SQL như thế nào và một số câu lệnh khác liên quan tới view. Hy vọng những thông tin trên sẽ hữu ích với các bạn.