뷰(View)는 데이터베이스에 저장된 SELECT 쿼리의 결과를 마치 실제 테이블처럼 다룰 수 있게 해주는 가상 테이블입니다. 복잡한 쿼리를 단순화하거나 특정 사용자에게 필요한 데이터만 노출하고 싶을 때 유용하게 활용됩니다.
MySQL 뷰 생성 기본 문법
MySQL에서 뷰를 생성하려면 CREATE VIEW 문을 사용합니다. 기본 문법은 다음과 같습니다.
CREATE VIEW yourViewName AS
SELECT * FROM yourTableName;
실습 예제로 배우는 뷰 생성
1단계: 테이블 생성하기
먼저 예제로 사용할 테이블을 생성합니다.
mysql> create table DemoTable1802
(
StudentId int,
StudentName varchar(20)
);
Query OK, 0 rows affected (0.00 sec)
2단계: 데이터 삽입하기
INSERT 명령을 사용하여 테이블에 샘플 레코드를 추가합니다.
mysql> insert into DemoTable1802 values(101,'John');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1802 values(102,'Carol');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1802 values(103,'Sam');
Query OK, 1 row affected (0.00 sec)
3단계: 테이블 데이터 확인하기
SELECT 문으로 테이블의 전체 레코드를 조회해 보겠습니다.
mysql> select * from DemoTable1802;
실행 결과는 다음과 같습니다.
+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 101 | John |
| 102 | Carol |
| 103 | Sam |
+-----------+-------------+
3 rows in set (0.00 sec)
4단계: 뷰 생성하기
이제 위 테이블을 기반으로 뷰를 생성하는 쿼리를 실행합니다.
mysql> create view view_DemoTable1802 as select * from DemoTable1802;
Query OK, 0 rows affected (0.00 sec)
5단계: 뷰 데이터 조회하기
생성된 뷰도 일반 테이블과 동일하게 SELECT 문으로 조회할 수 있습니다.
mysql> select * from view_DemoTable1802;
실행 결과는 원본 테이블과 동일하게 출력됩니다.
+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 101 | John |
| 102 | Carol |
| 103 | Sam |
+-----------+-------------+
3 rows in set (0.00 sec)
뷰 사용 시 참고 사항
- 뷰는 실제 데이터를 저장하지 않고 원본 테이블의 데이터를 참조하므로, 원본 데이터가 변경되면 뷰의 결과도 함께 변경됩니다.
- 기존 뷰를 수정하려면 CREATE OR REPLACE VIEW 문을 사용할 수 있습니다.
- 더 이상 필요하지 않은 뷰는 DROP VIEW 뷰이름;으로 삭제할 수 있습니다.
이처럼 CREATE VIEW 문을 활용하면 자주 사용하는 쿼리를 뷰로 정의하여 코드의 재사용성과 가독성을 크게 높일 수 있습니다.