MySQL에서 테이블 이름에 공백을 포함하려면 반드시 백틱(backtick) 기호를 사용해야 합니다. 백틱 없이 공백이 있는 테이블 이름을 그대로 작성하면 구문 오류가 발생합니다.
백틱 없이 생성 시 발생하는 오류
먼저, 공백이 포함된 테이블 이름(예: "Demo Table")을 백틱 없이 생성하려고 하면 어떤 오류가 발생하는지 살펴보겠습니다.
mysql> create table Demo Table
(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
EmployeeFirstName varchar(20),
EmployeeLastName varchar(20),
EmployeeAge int,
EmployeeSalary int,
EmployeeAddress varchar(200)
);
ERROR 1064 (42000): You have an error in your syntax; check the manual that corresponds
to your MySQL server version for the right syntax to use near 'Table37
(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, EmployeeFirstName varchar(' at line 1 )위와 같이 ERROR 1064 (42000) 구문 오류가 발생하는 것을 확인할 수 있습니다. MySQL은 공백이 있는 식별자를 인식하지 못하기 때문입니다.
백틱을 사용한 해결 방법
이 오류를 해결하려면 테이블 이름 전체를 백틱(`)으로 감싸주어야 합니다. 다음은 백틱을 활용하여 공백이 있는 테이블을 정상적으로 생성하는 쿼리입니다.
mysql> create table `Demo Table37`
(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
EmployeeFirstName varchar(20),
EmployeeLastName varchar(20),
EmployeeAge int,
EmployeeSalary int,
EmployeeAddress varchar(200)
);
Query OK, 0 rows affected (0.66 sec)테이블 이름 `Demo Table37`처럼 공백이 포함된 이름을 백틱 기호로 감싸주었기 때문에 오류 없이 정상적으로 테이블이 생성됩니다.
정리
- MySQL에서 공백이 포함된 테이블 이름은 반드시 백틱(`)으로 감싸야 합니다.
- 백틱 없이 작성하면 ERROR 1064 구문 오류가 발생합니다.
- 테이블을 조회하거나 수정할 때도 동일하게 백틱을 사용해야 합니다.
참고로, 가독성과 유지보수를 고려하면 공백 대신 언더스코어(_)를 사용하는 것이 일반적인 권장 사항입니다. 예를 들어 Demo_Table37과 같이 명명하면 백틱 없이도 자유롭게 사용할 수 있습니다.