Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tạo một dạng xem trong SQL Server 2017

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 đó.

  1. 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';
  2. 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ó.

  3. 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ằng WHERE 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ụ.

  1. 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';
  2. 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';

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo cơ sở dữ liệu máy chủ SQL với Azure Data Studio

  2. SQL Server 2016

  3. Một câu lệnh SQL Server duy nhất có phải là nguyên tử và nhất quán không?

  4. Làm cách nào để nối nhiều hàng có cùng id trong sql?

  5. Làm cách nào để tạo khóa ngoại trong SQL Server?