SQL

[SQL] VIEW 생성, 삭제

hjkongkong 2025. 7. 15. 13:04

- 하나 이상의 테이블이나 다른 뷰의 데이터를 볼 수 있게 하는 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; -- 삭제 롤백

부서 번호가 60번인 데이터

 

삭제됨
DEPARTMENTS에서는 삭제가 되지 않았는데, 이건 굳이 여기를 삭제 안해도 똑같은 결과 값을 낼 수 있기 때문

원본 데이터에 영향을 준다! 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