SQL语句书写时易出现的格式错误
SQL语句书写时易出现的格式错误
一、在java中使用
java中使用数据库,经常要写SQL语句,但是经常会报“com.microsoft.sqlserver.jdbc.SQLServerException: 关键字 'user' 附近有语法错误”。这个错误是由于SQL语句书写时引号使用不当造成的,只要稍加修改就行了。另外,无论在java或者SSMS中使用,user前后都可以随意加空格,不会报错 。
table名格式错误样例:
1、String query = "create table user (id int,name VARCHAR(10),age int)"; //user附近没有任何引号
2、String query = "create table ‘user’ (id int,name VARCHAR(10),age int)"; //把user用单引号括起来
3、String query = "create table "user" (id int,name VARCHAR(10),age int)"; //把user用双引号括起来,这个太低级了,Eclipse会报错
正确的使用方法:
String query = "create table \"user5\" (id int,name VARCHAR(10),age int)"; //user用双引号括起来,双引号前面要加转义字符"\"
Insert语句中,数据要用单引号括起来:
String insert_stmt1 = "INSERT INTO \"user\" VALUES(1,'旭哥',10)";//SQL语句
二、在sql server 2008 r2 的SSMS中使用
table名格式错误样例:
1、create table ‘user’ (id int,name VARCHAR(10),age int) //把user用单引号括起来
2、create table \"user5\" (id int,name VARCHAR(10),age int) //user用双引号括起来,双引号前面要加转义字符"\"
3、create table user (id int,name VARCHAR(10),age int) //user附近没有任何引号
正确的使用方法:
create table "user" (id int,name VARCHAR(10),age int)//把user用双引号括起来
三、在SQL语句中,一般数据库名、table名、列名用双引号括起来,char类的数据用单引号括起来,int类的数据直接书写,不用引号,如
insert into "user" values(1,'d',21)