MySQL에서 데이터베이스 목록 조회하기
MySQL 서버에 생성된 모든 데이터베이스의 목록을 확인하고 싶다면 information_schema.schemata 테이블을 활용하면 됩니다. 이 테이블에는 현재 MySQL 인스턴스에 존재하는 모든 스키마(데이터베이스)의 정보가 저장되어 있습니다.
기본 문법
데이터베이스 목록을 반환하는 기본적인 문법은 다음과 같습니다.
select schema_name as 별칭 from information_schema.schemata;
여기서 schema_name 컬럼은 각 데이터베이스의 이름을 담고 있으며, as 키워드를 사용해 원하는 이름으로 별칭(alias)을 지정할 수 있습니다.
실제 쿼리 예제
아래는 DatabaseName이라는 별칭을 사용하여 데이터베이스 목록을 조회하는 쿼리입니다.
mysql> select schema_name as DatabaseName from information_schema.schemata;
실행 결과
위 쿼리를 실행하면 다음과 같이 시스템 데이터베이스(mysql, information_schema, performance_schema, sys)를 포함한 전체 데이터베이스 목록이 출력됩니다.
+---------------------------+ | DatabaseName | +---------------------------+ | mysql | | information_schema | | performance_schema | | sys | | business | | sample | | hello | | test | | mybusiness | | databasesample | | schemasample | | universitydatabase | | education | | mydatabase | | database1 | | sampledatabase | | test3 | | javadatabase2 | | javasampledatabase | | rdb | | onetomanyrelationship | | webtracker | | web | | commandline | | hb_student_tracker | | bothinnodbandmyisam | | customertracker | | tracker | | demo | | customer_tracker_database | | login | | onlinebookstore | | customer-tracker | | web_tracker | | instant_app | | 1233 | +---------------------------+ 36 rows in set (0.00 sec)
참고 사항
일반적으로 가장 많이 사용되는 방법은 SHOW DATABASES; 명령어입니다. 하지만 위와 같이 information_schema.schemata를 조회하면 결과에 필터링(WHERE 절), 정렬(ORDER BY) 등의 조건을 자유롭게 적용할 수 있다는 장점이 있습니다.