MySQL VIEW와 WHERE 절 함께 사용하기
MySQL에서 생성한 뷰(VIEW)는 일반 테이블과 거의 동일하게 취급할 수 있습니다. 따라서 뷰를 조회할 때도 SELECT 문에 WHERE 절을 붙여 원하는 조건의 데이터만 필터링해서 가져올 수 있습니다.
기본 문법
뷰에 WHERE 절을 적용하는 기본 문법은 다음과 같습니다.
SELECT * FROM 뷰이름 WHERE 컬럼명 = '값';
실제 예제를 통해 단계별로 살펴보겠습니다.
1단계: 테이블 생성
먼저 학생 정보를 저장할 테이블을 만들어 보겠습니다.
mysql> create table DemoTable1432
-> (
-> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> StudentName varchar(20),
-> StudentBranchName varchar(20)
-> );
Query OK, 0 rows affected (1.26 sec)위 테이블은 StudentId(자동 증가 기본키), StudentName(학생 이름), StudentBranchName(전공 학과) 세 개의 컬럼으로 구성되어 있습니다.
2단계: 데이터 삽입
INSERT 문을 사용해 샘플 데이터를 입력합니다.
mysql> insert into DemoTable1432(StudentName,StudentBranchName) values('Chris','CS');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1432(StudentName,StudentBranchName) values('David','CE');
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable1432(StudentName,StudentBranchName) values('Mike','ME');
Query OK, 1 row affected (0.20 sec)3단계: 전체 데이터 확인
SELECT 문으로 테이블에 저장된 모든 레코드를 조회해 보겠습니다.
mysql> select * from DemoTable1432;
실행 결과는 다음과 같습니다.
+-----------+-------------+-------------------+ | StudentId | StudentName | StudentBranchName | +-----------+-------------+-------------------+ | 1 | Chris | CS | | 2 | David | CE | | 3 | Mike | ME | +-----------+-------------+-------------------+ 3 rows in set (0.00 sec)
4단계: 뷰(VIEW) 생성
이제 CREATE VIEW 문을 사용하여 위 테이블 기반의 뷰를 생성합니다.
mysql> create view DemoTable1432_View as select * from DemoTable1432; Query OK, 0 rows affected (0.17 sec)
뷰는 실제 데이터를 저장하지 않고, 정의된 SELECT 쿼리를 참조하는 가상 테이블입니다. 따라서 원본 테이블의 데이터가 변경되면 뷰 조회 결과도 자동으로 반영됩니다.
5단계: 뷰에 WHERE 절 적용
생성한 뷰에 WHERE 절을 사용해 특정 조건(예: 전공이 'CS'인 학생)에 해당하는 데이터만 조회해 보겠습니다.
mysql> select * from DemoTable1432_View where StudentBranchName='CS';
실행 결과는 다음과 같습니다.
+-----------+-------------+-------------------+ | StudentId | StudentName | StudentBranchName | +-----------+-------------+-------------------+ | 1 | Chris | CS | +-----------+-------------+-------------------+ 1 row in set (0.03 sec)
정리
이처럼 MySQL 뷰에 WHERE 절을 적용하는 방법은 일반 테이블과 완전히 동일합니다. 뷰를 활용하면 복잡한 쿼리를 미리 정의해 두고, 필요할 때 간단한 조건문만 추가하여 손쉽게 원하는 데이터를 조회할 수 있다는 장점이 있습니다. 보안상 특정 컬럼만 노출하고 싶거나, 반복적으로 사용하는 복잡한 JOIN 쿼리를 단순화하고 싶을 때 뷰를 적극적으로 활용해 보시기 바랍니다.