Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 뷰(View) 생성 방법 – WHERE 절을 활용해 조건에 맞는 데이터만 가져오기

테이블의 데이터 중 특정 조건에 해당하는 값만 담는 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 구문을 사용하면 기존에 같은 이름의 뷰가 있더라도 오류 없이 덮어써서 재정의할 수 있어 편리합니다. 자주 사용하는 필터링 조건이 있다면 뷰로 미리 정의해 두면 쿼리 작성 시간을 크게 줄일 수 있습니다.