当前位置: 首页 > news >正文

常用 SQL 转义符的总结

常用 SQL 转义符一览表

字符转义方法示例适用场景数据库差异说明
单引号 '''(双单引号)或 CHR(39)'It''s a test'字符串内包含单引号通用(MySQL、SQL Server、Oracle等)
双引号 """(双引号)或 CHR(34)SELECT "column""name" FROM "table"包含空格/保留字的字段名或表名主要用于 Oracle、PostgreSQL
反斜杠 \\\(双反斜杠)或 CHR(92)'C:\\Program Files\\'路径、正则表达式中的转义MySQL、PostgreSQL(需配置参数)
百分号 %\%(反斜杠转义)或 CHR(37)LIKE '100\%' ESCAPE '\'LIKE 模糊查询中匹配百分号本身通用(需配合 ESCAPE 关键字)
下划线 _\_(反斜杠转义)或 CHR(95)LIKE 'foo\_bar' ESCAPE '\'LIKE 模糊查询中匹配下划线本身通用
美元符号 $$$(双美元符号)或 CHR(36)'$${variable}$$'字符串内保留 ${} 结构PostgreSQL、TDSQL-PG
方括号 [ ][[]](双左/右括号)或 CHR(91)/CHR(93)SELECT [column[name]] FROM [table]SQL Server 中字段名包含特殊字符SQL Server 特有
换行符\n(反斜杠转义)或 CHR(10)'Line1\nLine2'字符串内换行MySQL、PostgreSQL
制表符\t(反斜杠转义)或 CHR(9)'Name\tAge'字符串内制表符MySQL、PostgreSQL
& 符号 &CHR(38)'AT&T' → `‘AT’CHR(38)

补充说明

  1. CHR() 函数的优势
    • 通过 ASCII 码直接生成字符,完全避免符号被解析为语法元素(如 CHR(36) 生成 $)。

    • 适用于动态 SQL 拼接或需硬编码特殊字符的场景。

  2. 数据库差异处理
    • MySQL:默认用反斜杠转义,字段名可用反引号包裹(如 `order`)。

    • PostgreSQL:支持 $$ 符号包裹字符串(如 $$${projectName}$$)。

    • SQL Server:优先使用方括号转义字段名(如 [user-table])。

  3. 最佳实践
    • 参数化查询:优先使用预编译语句(如 WHERE name = ?),避免手动转义和 SQL 注入风险。

    • 统一转义策略:根据数据库类型选择标准方法,避免混用符号。


注释
• 符号 CHR(n) 需结合具体数据库函数使用(如 PostgreSQL 的 CHR(36),Oracle 的 CHR(38))。

• 部分数据库(如 Oracle)需配置会话参数(如 SET DEFINE OFF)以禁用 & 符号的变量绑定功能。

相关文章:

  • 【目标检测】目标检测综述 目标检测技巧
  • 利用人工智能(AI)增强IT运营,提高IT管理效率
  • 使用若依二次开发商城系统-2
  • 【sylar-webserver】重构日志系统
  • 布尔差分法解析:从逻辑导数到电路优化
  • 链式栈和线性栈
  • 服务器在国外国内用户访问慢会影响谷歌排名吗?
  • gnome中删除application中失效的图标
  • (三十)安卓开发中的MVP模式详解
  • 四种阻抗匹配的方式
  • C#—Lazy<T> 类型(延迟初始化/懒加载模式)
  • [wifiI]CCA
  • qemu构建arm环境(AI生成)
  • 用74HC595芯片就可做一个SPI组件
  • 【NLP 68、R-BERT】
  • C 语言开发问题:使用 <assert.h> 时,定义的 #define NDEBUG 不生效
  • Transformer框架解析:从“Attention is All You Need”到现代AI基石
  • 20.3 使用技巧9
  • 回车键监听
  • NLP与社区检测算法的结合:文本中的社区发现
  • 山西公布商标侵权典型案例:一工厂生产价值三百多万假“维达”纸被查
  • 最新民调显示特朗普支持率降至上任以来新低
  • 特朗普就防卫负担施压日本,石破茂:防卫费应由我们自主决定
  • 伊朗艺术中的中国风
  • 因在罗博特科并购项目中执业违规,东方证券、国浩所均遭警示
  • 习近平主席东南亚三国行|元首外交硕果累累 • 一图读懂