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

MySQL에서 특정 데이터베이스의 뷰(View) 목록 확인하는 방법

MySQL에서 특정 데이터베이스에 저장된 뷰(View) 목록을 확인해야 하는 경우가 종종 있습니다. 예를 들어 데이터베이스를 유지보수하거나 다른 개발자가 만든 뷰를 파악할 때 유용합니다. 이 글에서는 'query'라는 이름의 데이터베이스를 예시로, 뷰 목록을 조회하는 세 가지 방법을 소개합니다.

1. information_schema.TABLES 활용하기

MySQL은 데이터베이스 메타데이터를 information_schema에 저장합니다. TABLE_TYPE이 'VIEW'인 테이블만 필터링하면 해당 데이터베이스의 뷰 목록을 손쉽게 얻을 수 있습니다.

mysql> SELECT TABLE_NAME FROM information_schema.`TABLES` WHERE TABLE_TYPE LIKE 'view' AND TABLE_SCHEMA LIKE 'query';
+-----------------------------+
| TABLE_NAME                  |
+-----------------------------+
| customer_view               |
| first_view                  |
| info                        |
| info_less                   |
| view_detail                 |
| view_student_detail         |
| view_student_detail_columns |
+-----------------------------+
7 rows in set (0.01 sec)

위 쿼리는 'query' 데이터베이스에 존재하는 7개의 뷰 이름만 깔끔하게 출력합니다.

2. SHOW FULL TABLES 문 사용하기

가장 간단한 방법은 MySQL에서 기본 제공하는 SHOW FULL TABLES 구문입니다. WHERE 절로 TABLE_TYPE이 'VIEW'인 항목만 걸러내면 됩니다.

mysql> SHOW FULL TABLES IN query WHERE TABLE_TYPE LIKE 'VIEW';
+-----------------------------+------------+
| Tables_in_query             | Table_type |
+-----------------------------+------------+
| customer_view               | VIEW       |
| first_view                  | VIEW       |
| info                        | VIEW       |
| info_less                   | VIEW       |
| view_detail                 | VIEW       |
| view_student_detail         | VIEW       |
| view_student_detail_columns | VIEW       |
+-----------------------------+------------+
7 rows in set (0.01 sec)

이 방법은 뷰 이름과 함께 테이블 유형(VIEW)도 함께 표시되어 한눈에 파악하기 좋습니다.

3. 스키마 정보까지 함께 조회하기

여러 데이터베이스를 다룰 때는 어떤 스키마에 속한 뷰인지 함께 확인하는 것이 편리합니다. information_schema.tables에서 TABLE_SCHEMA 컬럼을 추가로 조회하면 됩니다.

mysql> SELECT TABLE_SCHEMA, TABLE_NAME
    -> FROM information_schema.tables
    -> WHERE TABLE_TYPE LIKE 'VIEW' AND TABLE_SCHEMA = 'query';
+--------------+-----------------------------+
| TABLE_SCHEMA | TABLE_NAME                  |
+--------------+-----------------------------+
| query        | customer_view               |
| query        | first_view                  |
| query        | info                        |
| query        | info_less                   |
| query        | view_detail                 |
| query        | view_student_detail         |
| query        | view_student_detail_columns |
+--------------+-----------------------------+
7 rows in set (0.05 sec)

정리

세 가지 방법 모두 동일한 결과를 반환하지만 상황에 따라 적합한 방식이 다릅니다.

  • 간단한 확인: SHOW FULL TABLES 구문이 가장 직관적입니다.
  • 메타데이터 활용: 다른 조건과 결합하거나 프로그래밍적으로 처리할 때는 information_schema 조회가 유연합니다.
  • 스키마 구분이 필요한 경우: TABLE_SCHEMA 컬럼을 함께 조회하면 여러 데이터베이스 환경에서도 혼동 없이 관리할 수 있습니다.

참고로, 뷰의 실제 정의(CREATE VIEW 문)까지 확인하고 싶다면 SHOW CREATE VIEW 뷰이름; 명령어를 사용하면 됩니다.