뷰(VIEW)
- 하나 이상의 테이블을 합하여 만든 가상의 테이블
- 자주 사용하는 복잡한 SQL문을 미리 VIEW로 만들어서 사용
장점
- 편리성 및 재사용성 : 자주 사용하는 복잡한 SQL문을 미리 VIEW로 만들어서 사용
- 보안성 : 각 사용자 별로 필요한 데이터만 선별하여 보여줄 수 있음. 중요한 질의의 경우 질의 내용을 암호화 할 수 있음 (개인정보, 급여,건강 같은 민감 정보를 제외한 테이블을 만들어 사용)
- 독립성 제공 : 미리 정의된 뷰를 일반 테이블처럼 사용할 수 있음
VIEW 생성
CREATE VIEW 뷰이름[(열이름 [ ,....n])]
AS SELECT 문
VIEW 권한 주기
뷰 소유자(생성자)
GRANT 권한명(예: SELECT) ON 뷰이름 TO 권한받을ID
- SELECT 권한을 '권한받을ID' 에게 준 것
권한 받을 사람
SELECT * FROM 뷰소유자ID.뷰이름
VIEW 권한 제거
REVOKE 권한명(예: SELECT) ON 뷰이름 FROM 권한받은ID;
VIEW 수정
- 동일한 이름의 VIEW가 존재하면 수정해주고 없다면 새로 생성하는 명령
CREATE OR REPLACE VIEW 뷰이름 AS SELECT ....
VIEW 삭제
DROP VIEW VIEW명
뷰 (VIEW) 생성화면
VIEW로 INSERT, UPDATE, DELETE
- VIEW 로 레코드를 INSERT, UPDATE, DELETE 를 하게 되면 부모 테이블로 추가/수정/삭제가 된다.
- 만약, VIEW 생성 시에 조건에 맞지않는 레코드를 추가하게 되면 모테이블에는 추가는 되는데, VIEW 에는 조건식이 맞지 않기 때문에 당연히 나타나지 않는다.
조건에 맞지 않는 VIEW 생성
실제 뷰테이블에 '문재인' 추가 X
WITH CHECK OPTION
- 뷰 생성시에 사용한 조건식에 맞는 레코드만 추가 /수정 하도록 하기 위한 옵션
CREATE VIEW 뷰이름 AS SELECT ~~ 조건식 WITH CHECK OPTION;
WITH READ ONLY
- 읽기만 가능한 뷰 생성 하는 옵션
CREATE VIEW 뷰이름 AS SELECT ~~ 조건식 WITH READ ONLY;
반응형
'개발 > 데이터베이스' 카테고리의 다른 글
(데이터베이스 ) 날짜 관련 함수 (0) | 2022.04.30 |
---|---|
(데이터 베이스) 집합연산 (Union, Union ALL, Minus, Intersect) (0) | 2022.04.30 |
(데이터베이스) 관련 함수 (0) | 2022.04.28 |
(데이터베이스) 문자 내장함수 (0) | 2022.04.28 |
(데이터베이스) 숫자 내장함수 (0) | 2022.04.26 |
댓글