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

MySQL에서 SELECT 문 없이 테이블 존재 여부 확인하는 방법

MySQL에서 SELECT 없이 테이블 존재 여부 확인하기

MySQL에서는 SHOW 명령어를 활용하면 SELECT 문을 사용하지 않고도 특정 테이블이 데이터베이스에 존재하는지 손쉽게 확인할 수 있습니다. 이 글에서는 실제 예제를 통해 그 방법을 단계별로 살펴보겠습니다.

1단계: 데이터베이스 선택하기

먼저 USE 명령어로 작업할 데이터베이스를 선택합니다. 여기서는 'business'라는 데이터베이스를 사용하겠습니다.

mysql> USE business;
Database changed

'business' 데이터베이스에 성공적으로 진입했습니다.

2단계: 전체 테이블 목록 조회하기

이제 해당 데이터베이스에 어떤 테이블들이 있는지 확인해 보겠습니다. 사용하는 쿼리는 다음과 같습니다.

mysql> SHOW TABLES;

실행 결과, 아래와 같이 테이블 목록이 출력됩니다(예시에서는 일부만 발췌).

+------------------------+
| Tables_in_business |
+------------------------+
| addcolumntable |
| autoincrement |
| bookindexes |
| chardemo |
| clonestudent |
| deletedemo |
| demoint |
| employeetable |
| foreigntable |
| groupdemo |
| intdemo |
| mytable |
| primarytable |
| student |
| tblfirst |
| tblstudent |
| textdemo |
| varchardemo |
| whereconditon |
+------------------------+
72 rows in set (0.03 sec)

출력 결과를 보면 총 72개의 테이블이 'business' 데이터베이스에 존재함을 알 수 있습니다.

3단계: LIKE 절로 특정 테이블 존재 여부 확인하기

SELECT 문 없이 테이블 존재 여부를 확인하는 더 효율적인 방법은 SHOW TABLESLIKE 절을 함께 사용하는 것입니다. 기본 문법은 다음과 같습니다.

SHOW TABLES LIKE '테이블명';

이제 위 쿼리를 실제로 적용해 'tblstudent'라는 테이블이 존재하는지 확인해 보겠습니다.

mysql> SHOW TABLES LIKE 'tblstudent';

실행 결과는 다음과 같습니다.

+---------------------------------+
| Tables_in_business (tblstudent) |
+---------------------------------+
| tblstudent |
+---------------------------------+
1 row in set (0.00 sec)

위 출력에서 볼 수 있듯이 'tblstudent' 테이블은 데이터베이스에 실제로 존재합니다.

존재하지 않는 테이블을 조회한 경우

반대로 존재하지 않는 테이블 이름으로 조회하면 어떻게 될까요? 'sampledemo'라는 테이블로 확인해 보겠습니다.

mysql> SHOW TABLES LIKE 'sampledemo';
Empty set (0.00 sec)

결과가 비어 있으면(Empty set) 해당 테이블이 데이터베이스에 존재하지 않는다는 의미입니다.

정리

SELECT 문을 사용하지 않고 MySQL에서 테이블 존재 여부를 확인하는 방법은 매우 간단합니다. SHOW TABLES LIKE '테이블명' 쿼리 하나면 충분하며, 결과 행이 반환되면 테이블이 존재하고 Empty set이 반환되면 존재하지 않는 것입니다. 스크립트나 애플리케이션 로직에서 테이블 존재 여부를 빠르게 검증해야 할 때 유용하게 활용할 수 있습니다.