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

MySQL에서 이름에 '?' 문자가 포함된 데이터베이스 삭제하는 방법

MySQL에서 특수문자 '?'가 포함된 데이터베이스 삭제하기

데이터베이스 이름에 물음표(?)와 같은 특수문자가 포함되어 있으면 일반적인 방식으로는 DROP DATABASE 명령을 실행할 수 없습니다. 이 경우 데이터베이스 이름을 백틱(`) 기호로 감싸주어야 합니다. 기본 문법은 다음과 같습니다.

DROP DATABASE `yourDatabaseName`;

예제 데이터베이스 생성

먼저 문법을 이해하기 위해 '?' 문자가 포함된 데이터베이스를 하나 생성해 보겠습니다.

mysql> create database `test?data`;
Query OK, 1 row affected (0.14 sec)

'?' 문자가 포함된 데이터베이스가 성공적으로 생성되었습니다. 현재 서버에 존재하는 모든 데이터베이스 목록을 확인해 보겠습니다.

mysql> show databases;

위 쿼리의 실행 결과는 다음과 같습니다.

+-----------------------+
| Database              |
+-----------------------+
| business              |
| commandline           |
| database1             |
| databasesample        |
| education             |
| hb_student_tracker    |
| hello                 |
| information_schema    |
| javadatabase2         |
| javasampledatabase    |
| mybusiness            |
| mydatabase            |
| mysql                 |
| onetomanyrelationship |
| performance_schema    |
| rdb                   |
| sample                |
| sampledatabase        |
| schemasample          |
| sys                   |
| test                  |
| test3                 |
| test?data             |
| universitydatabase    |
| web                   |
| webtracker            |
+-----------------------+
26 rows in set (0.09 sec)

목록을 보면 'test?data' 데이터베이스가 정상적으로 생성된 것을 확인할 수 있습니다.

백틱을 사용한 데이터베이스 삭제

이제 '?' 문자가 포함된 데이터베이스를 삭제하려면, 앞서 설명한 것처럼 데이터베이스 이름을 백틱(`)으로 감싸야 합니다. 삭제 쿼리는 다음과 같습니다.

mysql> drop database `test?data`;
Query OK, 0 rows affected (0.32 sec)

삭제 결과 확인

삭제가 완료되었으므로, 더 이상 'test?data'라는 데이터베이스가 존재하지 않는지 확인해 보겠습니다.

mysql> show databases;

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

+-----------------------+
| Database              |
+-----------------------+
| business              |
| commandline           |
| database1             |
| databasesample        |
| education             |
| hb_student_tracker    |
| hello                 |
| information_schema    |
| javadatabase2         |
| javasampledatabase    |
| mybusiness            |
| mydatabase            |
| mysql                 |
| onetomanyrelationship |
| performance_schema    |
| rdb                   |
| sample                |
| sampledatabase        |
| schemasample          |
| sys                   |
| test                  |
| test3                 |
| universitydatabase    |
| web                   |
| webtracker            |
+-----------------------+
25 rows in set (0.00 sec)

위 출력 결과를 보면, 이전에는 26개였던 데이터베이스가 25개로 줄었고, 'test?data' 데이터베이스가 목록에서 사라진 것을 확인할 수 있습니다.

핵심 정리

MySQL에서는 백틱(`) 기호를 사용하면 물음표(?)를 비롯한 다양한 특수문자가 포함된 데이터베이스나 테이블 이름도 자유롭게 다룰 수 있습니다. 반대로 말하면, 특수문자가 포함된 객체 이름을 참조할 때 백틱을 생략하면 SQL 구문 오류가 발생할 수 있으므로 주의해야 합니다.