VIEW
✒️ 2025-05-28 17:14 내용 수정
참고 자료 : 위키백과 VIEW(SQL), W3School SQL Views, TCPSchool VIEW 생성 및 대체, 코딩팩토리 DB기초 뷰(View)란 무엇인가? + 간단한 예제
RDBMS의 SQL에서 하나 이상의 테이블이나 뷰에서 원하는 데이터를 선택하여 나타낸 것
- 일종의 가상 테이블로, 실제 테이블처럼 행과 열을 가지고 있어 테이블처럼 사용할 수 있지만 실제로 데이터를 저장하진 않는다.
- 원본 테이블의 내용이 변경되면 VIEW의 내용도 같이 변경된다.
| 특징 | 설명 |
|---|---|
| 독립성 | 테이블의 구조가 변경되어도 뷰를 사용하는 응용 프로그램은 변경하지 않아도 된다. |
| 편리성 | 복잡한 QUERY문을 VIEW로 저장함으로써 QUERY를 단순하게 작성할 수 있고, 해당 QUERY문을 자주 사용할 때 편리하게 접근할 수 있다. |
| 보안성 | VIEW를 생성 시 숨기고 싶은 column을 배제하여 원하는 속성 및 정보를 숨길 수 있다. |
- 장점
- 여러 테이블에서 원하는 정보를 편리하게 뽑아서 사용할 수 있다.
- 복잡한 QUERY문을 단순화해서 사용할 수 있고, QUERY를 재사용할 수 있다.
- 단점
- 삽입, 삭제, 갱신(DML) 작업에 많은 제한 사항이 있다.
- 자신만의 인덱스를 가질 수 없다.
VIEW 생성, 수정, 삭제
1. CREATE 생성
-- VIEW 생성
CREATE VIEW 뷰이름 AS
(
QUERY문 -- DQL, SELECT문
);
2. ALTER 대체 및 수정
- Oracle에서는
ALTER VIEW로 이미 존재하는 VIEW의 정의를 변경할 수 없다. 이 경우엔CREATE OR REPLACE를 사용해야 한다. - Oracle에서는
ALTER VIEW를 사용해 제약 조건을 정의, 수정, 삭제할 수 있으며, 읽기 모드 설정을 변경할 수 있다. - 참고 자료 : stackoverflow How to delete a column from a view, Oracle ALTER VIEW
-- VIEW 수정(기존의 VIEW 정의를 변경)
-- 해당 VIEW가 존재하지 않으면 CREATE와 같은 역할
CREATE OR REPLACE VIEW 뷰이름 AS
(
QUERY문 -- DQL, SELECT문
);
-- ALTER를 사용한 수정
-- Oracle에선 불가
ALTER VIEW 뷰이름 AS
(
QUERY문 -- DQL, SELECT문
);
-- ALTER를 사용한 여러 설정 수정
ALTER VIEW 뷰이름 [ADD|MODIFY|DROP|COMPILE|READ];
3. DELETE 제거
- RESTRICT : 뷰를 다른 곳에서 참조하고 있다면 삭제가 취소된다.
- CASCADE : 참조하고 있는 뷰나 제약 조건까지 모두 삭제한다.
-- VIEW 삭제
DROP VIEW 뷰이름 (RESTRICT 또는 CASCADE);