DB View를 이용한 SQL 쿼리 단순화

· by 박승재

SQL를 이용해 쿼리문을 작성하다 보면 서브쿼리나 복잡한 조인(Join) 연산으로 코드를 쉽게 알아볼 수 없는 경우가 종종 있다.

이때 활용할 수 있는 것이 데이터베이스 뷰(View)다.

데이터베이스 뷰는 하나 이상의 테이블로부터 유도된 가상의 테이블이다.

데이터베이스 뷰의 주된 목적은 코드의 가독성 향상이다.

서브쿼리와 같이 여러 개의 SELECT문이 중첩되어 있거나 재사용되는 경우 뷰를 이용하면 가독성을 크게 향상시킬 수 있다.

뷰는 아래와 같이 정의한다:

CREATE VIEW view_name AS SELECT ... ;

AS 뒤에 서브쿼리로써 작성된 SELECT문 등을 넣으면 된다.

CREATE VIEW 역시 IF NOT EXISTS를 통해 뷰가 존재하지 않을 때만 생성할 수 있다.

참고: MariaDB - CREATE VIEW

뷰의 삭제는 아래와 같이 한다:

DROP VIEW view_name;

가독성을 높여주는 장점 이외에도, 뷰를 통해 일부 행만 뷰로 공개해 민감한 데이터의 접근을 제한하거나, 논리적인 데이터의 독립성을 보장해 시스템 변경으로 테이블의 행이 바뀌어도 시스템과의 호환성을 유지하는 용도로 사용할 수 있다.

하지만, 데이터베이스 뷰는 독립적인 인덱스(Index)를 가지지 못하고, 삽입/삭제 등 데이터를 조작하는데 제약이 발생하니 주의해서 사용해야 한다.

참고: MariaDB - Creating & Using Views

참고: MariaDB - Inserting and Updating with Views