PostgreSQL 中的单引号和双引号有什么区别?

新手上路,请多包涵

我是 PostgresSQL 的新手。我试过了

select * from employee where employee_name="elina";

但结果错误如下:

 ERROR: column "elina" does not exist.

然后我尝试用单引号替换双引号,如下所示:

 select * from employee where employee_name='elina';

结果很好..那么postgresql中的单引号和双引号有什么区别。如果我们不能在postgres查询中使用双引号,那么在postgreSQL中这个双引号是否还有其他用途?

原文由 jisna 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

双引号用于表或字段的名称。有时您可以省略它们。单引号用于字符串常量。这是 SQL 标准。在详细表单中,您的查询如下所示:

 select * from "employee" where "employee_name"='elina';

原文由 Michas 发布,翻译遵循 CC BY-SA 4.0 许可协议

PostgreSQL 手册中所述

SQL 中的字符串常量是由单引号 ( ' ) 限定的任意字符序列,例如 'This is a string' 。要在字符串常量中包含单引号字符,请写入两个相邻的单引号,例如 'Dianne''s horse' 。请注意,这与双引号字符( " )不同。

同一页面的 其他地方:

还有第二种标识符: 分隔标识符 或 _引用标识符_。它是通过用双引号 ( " ) 将任意字符序列括起来形成的。分隔标识符始终是标识符,而不是关键字。因此 "select" 可用于引用名为“select”的列或表,而未引用的 select 将被视为关键字,因此在使用时会引发解析错误 where需要一个表或列名。

TL;DR:字符串常量的单引号,表/列名的双引号。

原文由 melpomene 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题