Database/SQL
[SQL] 뷰 (VIEW)
gangintheremark
2023. 8. 1. 13:21
728x90
뷰(VIEW)는 다른 테이블에서 유도된 가상의 테이블이다. 실제 데이터를 저장하고 있지 않으며 기반이 되는 물리적인 테이블을 기본 테이블(base table)이라 한다. 뷰를 기반으로 새로운 뷰를 정의할 수도 있다.
용도
- 데이터베이스에서 선택적으로 데이터조회 가능 ➞ 민감한 데이터를 가진 컬럼들 접근 제어 ➞ 보안 강화
- 결과를 검색하기 위한 복잡한 질의를 단순화
뷰 (VIEW)
CREATE [OR REPLACE] VIEW 뷰이름 [컬럼별칭1, 컬럼별칭2]
AS
SELECT 컬럼1, 컬럼2
FROM 테이블명
[WITH CHECK OPTION [CONSTRAINT 제약조건명]]
[WITH READ ONLY [CONSTRAINT 제약조건명] ];
- 생성된 뷰를 수정하기 위해서
CREATE OR REPLACE
명령어 사용 - select문은
union
또는order by
를 포함할 수 없음 - 컬럼별칭을 지정하지 않으면 SELECT문의 컬럼명과 동일
WITH READ ONLY
: 읽기 모드WITH CHECK OPTION
: 해당 뷰 범위 내에서INSERT/UPDATE
가능
-- 20번 부서에 소속된 사원들의 정보를 출력하기 위한 뷰 생성
CREATE VIEW emp_view
AS
SELECT empno,ename, d.dname, d.deptno
FROM emp e JOIN dept d
ON e.deptno = d.deptno
WHERE e.deptno = 20;
💡 특정 계정에 뷰(VIEW)를 생성할 수 있는 CREATE VIEW 권한 설정
-- 관리자 계정으로
GRANT CREATE VIEW
TO 계정명;
💡 뷰(VIEW) 정보 출력
SELECT *
FROM user_views;
💡 뷰(VIEW) 삭제
DROP VIEW 뷰이름 [cascade];
cascade
: 해당 뷰를 사용하여 유도된 뷰들도 같이 삭제
728x90