MySQL에서 특정 데이터베이스에 몇 개의 테이블이 존재하는지 확인하고 싶다면, count(*) 함수와 table_schema 개념을 활용하면 간단하게 해결할 수 있습니다. 먼저 SHOW TABLES 명령어로 데이터베이스에 어떤 테이블들이 있는지 살펴본 뒤, INFORMATION_SCHEMA.TABLES를 조회해 정확한 개수를 구하는 순서로 진행합니다.
1단계: SHOW TABLES로 테이블 목록 확인하기
'business' 데이터베이스에 현재 존재하는 테이블들을 확인하려면 다음과 같이 show 명령어를 실행합니다.
mysql> show tables;
실행 결과, 'business' 데이터베이스에 포함된 모든 테이블 이름이 화면에 출력됩니다.
+--------------------------+ | Tables_in_business | +--------------------------+ | addcheckconstraintdemo | | addcolumntable | | addconstraintdemo | | addnotnulldemo | | alphademo | | autoincrement | | autoincrementtable | | backticksymbol | | bookindexes | | chardemo | ... (중략) ... | whereconditon | | xmldemo | +--------------------------+ 132 rows in set (0.01 sec)
출력 결과 하단의 "132 rows in set" 문구에서 알 수 있듯이, 'business' 데이터베이스에는 총 132개의 테이블이 존재합니다.
2단계: INFORMATION_SCHEMA로 테이블 개수 집계하기
테이블 목록을 일일이 눈으로 세는 대신 정확한 개수만 확인하고 싶다면, 아래 쿼리를 사용하면 됩니다.
mysql> SELECT count(*) AS TOTALNUMBEROFTABLES
-> FROM INFORMATION_SCHEMA.TABLES
-> WHERE TABLE_SCHEMA = 'business';
실행 결과는 다음과 같습니다.
+---------------------+ | TOTALNUMBEROFTABLES | +---------------------+ | 132 | +---------------------+ 1 row in set (0.01 sec)
쿼리 구성 요소 살펴보기
- INFORMATION_SCHEMA.TABLES: MySQL 서버가 관리하는 메타데이터, 즉 테이블 관련 정보를 담고 있는 시스템 뷰입니다.
- TABLE_SCHEMA = 'business': 조회 범위를 'business' 데이터베이스로 한정합니다.
- count(*): 조건에 맞는 행의 개수, 즉 해당 데이터베이스 내 테이블의 총 개수를 집계합니다.
이처럼 INFORMATION_SCHEMA.TABLES를 활용하면 별도의 도구나 프로그램 없이 SQL 한 줄만으로 원하는 데이터베이스의 테이블 개수를 손쉽게 파악할 수 있습니다. 테이블이 많은 운영 환경에서도 빠르고 정확하게 현황을 점검할 때 유용하게 활용할 수 있습니다.