VIEW trong SQL Server là gì?
Về cơ bản, VIEW là một bảng ảo không thực sự tồn tại trong SQL Server. Nó được tạo ra bởi truy vấn kết hợp 1 hoặc nhiều bảng.
Tạo VIEW trong SQL Server
Cú pháp
CREATE VIEW[ten_schema.]ten_view AS
[WITH { ENCRYPTION | SCHEMABINDING | VIEW_METADATA}
SELECT bieu_thuc
FROM bang
[WHERE dieu_kien
];
ten_schema
Đây là tên của schema (tạm dịch là lược đồ hay không gian tên) mà bảng đó thuộc về.
ten_view
Tên của VIEW muốn tạo.
ENCRYPTION
Mã hóa văn bản của lệnh ALTER VIEW trong sys.syscomments.
SCHEMABINDING
Đảm bảo các định nghĩa bảng không bị chỉnh sửa để không ảnh hưởng tới VIEW.
VIEW_METADATA
Đảm bảo SQL Server có siêu dữ liệu (metadata) của VIEW.
bieu_thuc
Cột hoặc giá trị tính toán muốn thêm vào VIEW.
bang
Bảng định nghĩa VIEW. Phải có ít nhất 1 bảng trong mệnh đề FROM.
WHERE dieu_kien
Tùy chọn. Điều kiện phải đáp ứng để bản ghi được hiển thị trong VIEW.
Ví dụ
CREATE VIEW sp_htk AS
SELECT sanpham.id_sanpham, sanpham.ten_sanpham, hangtonkho.chatluong
FROM sanpham
INNER JOIN hangtonkho
ON sanpham.id_sanpham = hangtonkho.id_sanpham
WHERE sanph
am.id_sanpham >= 1000;
Lệnh CREATE VIEW nói trên sẽ tạo một bảng ảo dựa trên bộ kết quả của lệnh SELECT. VIEW này sẽ có tên sp_htk.
Giờ bạn có thể truy vấn VIEW như dưới đây.
SELECT *
FROM s
p_htk;
Cập nhật VIEW
Bạn có thể chỉnh sửa VIEW trong SQL Server mà không cần xóa đi tạo mới bằng lệnh ALTER VIEW.
Cú pháp
ALTER VIEW [ten_schema.] ten_view AS
[WITH {ENCRYPTION | SCHEMABINDING | VIEW_METADATA}
SELECT bieu_thuc
FROM bang
WHERE d
ieu_kien;
Ví dụ
ALTER VIEWsp_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_san
pham <= 1000;
Ví dụ lệnh ALTER VIEW trên đây sẽ cập nhật VIEW có tên sp_htk mà không phải xóa đi. VIEW cần phải tồn tại trước đó thì mới thực hiện lệnh cập nhật được.
Xóa VIEW
Cú pháp
DROP VIEW ten_view;
ten_view
Tên của VIEW muốn xóa.
Ví dụ
DROP VIEW sp_htk;
Lệnh DROP VIEW này sẽ xóa VIEW có tên sp_htk trong SQL Server.
16 Th12 2020
8 Th1 2021
16 Th12 2020
22 Th12 2020
8 Th1 2021
8 Th1 2021