MySQL 데이터베이스 목록을 확인하는 쿼리
MySQL에서 서버에 존재하는 데이터베이스(스키마)의 목록을 확인하려면 information_schema의 schemata 테이블을 조회하는 쿼리를 사용할 수 있습니다. 아래 쿼리를 실행하면 현재 MySQL 서버에 등록된 모든 데이터베이스의 이름을 한눈에 볼 수 있습니다.
mysql> SELECT schema_name FROM information_schema.schemata; +--------------------+ | schema_name | +--------------------+ | information_schema | | gaurav | | mysql | | performance_schema | | query | | query1 | | sys | | tutorials | +--------------------+ 8 rows in set (0.00 sec)
위 결과에서 information_schema, mysql, performance_schema, sys는 MySQL이 기본적으로 생성하는 시스템 데이터베이스이며, 나머지는 사용자가 직접 생성한 데이터베이스입니다.
WHERE 절을 활용한 조건부 검색
데이터베이스가 많은 경우 전체 목록 대신 원하는 데이터베이스만 필터링하는 것이 효율적입니다. 이때 WHERE 절과 LIKE 연산자를 함께 사용하면 특정 패턴과 일치하는 데이터베이스만 조회할 수 있습니다.
mysql> SELECT schema_name FROM information_schema.schemata
-> WHERE schema_name LIKE '%schema' OR schema_name LIKE '%s';
+--------------------+
| schema_name |
+--------------------+
| information_schema |
| performance_schema |
| sys |
| tutorials |
+--------------------+
4 rows in set (0.00 sec)위 예제에서는 이름이 'schema'로 끝나거나 's'로 끝나는 데이터베이스만 출력되었습니다. 이처럼 LIKE 패턴을 응용하면 원하는 조건에 맞는 데이터베이스를 손쉽게 찾을 수 있습니다.
참고: SHOW DATABASES 명령어
동일한 결과를 얻는 더 간단한 방법으로 SHOW DATABASES; 명령어를 사용할 수도 있습니다. 다만 information_schema를 직접 조회하는 방식은 WHERE 절 활용이 자유롭고, 다른 테이블과의 조인 등 복잡한 조건 검색에 유리하다는 장점이 있습니다.