테이블 이름에 공백이 포함되어 있을 때는 반드시 백틱(backtick, `)으로 테이블 이름을 감싸서 사용해야 합니다. 이번 글에서는 실제 예제를 통해 공백이 있는 테이블 이름을 다루는 방법을 단계별로 살펴보겠습니다.
1. 공백이 있는 이름으로 테이블 생성하기
먼저 이름에 공백이 포함된 테이블을 생성해 보겠습니다. 아래 예제에서는 테이블 이름인 Demo Table138을 백틱으로 감싼 것을 확인할 수 있습니다.
mysql> create table `Demo Table138`
(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
Price int
);
Query OK, 0 rows affected (0.47 sec)2. INSERT 명령으로 데이터 삽입하기
테이블이 생성되었으니 insert 명령을 사용해 레코드를 삽입합니다. 이때도 마찬가지로 테이블 이름을 백틱으로 감싸야 합니다.
mysql> insert into `Demo Table138`(Price) values(450); Query OK, 1 row affected (0.18 sec) mysql> insert into `Demo Table138`(Price) values(499); Query OK, 1 row affected (0.16 sec) mysql> insert into `Demo Table138`(Price) values(199); Query OK, 1 row affected (0.17 sec) mysql> insert into `Demo Table138`(Price) values(3090); Query OK, 1 row affected (0.21 sec)
3. SELECT 명령으로 데이터 조회하기
insert 명령으로 저장한 레코드를 select 명령으로 화면에 출력해 보겠습니다.
다음은 테이블 이름에 공백이 포함된 경우 해당 테이블에서 데이터를 조회하는 쿼리입니다.
mysql> select * from `Demo Table138`;
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+----+-------+ | Id | Price | +----+-------+ | 1 | 450 | | 2 | 499 | | 3 | 199 | | 4 | 3090 | +----+-------+ 4 rows in set (0.00 sec)
정리
MySQL에서 테이블 이름이나 컬럼 이름에 공백 또는 특수문자가 포함된 경우에는 해당 식별자를 백틱(`)으로 감싸주어야 오류 없이 정상적으로 쿼리를 실행할 수 있습니다. CREATE, INSERT, SELECT 등 모든 SQL 문에서 동일하게 적용되므로 참고하시기 바랍니다.