티스토리 뷰

안녕하세요. 오늘은 데이터베이스 객체 중의 하나인 뷰(View)에 대해서 포스팅하려고 합니다. 이번 포스팅에서는 뷰를 정의하고, 작성 및 삭제하는 방법에 대해서 알아보겠습니다.


뷰(View)?


데이터베이스 객체란 테이블이나 인덱스 등 데이터베이스 안에 정의하는 모든 것을 말합니다. 뷰 역시 데이터베이스 객체 중 하나입니다. 이처럼 데이터베이스 객체로 등록할 수 없는 SELECT 명령을 객체로서 이름을 붙여 관리할 수 있도록 한 것이 뷰입니다.

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


뷰는 테이블처럼 취급할 수 있지만 '실체가 존재하지 않는다'라는 의미로 '가상 테이블'이라 불리기도 합니다. SELECT 명령으로 이루어지는 뷰는 테이블처럼 데이터를 쓰거나 지울 수 있는 저장공간을 가지지 않습니다. 이 때문에 테이블처럼 취급할 수 있다고는 해도 'SELECT 명령에서만 사용'하는 것을 권장합니다. INSERT나 UPDATE, DELETE 명령에서도 조건이 맞으면 가능하지만 사용에 주의가 필요합니다.



1. 뷰의 작성

CREATE VIEW 뷰명 AS SELECT 명령


CREATE VIEW 뷰명(열명1, 열명2, ...) AS SELECT 명령    // 열을 지정할 경우 사용

CREATE VIEW 다음에 뷰의 이름을 지정하고, AS로 SELECT 명령을 지정합니다. 그럼 간단한 예제를 통해서 뷰의 작성에 대해서 알아보겠습니다.



위의 결과를 보시면, CREATE VIEW를 통해서 sample_view_67이라는 뷰를 sample54 테이블을 SELECT 해서 생성한 것을 확인할 수 있습니다.



2. 뷰의 삭제


뷰를 삭제할 경우에는 DROP VIEW 명령을 사용합니다. 일단 뷰를 삭제하면 더 이상 뷰를 참조하여 사용할 수 없습니다.

DROP VIEW 뷰명


뷰 삭제 또한 간단한 예제를 통해 알아보겠습니다.



위의 결과를 확인해보시면, DROP VIEW 명령을 사용해서 기존에 생성한 sampe_view_67 뷰를 삭제하였고, 뷰가 삭제되었는지 확인하기 위해 SELECT * FROM sample_view_67 명령을 통해서 조회를 하니, '해당 뷰가 존재하지 않는다' 라는 결과를 확인할 수 있습니다.



3. 뷰의 약점


뷰는 데이터베이스 객체로서 저장장치에 저장됩니다. 하지만 테이블과 달리 대량의 저장공간을 필요로 하지 않습니다. 데이터베이스에 저장되는 것는 SELECT 명령뿐이기 때문입니다. 다만, 저장공간을 소비하지 않는 대신 CPU 자원을 사용합니다.

검색뿐만 아니라 ORDER BY로 정렬하거나 GROUP BY로 집계할 수 있습니다. 이러한 처리는 계산 능력을 필요로 하기 때문에 컴퓨터의 CPU를 사용합니다.


이상으로 뷰에 대한 포스팅을 마치도록 하겠습니다.