Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

따옴표 사용 해결 오류 1064(42000):SQL 구문에 오류가 있습니다. 사용할 올바른 구문에 대해 MySQL 서버 버전에 해당하는 설명서를 확인하십시오.

<시간/>

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)