(mysql、oracle、plsql)数据库环境
首先我们先来说一下单引号和反引号,如图,这里的 '图书ID' 就使用到了单引号,而 CREATE TABLE `book` 这里的 book 就使用到了反引号,那么他们具体的有什么区别呢?
单引号:我们在例子中的条件值周围使用的是单引号。SQL 使用单引号来环绕文本值。如果是数值,请不要使用引号。按照别的说法来说就是Varchar类型(也可以说是String、字符串类型)这一些在数据库语句中使用的时候应该使用单引号,而不是直接使用。而对于数值类型的,反而是不能使用单引号。如图所示有正确的和错误的使用方法:
反引号:它是为了区分MYSQL的保留字与普通字符而引入的符号。注意划重点:有MYSQL保留字作为字段的,必须加上反引号来区分!!!所谓的保留字就是select database insert 这一类数据库的sql指令,当我们不得已要拿他们来做表名和字段名的时候 我们必须要加反引号来避免编译器把这部分认为是保留字而产生错误。当然,在上面的例子中,book并不是保留字,这么加反引号只是作一个保险,这也是一个良好的sql建表习惯。务必要记住:保留字既不能作为表名,也不能作为字段名,如果非要这么操作,请记住要增加反引号!
双引号的用法和单引号有所类似,大多数数据库都支持单引号和双引号的互换,即varchar类型的变量既可以用单引号来囊括,也可以用双引号。当然了,一边单引号,一边双引号是不被允许的。
另外,在oracle里面,双引号还有一个意义,那就是保留大小写。在oracle数据库里面,所有的字段是默认为转化成大写后进数据库的,所以如果你有一个表名为user,这个时候select * from user;这个语句是查不出任何数据的!(明明创建了表,也会提示表不存在的错误)只有select * from “user”才可以,因为上面的语句会默认转化为大写。
最后我们总结一句话来概括sql中三个引号的用法,那就是:字符串用单引号;表名,字段名等用反引号;大小写冲突用双引号。只要记得这三句,你的sql语句在引号方面就完美无缺啦。
只有在oracle里面才会强制转化大小写,mysql实际上是区分大小写的。
mysql里面双引号引用字符串在某些版本中会报错,为了避免错误,尽量使用单引号来操作字符串。
即使表名和字段名不是你所知的数据库保留字,尽可能也养成加上反引号的好习惯,这也可以避免错误,保证开发的顺利进行。