22/08/2018, 11:22

VIEW trong SQL Server

Bài viết hướng dẫn cách tạo, cập nhật và xóa VIEW trong SQL Server với cú pháp và các ví dụ. 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 ...

Bài viết hướng dẫn cách tạo, cập nhật và xóa VIEW trong SQL Server với cú pháp và các ví dụ.

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 sanpham.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 sp_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 dieu_kien;

Ví dụ

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;

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.

Bài trước: Lệnh DROP TABLE trong SQL Server

Bài sau: GLOBAL TEMPORARY TABLE trong SQL Server

0