Tổng quan về View

SQL View
SQL View

Trong SQL, View hay còn được biết đến với cái tên khung nhìn là kết quả của một câu lệnh SQL. View cũng chứa các cột và dòng giống như một table bình thường.

Tổng quan về View

Khi làm việc với SQL, chúng ta có thể dễ dàng nhận ra. Kết quả của các câu truy vấn cũng có cấu trúc giống như 1 bảng dữ liệu. Người ta gọi các đối tượng này là ‘View’ hoặc khung nhìn.

SQL-Server-Views

Về mặt kỹ thuật, chúng ta có thể hình dung như sau:

  • Bảng dữ liệu sẽ bao gồm: cấu trúc + dữ liệu.
  • Khung nhìn bao gồm: cấu trúc

Và khi hiển thị, dựa vào cấu trúc, dữ liệu sẽ được truy vấn từ các bảng dữ liệu thực.

Những ưu điểm của View

Tất nhiên, khi người ta xây dựng và sử dụng đối tượng View, nó phải có những ưu điểm cụ thể:

Tính bảo mật

Với View, bạn có thể hạn chế quyền truy cập của các users đến một số bảng cụ thể. Tuy nhiên, cho phép họ truy cập một vài thuộc tính trong bảng đó.

Ví dụ, trong CSDL chúng ta muốn hạn chế một số users truy cập vào bảng customers. Để bảo vệ các thông tin của khách hàng. Tuy nhiên, những thông tin cơ bản như Firstname, Lastname thì cần thiết cho các users này thực hiện công việc.

Vậy với View, chúng ta có thể hạn chế users ở mức độ thuộc tính trên từng bảng dữ liệu.

Tính đơn giản

Để dễ hình dùng được sự đơn giản hóa khi sử dụng View, chúng ta hãy tưởng tượng. CSDL cần kết hợp từ 3-4 bảng để thể hiện đầy đủ thông tin của 1 đối tượng. Với các câu truy vấn cơ bản, chúng ta cũng có thể dễ dàng JOIN các bảng này lại. Nhưng những thành viên mới, hoặc những người không giỏi về SQL sẽ gặp ít nhiều khó khăn.

Tuy nhiên, nếu chúng ta nối nhiều bảng và thể hiện chúng qua một view. Thì việc truy vấn dữ liệu sẽ trở nên cực kỳ dễ dàng.

Tính nhất quán

Từ ví dụ của tính đơn giản, chúng ta tiếp tục hình dung. Nếu các bảng dữ liệu được nối với nhau theo 1 thứ tự, một quy chuẩn chung. Thì kết quả trả về của chúng ta cũng đồng bộ và nhất quán hơn.

Quản trị View

Cũng như các đối tượng khác, chúng ta cũng có thể thực hiện các thao tác: tạo mới, cập nhật, liệt kê, sử dụng, xóa …vv

Tạo mới

Với CSDL Chinook của chúng ta, đôi lúc chúng ta cần làm việc với bảng Track, nhưng với tên của Genre hay tên của MediaType trực tiếp, chứ không phải qua Id của chúng. Do đó, để tiện lợi hơn, mình sẽ tạo một View có tên Track_info.

Cú pháp cơ bản để tạo một View trong SQL Server như sau:

Và với CSDL Chinook, chúng ta có.

Liệt kê

Để liệt kê các Views đã tạo trong hệ thống, chúng ta có câu truy vấn:

Sau khi thực thi câu truy vấn này, chúng ta sẽ thấy được View vừa tạo ở trên.

Kết quả câu truy vấn

Truy vấn thông tin

Sau khi liệt kê, chúng ta chắc chắn rằng, view của mình đã được tạo. Tiếp đến có thể sử dụng thêm đoạn mã bên dưới để truy vấn một vài thông tin cơ bản của nó.

Và kết quả, chúng ta có được các thông tin:

kết quả câu truy vấn

Sử dụng view trong câu truy vấn

Sau khi tạo xong View, chúng ta có thể xem nó như 1 bảng dữ liệu. Đo đó, có thể viết các câu truy vấn sử dụng nó như một bảng.

Chắc chắn, chúng ta sẽ nhận về kết quả tương tự như câu truy vấn khởi tạo View.

kết quả truy vấn view

Hay với tác vụ phức tạp hơn, đếm số lượng bài hát trong từng thể loại. Chúng ta có:

Thật đơn giản đúng không nào.

Xóa

Để xóa một view đã tồn tại, chúng ta có cú pháp:

Với Track_info, chúng ta có thể xóa nó bằng câu lệnh: