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 : 해당 뷰를 사용하여 유도된 뷰들도 같이 삭제

VIEW의 장단점

728x90