테이블의 데이터 중 특정 조건에 해당하는 값만 담는 MySQL 뷰(View)를 만들고 싶다면, 뷰를 생성할 때 WHERE 절을 사용하면 됩니다. 이렇게 하면 WHERE 절의 조건을 만족하는 행들만 뷰에 저장되어, 이후에는 복잡한 쿼리 없이도 원하는 데이터를 간편하게 조회할 수 있습니다.
기본 문법
WHERE 절이 포함된 MySQL 뷰를 생성하는 기본 문법은 다음과 같습니다.
Create View view_name AS Select_statements FROM table WHERE condition(s);
예제
개념을 이해하기 쉽게, 다음과 같은 데이터가 들어 있는 'student_info' 테이블을 예로 들어 보겠습니다.
mysql> Select * from student_info; +------+---------+------------+------------+ | id | Name | Address | Subject | +------+---------+------------+------------+ | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Chandigarh | Literature | | 125 | Raman | Shimla | Computers | | 130 | Ram | Jhansi | Computers | +------+---------+------------+------------+ 4 rows in set (0.08 sec)
조건이 있는 뷰 생성하기
이제 과목(Subject)이 'Computers'인 학생의 행만 저장하는 뷰 'Info'를 만들어 보겠습니다. WHERE 절을 활용한 쿼리는 아래와 같습니다.
mysql> Create OR Replace VIEW Info AS Select Id, Name, Address, Subject from student_info WHERE Subject = 'Computers'; Query OK, 0 rows affected (0.46 sec)
뷰 조회 결과 확인
생성된 뷰를 조회하면 조건에 맞는 데이터만 출력되는 것을 확인할 수 있습니다.
mysql> Select * from info; +------+-------+---------+-----------+ | Id | Name | Address | Subject | +------+-------+---------+-----------+ | 125 | Raman | Shimla | Computers | | 130 | Ram | Jhansi | Computers | +------+-------+---------+-----------+ 2 rows in set (0.00 sec)
정리
위 예제처럼 CREATE VIEW 문에 WHERE 절을 추가하면, 원본 테이블 전체가 아니라 특정 조건을 충족하는 데이터만 포함하는 뷰를 손쉽게 만들 수 있습니다. 또한 CREATE OR REPLACE VIEW 구문을 사용하면 기존에 같은 이름의 뷰가 있더라도 오류 없이 덮어써서 재정의할 수 있어 편리합니다. 자주 사용하는 필터링 조건이 있다면 뷰로 미리 정의해 두면 쿼리 작성 시간을 크게 줄일 수 있습니다.