MySQL에서 뷰(view)를 생성할 때 열 목록을 명시하는 것은 선택 사항입니다. 하지만 뷰를 생성하면서 열 이름을 직접 지정하는 경우에는, 열 목록에 포함된 이름의 개수가 SELECT 문이 반환하는 열의 개수와 반드시 일치해야 합니다. 개수가 맞지 않으면 오류가 발생합니다.
예제
다음 예제는 열 목록을 지정하여 뷰를 생성하는 과정을 보여줍니다.
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) mysql> Create view View_student_detail_columns AS SELECT Studentid, StudentName FROM Student_Detail; Query OK, 0 rows affected (0.10 sec)
위 예제에서는 Studentid와 StudentName, 두 개의 열을 지정하여 뷰를 생성했습니다. 이후 뷰에서 데이터를 조회하면, 뷰 생성 시 지정한 두 개의 열만 화면에 표시되고 나머지 열(address)은 노출되지 않습니다.
mysql> Select * from View_Student_detail_columns; +-----------+-------------+ | Studentid | StudentName | +-----------+-------------+ | 100 | Gaurav | | 101 | Raman | | 103 | Rahul | | 104 | Ram | | 105 | Mohan | +-----------+-------------+ 5 rows in set (0.08 sec)
열 목록을 지정하면 좋은 점
뷰 생성 시 열 목록을 지정하면 다음과 같은 장점이 있습니다.
- 열 이름 변경: 원본 테이블의 열 이름을 그대로 쓰지 않고, 뷰에서 더 직관적인 다른 이름으로 표시할 수 있습니다.
- 필요한 열만 노출: 민감한 정보나 불필요한 열을 숨기고 필요한 데이터만 제공할 수 있어 보안과 가독성 측면에서 유리합니다.
- 명확한 구조 정의: 뷰의 구조를 코드 수준에서 명확하게 문서화할 수 있습니다.
단, 열 목록의 이름 개수는 SELECT 문이 반환하는 열의 개수와 정확히 일치해야 한다는 점을 항상 기억하세요.