MySQL에서는 백틱과 작은 따옴표 또는 큰 따옴표의 두 가지 다른 유형의 따옴표를 사용할 수 있습니다. 이 경우 열 이름에 작은 따옴표를 사용하고 있기 때문에 오류가 발생할 수 있습니다. 작은따옴표 대신 백틱 기호(` `)를 사용해야 합니다. 백틱은 열 이름에 사용할 수 있고 작은따옴표는 문자열에 사용할 수 있습니다.
위의 오류를 이해하기 위해 테이블을 생성해 보겠습니다. 테이블을 생성하는 쿼리는 다음과 같습니다 -
mysql> create table Backtick_SymbolDemo -> ( -> Id int NOT NULL AUTO_INCREMENT, -> Name varchar(20), -> FileName varchar(30), -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (0.81 sec)
아래와 같이 열 주위에 백틱 기호 대신 작은따옴표를 사용하면 오류가 발생합니다. 여기에 작은 따옴표가 있는 값을 삽입했으며 오류가 표시됩니다. −
mysql> insert into Backtick_SymbolDemo(`Name`,'FileName') values('John','Sum.cpp'); ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''FileName') values('John','Sum.cpp')' at line 1
이 오류를 방지하려면 모든 열 이름 주위에 역따옴표 기호를 사용하거나 역따옴표나 작은따옴표를 모두 사용하지 마십시오.
레코드를 삽입하는 쿼리는 다음과 같습니다. 다음은 두 열 이름 주위에 백틱 기호를 사용하는 방법입니다.
mysql> insert into Backtick_SymbolDemo(`Name`,`FileName`) values('John','Sum.cpp'); Query OK, 1 row affected (0.12 sec)
다음은 백틱 기호를 사용하지 않은 삽입 레코드입니다. 쿼리는 다음과 같습니다 -
mysql> insert into Backtick_SymbolDemo(Name,FileName) values('Larry','SocketProgram.java'); Query OK, 1 row affected (0.23 sec) mysql> insert into Backtick_SymbolDemo(Name,FileName) values('Mike','UserCreationScript.sql'); Query OK, 1 row affected (0.10 sec)
select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -
mysql> select *from Backtick_SymbolDemo;
다음은 출력입니다 -
+----+-------+------------------------+ | Id | Name | FileName | +----+-------+------------------------+ | 1 | John | Sum.cpp | | 2 | Larry | SocketProgram.java | | 3 | Mike | UserCreationScript.sql | +----+-------+------------------------+ 3 rows in set (0.00 sec)