PostgreSQL-보기
뷰는 의사 테이블입니다. 즉, 실제 테이블이 아닙니다. 그럼에도 불구하고 SELECT에 일반 테이블로 나타납니다. 뷰는 일반 테이블에서 특정 열이나 특정 행을 선택하여 실제 테이블의 하위 집합을 나타낼 수 있습니다. 뷰는 조인 된 테이블을 나타낼 수도 있습니다. 뷰에는 별도의 권한이 할당되기 때문에 사용자가 테이블의 특정 행이나 열만 볼 수 있도록 테이블 액세스를 제한하는 데 사용할 수 있습니다.
뷰에는 테이블의 모든 행 또는 하나 이상의 테이블에서 선택한 행이 포함될 수 있습니다. 뷰를 생성하기 위해 작성된 PostgreSQL 쿼리에 의존하는 하나 이상의 테이블에서 뷰를 생성 할 수 있습니다.
일종의 가상 테이블 인 뷰를 통해 사용자는 다음을 수행 할 수 있습니다.
사용자 또는 사용자 클래스가 자연 스럽거나 직관적 인 방식으로 데이터를 구조화합니다.
사용자가 전체 테이블 대신 제한된 데이터 만 볼 수 있도록 데이터에 대한 액세스를 제한합니다.
보고서를 생성하는 데 사용할 수있는 다양한 테이블의 데이터를 요약합니다.
뷰는 일반 테이블이 아니므로 뷰에서 DELETE, INSERT 또는 UPDATE 문을 실행하지 못할 수 있습니다. 그러나 뷰에서 DELETE, INSERT 또는 UPDATE를 사용하는이 문제를 해결하기 위해 RULE을 만들 수 있습니다.
보기 만들기
PostgreSQL 뷰는 CREATE VIEW성명서. PostgreSQL 뷰는 단일 테이블, 여러 테이블 또는 다른 뷰에서 생성 할 수 있습니다.
기본 CREATE VIEW 구문은 다음과 같습니다.
CREATE [TEMP | TEMPORARY] VIEW view_name AS
SELECT column1, column2.....
FROM table_name
WHERE [condition];
일반 PostgreSQL SELECT 쿼리에서 사용하는 것과 매우 유사한 방식으로 SELECT 문에 여러 테이블을 포함 할 수 있습니다. 선택적 TEMP 또는 TEMPORARY 키워드가있는 경우 임시 공간에보기가 작성됩니다. 임시보기는 현재 세션이 끝날 때 자동으로 삭제됩니다.
예
는 고려 회사 테이블에는 다음과 같은 기록을 가지고있다 -
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
이제 다음은 COMPANY 테이블에서 뷰를 생성하는 예제입니다. 이보기는 COMPANY 테이블의 열이 몇 개만있는 데 사용됩니다.
testdb=# CREATE VIEW COMPANY_VIEW AS
SELECT ID, NAME, AGE
FROM COMPANY;
이제 실제 테이블을 쿼리하는 것과 유사한 방식으로 COMPANY_VIEW를 쿼리 할 수 있습니다. 다음은 예입니다-
testdb=# SELECT * FROM COMPANY_VIEW;
이것은 다음 결과를 생성합니다-
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)
뷰 삭제
뷰를 삭제하려면 DROP VIEW 문을 view_name. 기본 DROP VIEW 구문은 다음과 같습니다.
testdb=# DROP VIEW view_name;
다음 명령은 마지막 섹션에서 만든 COMPANY_VIEW 뷰를 삭제합니다.
testdb=# DROP VIEW COMPANY_VIEW;