当前位置: 首页 > 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与社区检测算法的结合:文本中的社区发现
  • 商务部:外贸优品中华行活动采购意向超167亿元
  • 因雷雨、沙尘等天气,这些机场航班运行可能受影响
  • 韩代总统李周浩履职
  • 上海与世界|黄菊与上海建设中国式全球城市
  • 贵州锦屏县委原书记舒健已任黔东南州政府办主任
  • 解放日报:服务国家战略,加快建成科技创新高地