뷰는 테이블에 대한 가상의 테이블로써 테이블처럼 직접 데이터를 소유하지 않고 검색 시에 이용할 수 있도록 정보를 담고 있는 객체를 의미합니다. 만약 특정 컬럼들을 여러 번 조회해야 한다면 똑같은 SELECT문을 여러 번 반복해야 하는데, 뷰에 해당 쿼리문을 저장함으로써 빠르고 간편하게 조회가 가능합니다. 하지만 뷰를 사용하는 것이 꼭 장점만 있는 것은 아닙니다. 뷰를 한번 정의하면 수정이 불가능하고 뷰를 통해서는 데이터 삽입, 삭제, 수정 등과 같은 작업에 대해 제한적이라는 단점도 있습니다.
먼저 뷰를 생성하기 위해서는 실제로 존재하는 테이블이 필요합니다.
뷰 생성 방법
CREATE OR REPLACE VIEW 뷰이름 AS
서브쿼리;
실제로 존재하는 테이블을 서브쿼리로 만들어 SELECT문으로 조회한 쿼리에 대해 뷰를 만듭니다. 참고로 뷰를 수정하고 싶을 때에도 위와 같은 방법을 사용합니다.
예시
CREATE VIEW table_view AS
SELECT column1, column2
FROM t_table
WHERE column1 = column2;
위와 같은 SELECT문이 자주 조회가 된다면 뷰를 생성하여 참조하면 간편하게 결과를 조회할 수 있습니다.
생성된 뷰 사용
SELECT *
FROM table_view;
SELECT문을 사용하여 뷰를 조회하면 쉽게 결과를 조회할 수 있습니다.
기본 사용법
DROP VIEW 뷰이름;
위와 같은 방법으로 뷰를 삭제할 수 있지만 뷰의 원천 테이블에는 아무 영향도 가지 않습니다.
뷰를 사용하는 가장 기본적인 이유는 복잡한 쿼리문을 단순화하여 다수의 사용자가 결과를 쉽게 조회할 수 있다는 것입니다. 또한 뷰를 보면 컬럼과 데이터만 공개되므로 원천 테이블을 감출 수 있어 보안에 유리하다는 장점도 있습니다. 이러한 특성을 이용하여 여러 개의 테이블에서 필요한 정보를 뽑아 뷰로 만들고 뷰를 통해 원천 테이블 읽고 수정할 수 있습니다.
[SQL] 인덱스를 사용하여 쿼리 성능 향상시키기 (1) | 2020.10.28 |
---|---|
[SQL] PRIMARY KEY, FOREIGN KEY 데이터 무결성을 위한 제약 조건 (0) | 2020.10.13 |
[SQL] JOIN문 정리(LEFT JOIN, RIGHT JOIN, INNER JOIN, CROSS JOIN) (0) | 2020.10.06 |
[SQL] 시퀀스의 개념과 시퀀스 생성하기 (0) | 2020.10.05 |
[SQL] PL/SQL 변수 선언과 대입 (0) | 2020.10.03 |