Trong SQL Server, bạn có thể lưu một truy vấn dưới dạng một dạng xem. Chế độ xem có lợi vì nhiều lý do, bao gồm bảo mật, khả năng sử dụng và sự tiện lợi.
Trong SQL Server, một dạng xem là một bảng ảo có nội dung được xác định bởi một truy vấn. Về cơ bản, nó là một truy vấn viết trước được lưu trữ trên cơ sở dữ liệu.
Một chế độ xem bao gồm một SELECT
và khi bạn chạy một truy vấn đối với dạng xem, bạn sẽ thấy kết quả của nó giống như khi mở một bảng. Chế độ xem được gọi là bảng ảo vì chúng có thể tập hợp dữ liệu từ nhiều bảng, cũng như dữ liệu tổng hợp và hiển thị nó như thể nó là một bảng duy nhất.
Lợi ích của Chế độ xem
Một dạng xem có thể hữu ích khi có nhiều người dùng với các cấp độ truy cập khác nhau, tất cả những người này đều cần xem các phần dữ liệu trong cơ sở dữ liệu (nhưng không nhất thiết là tất cả dữ liệu). Chế độ xem có thể thực hiện những việc sau:
- Hạn chế quyền truy cập vào các hàng cụ thể trong bảng
- Hạn chế quyền truy cập vào các cột cụ thể trong bảng
- Nối các cột từ nhiều bảng và trình bày chúng như thể chúng là một phần của một bảng duy nhất
- Trình bày thông tin tổng hợp (chẳng hạn như kết quả của
COUNT()
chức năng)
Cách tạo chế độ xem
Để tạo chế độ xem, hãy sử dụng CREATE VIEW
, theo sau là SELECT
tuyên bố.
CREATE VIEW ViewName AS SELECT ...
Thats tất cả để có nó. Khi bạn chạy câu lệnh đó, dạng xem được lưu vào cơ sở dữ liệu
Ví dụ
Đây là một ví dụ về cách tạo một chế độ xem và sau đó chọn dữ liệu từ chế độ xem đó.
-
Tạo Chế độ xem
Chạy câu lệnh sau đối với cơ sở dữ liệu Âm nhạc mà chúng tôi đã tạo trong suốt hướng dẫn này.
Ví dụ này tạo một dạng xem được gọi là RockAlbums. Nó chọn tất cả các album đã được chỉ định Thể loại "Rock".
CREATE VIEW RockAlbums AS SELECT AlbumName, ArtistName FROM Albums INNER JOIN Artists ON Albums.ArtistId = Artists.ArtistId INNER JOIN Genres ON Albums.GenreId = Genres.GenreId WHERE Genres.Genre = 'Rock';
-
Xem Chế độ xem
Mở rộng Lượt xem dưới cơ sở dữ liệu áp dụng để xem dạng xem mới được tạo của bạn. Bạn cũng có thể mở rộng các nút của chế độ xem để xem các cột được bao gồm trong định nghĩa của nó.
-
Chạy chế độ xem
Bây giờ chế độ xem đã được tạo, bạn có thể chạy nó bằng cách sử dụng
SELECT
tuyên bố. Bạn có thể chọn mọi thứ hoặc bạn có thể chọn các cột cụ thể, thu hẹp kết quả hơn nữa bằngWHERE
mệnh đề, v.v.SELECT * FROM RockAlbums;
Thay đổi chế độ xem
Bạn có thể sửa đổi chế độ xem của mình bằng ALTER VIEW
tuyên bố.
Tất cả những gì bạn làm là cung cấp định nghĩa chế độ xem mới mà bạn muốn sử dụng. Vì vậy, nó gần giống như tạo một chế độ xem mới với CREATE VIEW
ngoại trừ nó đang thay đổi một câu lệnh hiện có bằng ALTER VIEW
tuyên bố.
Đây là một ví dụ.
-
Thay đổi chế độ xem
Chạy câu lệnh sau. Điều này thêm một cột mới vào lựa chọn của chế độ xem (
ReleaseDate
cột).ALTER VIEW RockAlbums AS SELECT AlbumName, ArtistName, ReleaseDate FROM Albums INNER JOIN Artists ON Albums.ArtistId = Artists.ArtistId INNER JOIN Genres ON Albums.GenreId = Genres.GenreId WHERE Genres.Genre = 'Rock';
-
Chạy chế độ xem
Bây giờ chúng tôi đã thêm
ReleaseDate
của chế độ xem, chúng ta có thể sử dụng cột đó trong các truy vấn SQL của mình đối với chế độ xem.Ví dụ:chúng tôi có thể chọn tất cả các album có ngày phát hành sau một ngày nhất định.
SELECT * FROM RockAlbums WHERE ReleaseDate > '1985-01-01';