Computer Science/Database (2022)
9. ORACLE SQL 고급: 뷰(View)
Priv
2022. 5. 26. 23:17
1. 뷰 (View)
뷰는 1개 이상의 테이블을 합쳐서 만든 가상의 테이블이다.
뷰는 다음과 같은 장점들을 지니고 있다.
- 편리성, 재사용성: 자주 사용되는 복잡한 질의를 뷰로 미리 정의할 수 있다. (복잡한 질의를 간단히 작성)
- 보안성: 각 사용자별로 필요한 데이터만 선별하여 보여줄 수 있다. (중요한 질의의 경우 질의 내용을 암호화 가능)
- 독립성 제공: 미리 정의된 뷰를 일반 테이블처럼 사용할 수 있기 때문에 편리하다. 사용자가 필요한 정보만 요구에 맞게 가공하여 뷰로 만들어 쓸 수 있다. (원본 테이블 구조가 변해도 응용에 영향을 주지 않도록 하는 논리적 독립성을 제공)
뷰는 다음과 같은 특징을 지니고 있다.
- 원본 데이터 값에 따라 함께 변한다.
- 독립적인 인덱스 생성이 어렵다.
- 삽입/삭제/갱신 연산에 많은 제약이 따른다.
2. 뷰 생성
뷰를 생성하는 기본 문법은 아래와 같다.
CREATE VIEW 뷰 이름 [(열 이름 [...N])]
AS SELECT 문
● Book 테이블에서 '축구'라는 문구가 포함된 자료만 보여주는 VW_BOOK 뷰를 생성하시오.
CREATE VIEW VW_BOOK AS
SELECT *
FROM BOOK
WHERE BOOKNAME LIKE '%축구%';
3. 뷰 수정
뷰를 수정하는 기본 문법은 아래와 같다.
CREATE OR REPLACE VIEW 뷰이름 [(열이름 [ ,...n ])]
AS SELECT 문
● VW_CUSTOMER 뷰의 주소, 이름, 고객 ID를 CUSTOMER 테이블에서 주소에 '영국'이 포함된 고객의 정보로 수정하시오.
CREATE OR REPLACE VIEW VW_CUSTOMER(CUSTID, NAME, ADDRESS) AS
SELECT CUSTID, NAME, ADDRESS
FROM CUSTOMER
WHERE ADDRESS LIKE '%영국%';
4. 뷰 삭제
뷰를 삭제하는 기본 문법은 아래와 같다.
DROP VIEW 뷰이름 [ ,...n ];
● VW_CUSTOMER 뷰를 삭제하시오.
DROP VIEW VW_CUSTOMER