MySQL에서 테이블 리스트를 확인하는 방법에 대해 알아보겠습니다.
테이블 리스트를 확인하기 위해서는 SHOW TABLES를 사용합니다.
SHOW TABLES
SHOW TABLES는 지정한 데이터 베이스에 생성되어 있는 모든 테이블을 확인할 수 있습니다.
SHOW TABLES;
MySQL에서 사용해보면서 모든 테이블이 출력되는지 확인해 보겠습니다.
mysql> SHOW TABLES;
+-------------------------+
| Tables_in_test_database |
+-------------------------+
| Complate |
| Member |
+-------------------------+
2 rows in set (0.21 sec)
SHOW TABLES를 사용해 모든 테이블을 출력했습니다.
SHOW TABLES 결과로 출력된 부분을 확인해 보면 Tables_in_test_database라고 헤더가 출력되었습니다.
Tables_in뒤에 있는 test_database가 현재 사용중인 데이터 베이스 이름입니다.
test_database 데이터 베이스에는 Complate와 Member 테이블 2개가 존재한다는 의미가 됩니다.
SHOW TABLES에 데이터 베이스명을 지정해 테이블 리스트를 출력할 수도 있습니다.
SHOW TABLES FROM 데이터 베이스명;
mysql> SHOW TABLES FROM test_databases;
+--------------------------+
| Tables_in_test_databases |
+--------------------------+
| Complate |
| Member |
+--------------------------+
2 rows in set (0.01 sec)
test_databases 데이터 베이스명을 지정해 테이블 일람을 출력했습니다.
INFORMATION_SCHEMA.TABLES
MySQL의 INFORMATION_SCHEMA.TABLES 시스템뷰를 사용해서도 모든 테이블을 확인할 수 있습니다.
INFORMATION_SCHEMA.TABLES를 사용해 테이블 일람을 취득하기 위해서는 SELECT를 사용합니다.
샘플을 보겠습니다.
SELECT * FROM INFORMATION_SCHEMA.TABLES;
mysql> SELECT * FROM INFORMATION_SCHEMA.TABLES;
+---------------+--------------------+------------------------------------------------------+-------------+--------------------+---------+------------+------------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+--------------------+----------+---------------------------------------+------------------------------------------+
| TABLE_CATALOG | TABLE_SCHEMA | TABLE_NAME | TABLE_TYPE | ENGINE | VERSION | ROW_FORMAT | TABLE_ROWS | AVG_ROW_LENGTH | DATA_LENGTH | MAX_DATA_LENGTH | INDEX_LENGTH | DATA_FREE | AUTO_INCREMENT | CREATE_TIME | UPDATE_TIME | CHECK_TIME | TABLE_COLLATION | CHECKSUM | CREATE_OPTIONS | TABLE_COMMENT |
+---------------+--------------------+------------------------------------------------------+-------------+--------------------+---------+------------+------------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+--------------------+----------+---------------------------------------+------------------------------------------+
| def | mysql | innodb_table_stats | BASE TABLE | InnoDB | 10 | Dynamic | 4 | 4096 | 16384 | 0 | 0 | 4194304 | NULL | 2024-01-25 02:26:22 | 2024-01-25 11:38:17 | NULL | utf8mb3_bin | NULL | row_format=DYNAMIC stats_persistent=0 | |
| def | mysql | innodb_index_stats | BASE TABLE | InnoDB | 10 | Dynamic | 12 | 1365 | 16384 | 0 | 0 | 4194304 | NULL | 2024-01-25 02:26:22 | 2024-01-25 11:38:17 | NULL | utf8mb3_bin | NULL | row_format=DYNAMIC stats_persistent=0 | |
| def | information_schema | CHARACTER_SETS | SYSTEM VIEW | NULL | 10 | NULL | 0 | 0 | 0 | 0 | 0 | 0 | NULL | 2024-01-25 11:30:03 | NULL | NULL | NULL | NULL | | |
| def | information_schema | CHECK_CONSTRAINTS | SYSTEM VIEW | NULL | 10 | NULL | 0 | 0 | 0 | 0 | 0 | 0 | NULL | 2024-01-25 11:30:03 | NULL | NULL | NULL | NULL | | |
| def | information_schema | COLLATIONS | SYSTEM VIEW | NULL | 10 | NULL | 0 | 0 | 0 | 0 | 0 | 0 | NULL | 2024-01-25 11:30:03 | NULL | NULL | NULL | NULL | | |
| def | information_schema | COLLATION_CHARACTER_SET_APPLICABILITY | SYSTEM VIEW | NULL | 10 | NULL | 0 | 0 | 0 | 0 | 0 | 0 | NULL | 2024-01-25 11:30:03 | NULL | NULL | NULL | NULL | | |
| def | information_schema | COLUMNS | SYSTEM VIEW | NULL | 10 | NULL | 0 | 0 | 0 | 0 | 0 | 0 | NULL | 2024-01-25 11:30:03 | NULL | NULL | NULL | NULL | | |
| def | information_schema | COLUMNS_EXTENSIONS | SYSTEM VIEW | NULL | 10 | NULL | 0 | 0 | 0 | 0 | 0 | 0 | NULL | 2024-01-25 11:30:03 | NULL | NULL | NULL | NULL | | |
| def | information_schema | COLUMN_STATISTICS | SYSTEM VIEW | NULL | 10 | NULL | 0 | 0 | 0 | 0 | 0 | 0 | NULL | 2024-01-25 11:30:03 | NULL | NULL | NULL | NULL | | |
| def | information_schema | EVENTS | SYSTEM VIEW | NULL | 10 | NULL | 0 | 0 | 0 | 0 | 0 | 0 | NULL | 2024-01-25 11:30:03 | NULL | NULL | NULL | NULL | | |
| def | information_schema | FILES | SYSTEM VIEW | NULL | 10 | NULL | 0 | 0 | 0 | 0 | 0 | 0 | NULL | 2024-01-25 11:30:03 | NULL | NULL | NULL | NULL | | |
...
+---------------+--------------------+------------------------------------------------------+-------------+--------------------+---------+------------+------------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+--------------------+----------+---------------------------------------+------------------------------------------+
330 rows in set (0.68 sec)
INFORMATION_SCHEMA.TABLES를 사용해 테이블 일람을 취득한 경우에는 모든 데이터 베이스의 정보가 표시됩니다.
사용자가 만든 테이블만이 아닌 시스템 정보가 저장되어 있는 테이블들도 표시가 되는것입니다.
원하는 데이터 베이스명을 지정해 테이블 이름을 취득할 수도 있습니다.
사용 방법을 확인해보겠습니다.
SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = ‘데이터 베이스명’;
샘플을 보면서 사용 방법을 확인해보겠습니다.
mysql> SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'test_databases';
+---------------+----------------+------------+------------+--------+---------+------------+------------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+--------------------+----------+----------------+---------------+
| TABLE_CATALOG | TABLE_SCHEMA | TABLE_NAME | TABLE_TYPE | ENGINE | VERSION | ROW_FORMAT | TABLE_ROWS | AVG_ROW_LENGTH | DATA_LENGTH | MAX_DATA_LENGTH | INDEX_LENGTH | DATA_FREE | AUTO_INCREMENT | CREATE_TIME | UPDATE_TIME | CHECK_TIME | TABLE_COLLATION | CHECKSUM | CREATE_OPTIONS | TABLE_COMMENT |
+---------------+----------------+------------+------------+--------+---------+------------+------------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+--------------------+----------+----------------+---------------+
| def | test_databases | Complate | BASE TABLE | InnoDB | 10 | Dynamic | 9 | 1820 | 16384 | 0 | 0 | 0 | 12 | 2024-01-25 11:35:39 | 2024-01-25 11:37:37 | NULL | utf8mb4_0900_ai_ci | NULL | | |
| def | test_databases | Member | BASE TABLE | InnoDB | 10 | Dynamic | 9 | 1820 | 16384 | 0 | 0 | 0 | 10 | 2024-01-25 11:35:59 | 2024-01-25 11:38:29 | NULL | utf8mb4_0900_ai_ci | NULL | | |
+---------------+----------------+------------+------------+--------+---------+------------+------------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+--------------------+----------+----------------+---------------+
2 rows in set (0.01 sec)
샘플로 만들었던 데이터 베이스인 test_databases를 지정해 테이블 일람을 취득했습니다.
INFORMATION_SCHEMA.TABLES를 사용해 테이블일람을 취득하는 경우에는 테이블에 설정되어 있는 정보들도 같이 취득할 수 있습니다.
INFORMATION_SCHEMA.TABLES로 취득한 정보중 테이블 이름은 TABLE_NAME 컬럼에서 확인 할 수 있습니다.
댓글