SQL转义

@author ixenos

前言


类似文件分隔符在不同系统的实现不同,我们需要一个中间的转义字符来作为接口,各厂商再具体实现

而SQL的转义语法主要为了支持各种数据库普遍支持的特性,但各数据库使用的是与数据库相关的语法变体,因此,将转义语法翻译为特定数据库的语法是JDBC驱动程序的任务之一

所应用到的特性


1.日期和时间字面常量

a)     用d、t、ts来表示DATE、TIME、TIMESTAMP的值

b)     d  ‘2008-02-02’

c)     t  ’22:22:22’

d)     ts  ‘2008-02-02 22:22:22’

2.调用标量函数

a)     标量函数,指仅返回一个值的函数(数据库中包含大量的函数,但各数据库间名字有差异)

b)     fn  left(?, 20)

c)     fn  user()

3.调用存储过程

a)     在数据库中执行的用数据库相关的语言编写的过程,要调用存储过程需要使用CALL转义,其中在存储过程无参数时就不用加括号,应该用=号来捕获存储过程的返回值

b)     call  PROC1(?, ?)

c)     call  PROC2

d)     call  ? = PROC3(?)

4.外连接

a)    左连接就是以左为主,右边的记录可能为空, 右连接就是以右为主左边的可能为空

b)     LEFT  OUTER  JOIN左连接

c)     RIGHT  OUTER  JOIN 右连接

d)     FULL  OUTER  JOIN 可以同时返回这两类没有任何匹配的信息

e)     示例:SELECT * FROM oj Books LEFT OUTER JOIN Publishers ON Books.Publisher_Id = Publisher.Publisher_Id

f)      这个查询是左连接,包含了Publisher_Id字段在Publisher表中没有任何匹配的书(显然,这些书来自左边的)

g)     其他连接同理!

5.在LIKE子句中的转义字符

a)     _和%字符在LIKE子句中的特殊含义

b)     目前没有统一的标准,只能使用escape来定义转义符

c)     示例:WHERE  ?  LIKE  %!_%  escape  ‘!’

最新文章

  1. jsp声称的java文件位置
  2. android之SharedPreferes
  3. Using Interface Builder记录
  4. c#开发Mongo笔记第二篇
  5. ural 1289. One Way Ticket
  6. poj 3114(强连通缩点+SPFA)
  7. arp spoofing
  8. flash 动画数据导出 到 coco2d-js ,cocos2d-x 问题的记录
  9. BZOJ 1072 [SCOI2007]安排perm 如压力DP
  10. windows下一个,OracleServiceXXX和Oracle 关系实例
  11. java.lang.NoClassDefFoundError异常
  12. 标准IO和重定向
  13. Netty对WebSocket的支持(五)
  14. LeetCode专题-Python实现之第13题:Roman to Integer
  15. MySql的创建时间和修改时间
  16. 第二阶段——个人工作总结DAY06
  17. 如何解决cacti的snmp error
  18. 对寄存器ESP和EBP的一些理解
  19. C#几种截取字符串的方法(split 、Substring、Replace、remove)
  20. UNITY_资源路径与加载外部文件

热门文章

  1. iOS- NSThread/NSOperation/GCD 三种多线程技术的对比及实现 -- 转
  2. [转]Open Data Protocol (OData) Basic Tutorial
  3. xshell常用命令大全
  4. C# Equals的重写
  5. ABP教程(三)- 开始一个简单的任务管理系统 – 后端编码
  6. VS Code 设置取消打开文件目录的自动定位跟踪功能。
  7. mysql 忘记密码 登陆+修改密码
  8. Android学习笔记(十一) Intent
  9. 函数式编程:上线文、包裹、容器-我们可以将一个值用Context(上下文)包裹起来
  10. ALTER FUNCTION - 修改一个函数的定义