数据库列名使用关键词解决方法
问题描述:在我们执行sql语句时,有时候会报语法错误,但就是找不出来错误,这是最好看看表名或者字段有没有用关键字,有关键字就要加上符号转义一下,不然会当做关键字处理的。以下是不同数据库的不同处理方式:
- 在Oracle 中只能用双引号 " 包围关键字。
但由于Oracle中双引号内的字符串是区分大小写的,而不管创建表还是查询时,Oracle都会把字段名转成全部大写,所以,除非创建表时双引号内的字段名就是全大写的,否则以后查询时SQL语句都必须加双引号,若不加则Oracle内部会把字段名转成全大写从而提示“无效的标识符”。
同理,查询普通字段也可以通过加双引号查询得出,但双引号内的字段名必须是全大写,例如SELECT "ANY_FIELD_NAME" FROM TableName
- 在SQL Server 中可以用方括号 [] 或双引号 " 包围关键字。字段名任何情况下都不区分大小写。
- 在MySQL 中用 ` (backticks,Esc下面那个键)把表和列名名字围起来。字段名也不区分大小写。
- 在Access 中可以用方括号 [] 包围关键字。字段名任何情况下都不区分大小写。