열 목록 없이 MySQL 뷰 생성하기
MySQL에서 뷰(View)를 생성할 때 열 목록을 명시하는 것은 선택 사항입니다. 즉, CREATE VIEW 문에서 열 이름을 생략해도 뷰를 정상적으로 만들 수 있습니다. 이 경우 뷰는 기반이 되는 테이블의 모든 열을 그대로 상속받습니다.
다음 예제를 통해 열 목록 없이 뷰를 생성하는 방법을 살펴보겠습니다.
1. 기존 테이블 확인
먼저 뷰를 생성할 원본 테이블인 student_detail의 내용을 확인합니다.
mysql> Select * from student_detail; +-----------+-------------+------------+ | Studentid | StudentName | address | +-----------+-------------+------------+ | 100 | Gaurav | Delhi | | 101 | Raman | Shimla | | 103 | Rahul | Jaipur | | 104 | Ram | Chandigarh | | 105 | Mohan | Chandigarh | +-----------+-------------+------------+ 5 rows in set (0.17 sec)
2. 열 목록 없이 뷰 생성
아래 쿼리에서는 뷰를 생성할 때 별도의 열 이름을 지정하지 않고 SELECT *만 사용했습니다. 바로 이것이 열 목록 없이 생성된 뷰입니다.
mysql> Create view View_student_detail AS SELECT * FROM Student_Detail; Query OK, 0 rows affected (0.17 sec)
3. 생성된 뷰 조회하기
뷰를 생성할 때 열 이름을 지정하지 않았기 때문에, 뷰의 이름으로 쿼리를 실행하면 해당 뷰가 생성된 원본 테이블의 모든 열이 자동으로 반환됩니다.
mysql> Select * from View_student_detail; +-----------+-------------+------------+ | Studentid | StudentName | address | +-----------+-------------+------------+ | 100 | Gaurav | Delhi | | 101 | Raman | Shimla | | 103 | Rahul | Jaipur | | 104 | Ram | Chandigarh | | 105 | Mohan | Chandigarh | +-----------+-------------+------------+ 5 rows in set (0.00 sec)
참고 사항
열 목록 없이 뷰를 생성하면 코드가 간결해지고 원본 테이블의 구조를 그대로 반영한다는 장점이 있습니다. 하지만 나중에 원본 테이블에 새로운 열이 추가되거나 삭제되면 뷰의 결과도 함께 변경되므로, 특정 열만 노출하고 싶거나 구조 변경의 영향을 피하고 싶다면 뷰 생성 시 열 목록을 명시적으로 지정하는 것이 좋습니다.