PostgreSQL - XEM
Chế độ xem là bảng giả. Đó là, chúng không phải là bảng thực; tuy nhiên xuất hiện như các bảng bình thường để CHỌN. Một khung nhìn có thể đại diện cho một tập hợp con của một bảng thực, chọn một số cột hoặc một số hàng nhất định từ một bảng thông thường. Một khung nhìn thậm chí có thể đại diện cho các bảng đã tham gia. Bởi vì các dạng xem được chỉ định các quyền riêng biệt, bạn có thể sử dụng chúng để hạn chế quyền truy cập vào bảng để người dùng chỉ thấy các hàng hoặc cột cụ thể của bảng.
Một dạng xem có thể chứa tất cả các hàng của bảng hoặc các hàng được chọn từ một hoặc nhiều bảng. Một khung nhìn có thể được tạo từ một hoặc nhiều bảng, điều này phụ thuộc vào truy vấn PostgreSQL đã viết để tạo một khung nhìn.
Chế độ xem, là một loại bảng ảo, cho phép người dùng thực hiện những việc sau:
Cấu trúc dữ liệu theo cách mà người dùng hoặc lớp người dùng thấy tự nhiên hoặc trực quan.
Hạn chế quyền truy cập vào dữ liệu để người dùng chỉ có thể xem dữ liệu hạn chế thay vì toàn bộ bảng.
Tổng hợp dữ liệu từ các bảng khác nhau, có thể được sử dụng để tạo báo cáo.
Vì các khung nhìn không phải là các bảng thông thường, bạn có thể không thực hiện được câu lệnh DELETE, INSERT hoặc UPDATE trên một khung nhìn. Tuy nhiên, bạn có thể tạo RULE để khắc phục sự cố này bằng cách sử dụng DELETE, INSERT hoặc UPDATE trên một dạng xem.
Tạo chế độ xem
Dạng xem PostgreSQL được tạo bằng cách sử dụng CREATE VIEWtuyên bố. Các dạng xem PostgreSQL có thể được tạo từ một bảng, nhiều bảng hoặc một dạng xem khác.
Cú pháp TẠO CHẾ ĐỘ XEM cơ bản như sau:
CREATE [TEMP | TEMPORARY] VIEW view_name AS
SELECT column1, column2.....
FROM table_name
WHERE [condition];
Bạn có thể bao gồm nhiều bảng trong câu lệnh SELECT của mình theo cách tương tự như khi bạn sử dụng chúng trong truy vấn PostgreSQL SELECT bình thường. Nếu có từ khóa TEMP hoặc TEMPORARY tùy chọn, chế độ xem sẽ được tạo trong không gian tạm thời. Chế độ xem tạm thời sẽ tự động bị loại bỏ vào cuối phiên hiện tại.
Thí dụ
Hãy xem xét, bảng COMPANY có các bản ghi sau:
id | name | age | address | salary
----+-------+-----+------------+--------
1 | Paul | 32 | California | 20000
2 | Allen | 25 | Texas | 15000
3 | Teddy | 23 | Norway | 20000
4 | Mark | 25 | Rich-Mond | 65000
5 | David | 27 | Texas | 85000
6 | Kim | 22 | South-Hall | 45000
7 | James | 24 | Houston | 10000
Bây giờ, sau đây là một ví dụ để tạo một dạng xem từ bảng COMPANY. Chế độ xem này sẽ được sử dụng để chỉ có một số cột từ bảng COMPANY -
testdb=# CREATE VIEW COMPANY_VIEW AS
SELECT ID, NAME, AGE
FROM COMPANY;
Bây giờ, bạn có thể truy vấn COMPANY_VIEW theo cách tương tự như bạn truy vấn một bảng thực tế. Sau đây là ví dụ -
testdb=# SELECT * FROM COMPANY_VIEW;
Điều này sẽ tạo ra kết quả sau:
id | name | age
----+-------+-----
1 | Paul | 32
2 | Allen | 25
3 | Teddy | 23
4 | Mark | 25
5 | David | 27
6 | Kim | 22
7 | James | 24
(7 rows)
Giảm lượt xem
Để bỏ một chế độ xem, chỉ cần sử dụng câu lệnh DROP VIEW với view_name. Cú pháp DROP VIEW cơ bản như sau:
testdb=# DROP VIEW view_name;
Lệnh sau sẽ xóa chế độ xem COMPANY_VIEW, mà chúng ta đã tạo trong phần trước -
testdb=# DROP VIEW COMPANY_VIEW;