sql - 为什么SQL既支持两个单引号又支持反斜杠转义

标签 sql postgresql security escaping

我最近惊讶地发现,在 Postgres 和其他 SQL 数据库中,两个单引号是转义单引号(作为使用反斜杠的替代方法)的有效方法。我正在阅读的一些文档实际上将其称为转义单引号的“正常”方式。

-- Using two single quotes
SELECT FROM "users" WHERE "users"."email" = 'o''keefe@email.com'

-- Using a backslash
SELECT FROM "users" WHERE "users"."email" = 'o\'keefe@email.com'

我希望有人能提供一些关于这种转义形式的起源的背景信息,以及它相对于反斜杠形式的任何优点或缺点。

最佳答案

双单引号是将单引号放入 SQL 字符串中的 ANSI 标准方法。

反斜杠是一种常见的约定,特别是在基于 Unix 的机器上,因此许多数据库也支持它。

我更喜欢双单引号,因为它是 ANSI 标准。在 Windows 和 Unix 框之间切换时,我也对反斜杠感到困惑。

关于sql - 为什么SQL既支持两个单引号又支持反斜杠转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47488416/

相关文章:

java - 如何有效地将数据从 CSV 加载到数据库中?

c# - SQL (Firebird) 查询太慢

sql - 为现有 SQL 数据库创建 Azure 存储库

sql - 使名称全部大写?

postgresql - 如何创建一个通常在条目更新之前的条目后运行的函数?

sql - 计算销货成本

web-services - 通过 HTTPS 公开 RESTful WCF 服务

mysql - 数据库加密是否不如应用程序加密安全?

c# - 加密 WCF 连接的其他方法

php - 记录每行对 MySQL 表行的命中