[SQLServer] Bài 16: Views

Trong bài này, tôi sẽ giới thiệu về View (còn gọi là bảng ảo). Bản thân View không chứa dữ liệu như Table. View chỉ truy vấn kết hợp dữ liệu từ một bảng hay nhiều bảng có quan hệ lại với nhau.

1. Mục đích

  • Hạn chế tính phức tạp của dữ liệu đến với người dùng
  • Kết nối dữ liệu từ nhiều bảng lại với nhau
  • Sử dụng tài nguyên server để thực hiện việc truy vấn
  • Tạo ra một bảng ảo có dữ liệu như yêu cầu
  • Kết hợp một số hàm và phương thức tạo ra các cột mới

2. Cách tạo

Cú pháp:

CREATE VIEW <Tên_View> 

AS

<Câu lệnh SELECT>

Ví dụ 1: Tạo View từ bảng DonHang gồm 4 cột MaDonHang, NgayDatHang, DiaChiNhanHang và MaBuuChinh

Sử dụng lệnh Select trên View để xem kết quả

Kết quả:

Create view from a table
Hình 1. Tạo view từ 1 bảng

Ví dụ 2: Tạo View từ 2 bảng DonHang và KhachHang với điều kiện lọc NgayDatHang để lấy ra thông tin đơn hàng

Kết quả:

Hình 2. Tạo view từ 2 bảng với điều kiện where

Ví dụ 3:  Tạo View từ 3 bảng thực hiện tính tổng tiền đơn hàng theo từng khách hàng.

Kết quả:

Hình 3. Tạo view từ 3 bảng với kết hợp các hàm tính toán

3. Mã hóa Views

Để mã hóa View các bạn thêm khai báo WITH ENCRYPTION trong câu lệnh tạo View

Cú pháp:

CREATE VIEW <Tên_View> 

WITH ENCRYPTION

AS

<Câu lệnh SELECT>

Ví dụ 4: Tạo view giống ví dụ 3 với thuộc tính WITH ENCRYPTION

Chú ý:

  • WITH ENCRYPTION không sử dụng từ khóa OPTION
  • Nếu sử dụng ALTER VIEW, View sẽ bị thay đổi, DROP VIEW thì View sẽ bị xóa.
  • Sử dụng lệnh sp_helptext vwTinhTien sẽ có thông báo View đã bị mã khóa như sau: The text for object ‘vwTinhTien’ is encrypted.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.