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

MySQL에서 데이터베이스가 비어 있는지 확인하는 쿼리 방법

MySQL에서 데이터베이스가 비어 있는지 확인하는 방법

데이터베이스 안에 테이블이 하나도 없는지, 즉 데이터베이스가 비어 있는지 확인해야 할 때가 있습니다. MySQL에서는 INFORMATION_SCHEMA.COLUMNS를 사용하면 간단하게 확인할 수 있습니다.

기본 문법

SELECT COUNT(DISTINCT `TABLE_NAME`) AS anyAliasName FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `table_schema` = 'yourDatabaseName';

위 쿼리는 지정한 데이터베이스에 테이블이 하나도 없으면 0을 반환하고, 테이블이 존재하면 해당 데이터베이스의 테이블 개수를 반환합니다.

이번 예제에서는 미리 생성해 둔 두 개의 데이터베이스인 'sample''test3'를 사용합니다. 'sample'에는 테이블이 많이 들어 있어 쿼리 결과로 테이블 개수가 반환되고, 'test3'에는 테이블이 전혀 없어 0이 반환됩니다.

사례 1 — 테이블이 있는 데이터베이스(sample)

쿼리는 다음과 같습니다.

mysql> SELECT COUNT(DISTINCT `table_name`) AS TotalNumberOfTables FROM `information_schema`.`columns` WHERE `table_schema` = 'sample';

실행 결과 테이블 개수가 출력되므로, 이 데이터베이스는 비어 있지 않습니다.

+---------------------+
| TotalNumberOfTables |
+---------------------+
|                 130 |
+---------------------+
1 row in set (0.01 sec)

사례 2 — 빈 데이터베이스(test3)

쿼리는 다음과 같습니다.

mysql> SELECT COUNT(DISTINCT `table_name`) AS TotalNumberOfTables FROM `information_schema`.`columns` WHERE `table_schema` = 'test3';

실행 결과가 0이므로, 이 데이터베이스는 비어 있습니다.

+---------------------+
| TotalNumberOfTables |
+---------------------+
|                   0 |
+---------------------+
1 row in set (0.00 sec)

결과 해석

위에서 살펴본 것처럼 쿼리 결과가 0이라면 해당 데이터베이스에 테이블이 하나도 없다는 의미입니다. 반대로 0보다 큰 값이 반환되면 그 숫자만큼의 테이블이 존재하는 것입니다. 이 방법을 활용하면 SHOW TABLES 같은 별도의 명령 없이도 단 한 번의 쿼리로 데이터베이스의 상태를 손쉽게 파악할 수 있습니다.