뷰 작성과 삭제

유석현(SeokHyun Yu)·2022년 8월 17일
0

SQL

목록 보기
30/45
post-thumbnail

서론

앞서 서브쿼리에 관해 배운적이 있다.

이때 서브쿼리는 FROM 구에서도 기술할 수 있었다.

여기서 FROM 구에 기술된 서브쿼리에 이름을 붙이고 데이터베이스 객체화하여 쓰기 쉽게 한 것을 라고 한다.

지금부터는 뷰의 작성 및 삭제 방법, 그리고 뷰의 구조에 관해 설명하겠다.

나아가 뷰의 특징에 대해서도 간단하게 소개하겠다.


1. 뷰

데이터베이스 객체란 테이블이나 인덱스 등 데이터베이스 안에 정의하는 모든 것을 말한다.

역시 데이터베이스 객체 중 하나이다.

반면 SELECT 명령은 객체가 아니다.

SELECT 명령에 이름을 지정할 수도 없고 데이터베이스에 등록되지도 않기 때문이다.

이처럼 본래 데이터베이스 객체로 등록할 수 없는 SELECT 명령을, 객체로서 이름을 붙여 관리할 수 있도록 한 것이 뷰이다.

SELECT 명령은 실행했을 때 테이블에 저장된 데이터를 결괏값으로 반환한다.

따라서 뷰를 참조하면 그에 정의된 SELECT 명령의 실행결과를 테이블처럼 사용할 수 있다.

하지만 뷰는 테이블처럼 데이터를 쓰거나 지울 수 있는 저장공간을 가지지 않는다.

이 때문에 테이블처럼 취급할 수 있다고는 해도 SELECT 명령에서만 사용하는 것을 권장한다.

INSERT나 UPDATE, DELETE 명령에서도 조건만 맞으면 가능하지만 사용에 주의할 필요가 있다.


2. 뷰 작성과 삭제

뷰는 데이터베이스 객체이기 때문에 DDL로 작성하거나 삭제한다.

먼저 뷰를 작성할 때는 CREATE VIEW를 사용한다.

CREATE VIEW sample_view AS SELECT * FROM sample_table;

참고로 sample_table 의 데이터는 다음과 같다.

CREATE VIEW로 뷰를 작성한 뒤 SELECT 명령의 FROM 구에 지정해 사용할 수 있다.

SELECT * FROM sample_view;


뷰는 필요에 따라 열을 지정할 수도 있는데, 이 경우에는 이름 뒤에 괄호로 묶어 열을 지정한다.

CREATE VIEW sample_view(a) AS SELECT id FROM sample_table;
SELECT * FROM sample_view;


뷰를 삭제할 경우에는 DROP VIEW를 사용한다.

DROP VIEW sample_view;

3. 뷰의 특징

뷰는 데이터베이스 객체로서 저장장치에 저장된다.

하지만 테이블과 달리 대량의 저장공간을 필요로 하지 않는다.

데이터베이스에 저장되는 것은 SELECT 명령뿐이기 때문이다.

다만 저장공간을 소비하지 않는 대신 CPU 자원을 사용한다.

뷰를 참조하면 뷰에 등록되어 있는 SELECT 명령이 실행된다.

실행 결과는 일시적으로 보존되며, 뷰를 참조할 때마다 SELECT 명령이 실행된다.

profile
Backend Engineer

0개의 댓글