MySQL에서 빈 뷰(View)란 열 구조는 존재하지만 실제 데이터는 하나도 담고 있지 않은 뷰를 의미합니다. 이러한 빈 뷰를 생성하려면 CREATE OR REPLACE VIEW 구문에 항상 거짓(False)이 되는 WHERE 조건을 결합하면 됩니다.
MySQL 빈 뷰 생성 기본 문법
MySQL에서 빈 뷰를 만들 때 사용하는 기본 문법은 다음과 같습니다.
create or replace view yourViewName as select yourValue AS yourColumnName, yourValue AS yourColumnName2, . . N from dual where false;
핵심은 마지막의 where false 부분입니다. WHERE 절의 조건이 항상 거짓이기 때문에 어떤 행도 반환되지 않아 결과적으로 데이터가 없는 빈 뷰가 완성됩니다. 대신 SELECT 절에 정의된 별칭(Alias)을 통해 뷰의 열 구조는 그대로 유지됩니다.
실제 예제로 빈 뷰 만들어 보기
이제 위에서 살펴본 문법을 실제로 적용하여 MySQL에서 빈 뷰를 생성해 보겠습니다.
mysql> create or replace view empty_view as
select "John Smith" AS ClientName,
"US" AS ClientCountryName,
false AS isMarried
from dual
where false;
Query OK, 0 rows affected (0.20 sec)쿼리가 정상적으로 실행되어 empty_view라는 이름의 뷰가 생성되었습니다. 여기서는 ClientName, ClientCountryName, isMarried 세 개의 열을 가진 뷰를 정의했습니다.
생성된 뷰의 구조 확인하기
DESC 명령어를 사용하여 뷰의 열 구조를 확인할 수 있습니다.
mysql> desc empty_view;
위 명령어를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.
+-------------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------------+-------------+------+-----+---------+-------+ | ClientName | varchar(10) | NO | | | | | ClientCountryName | varchar(2) | NO | | | | | isMarried | int(1) | NO | | 0 | | +-------------------+-------------+------+-----+---------+-------+ 3 rows in set (0.00 sec)
출력 결과를 보면 뷰에는 세 개의 열(ClientName, ClientCountryName, isMarried)이 각각 varchar(10), varchar(2), int(1) 타입으로 정의되어 있는 것을 확인할 수 있습니다.
뷰가 비어 있는지 검증하기
마지막으로 생성한 뷰에 데이터가 없는지, 즉 실제로 빈 뷰인지 확인해 보겠습니다.
mysql> select *from empty_view; Empty set (0.00 sec)
Empty set이라는 결과가 반환되었으므로, 뷰의 열 구조는 존재하지만 저장된 데이터 행은 전혀 없는 빈 뷰가 성공적으로 생성된 것입니다. 이러한 기법은 애플리케이션 초기 설계 단계나 테스트 환경에서 미리 스키마를 정의해 두고 싶을 때 유용하게 활용할 수 있습니다.