- 하나 이상의 테이블이나 다른 뷰의 데이터를 볼 수 있게 하는 DB 객체 (논리 테이블)
- 원본 데이터테이블을 숨길 수 있어 보안성있음
- VIEW의 이름은 고유해야함
- VIEW는 인덱스를 사용할 수 없음
CREATE OR REPLACE VIEW EMP_DEPT_V1 AS
SELECT A.EMPLOYEE_ID, A.EMP_NAME, A.DEPARTMENT_ID,
B.DEPARTMENT_NAME
FROM EMPLOYEES A, DEPARTMENTS B
WHERE A.DEPARTMENT_ID = B.DEPARTMENT_ID;
-- View EMP_DEPT_V1이(가) 생성되었습니다.


반복적으로 사용되는 SQL문이라면 재사용이 용이해진다.
CREATE OR REPLACE VIEW EMP_DEPT_V2 AS
SELECT *
FROM EMP_DEPT_V1
WHERE DEPARTMENT_ID IN (60,100);

VIEW에서 VIEW를 만들수도 있으며, 특정 조건을 걸어서 해당 데이터만 넣을 수 도 있다.
DROP VIEW EMP_DEPT_V2;
DROP 명령어로 VIEW 삭제
-- 만일 VIEW 이름이 바꾸고싶다면
RENAME V_TEST TO V_TEST_V2;
VIEW에서의 삭제
-- VIEW에서의 삭제
DELETE FROM EMP_DEPT_V1
WHERE DEPARTMENT_ID = 60;
SELECT * FROM EMPLOYEES -- 삭제됨
WHERE DEPARTMENT_ID = 60;
SELECT * FROM DEPARTMENTS -- 삭제안됨
WHERE DEPARTMENT_ID = 60;
ROLLBACK; -- 삭제 롤백



원본 데이터에 영향을 준다! SOFT COPY와 같은 개념이라고 보면 된다.
반응형
'SQL' 카테고리의 다른 글
| [ORACLE] SYNONYM 시노님 (0) | 2025.07.15 |
|---|---|
| [SQL] INDEX 인덱스 (0) | 2025.07.15 |
| [ORACLE] 오라클 버전 확인 (0) | 2025.07.15 |
| [SQL] FOREIGN KEY (0) | 2025.07.14 |
| [SQL] PRIMARY KEY (0) | 2025.07.14 |