我是PostgresSQL的新手。我试过
select * from employee where employee_name="elina";
但结果错误如下:
ERROR: column "elina" does not exist.
然后我尝试用单引号替换双引号,如下所示:
select * from employee where employee_name='elina';
结果很好..那么postgresql中的单引号和双引号之间有什么区别。如果我们不能在postgres查询中使用双引号,那么如果在postgreSQL中使用这个双引号有什么其他用途吗?
答案 0 :(得分:32)
双引号用于表或字段的名称。有时您可以省略它们。单引号用于字符串常量。这是SQL标准。在详细的形式中,您的查询如下所示:
select * from "employee" where "employee_name"='elina';
答案 1 :(得分:25)
SQL中的字符串常量是由单引号(
'
)限定的任意字符序列,例如'This is a string'
。要在字符串常量中包含单引号字符,请写两个相邻的单引号,例如'Dianne''s horse'
。请注意,这与双引号字符("
)不同。
其他地方on the same page:
还有第二种标识符:分隔标识符或引用标识符。它是通过用双引号(
"
)括起任意字符序列而形成的。分隔标识符始终是标识符,而不是关键字。因此,"select"
可用于引用名为“select”的列或表,而不带引号的select
将被视为关键字,因此在表或列使用时会引发解析错误名称是预期的。
TL; DR:字符串常量的单引号,表/列名称的双引号。
答案 2 :(得分:1)
单引号用于字符串文字,双引号用于转义DB对象,如表名/列名等。
具体来说,双引号用于转义列/表名称,如果它类似于任何保留/关键字。虽然每个RDBMS都有自己的方法来逃避相同(如MySQL
中的backtique或SQL Server
中的方括号),但使用双引号是ANSI标准。