数据库 SQL SQL转义
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 ‘!’
最新文章
- jsp声称的java文件位置
- android之SharedPreferes
- Using Interface Builder记录
- c#开发Mongo笔记第二篇
- ural 1289. One Way Ticket
- poj 3114(强连通缩点+SPFA)
- arp spoofing
- flash 动画数据导出 到 coco2d-js ,cocos2d-x 问题的记录
- BZOJ 1072 [SCOI2007]安排perm 如压力DP
- windows下一个,OracleServiceXXX和Oracle 关系实例
- java.lang.NoClassDefFoundError异常
- 标准IO和重定向
- Netty对WebSocket的支持(五)
- LeetCode专题-Python实现之第13题:Roman to Integer
- MySql的创建时间和修改时间
- 第二阶段——个人工作总结DAY06
- 如何解决cacti的snmp error
- 对寄存器ESP和EBP的一些理解
- C#几种截取字符串的方法(split 、Substring、Replace、remove)
- UNITY_资源路径与加载外部文件
热门文章
- iOS- NSThread/NSOperation/GCD 三种多线程技术的对比及实现 -- 转
- [转]Open Data Protocol (OData) Basic Tutorial
- xshell常用命令大全
- C# Equals的重写
- ABP教程(三)- 开始一个简单的任务管理系统 – 后端编码
- VS Code 设置取消打开文件目录的自动定位跟踪功能。
- mysql 忘记密码 登陆+修改密码
- Android学习笔记(十一) Intent
- 函数式编程:上线文、包裹、容器-我们可以将一个值用Context(上下文)包裹起来
- ALTER FUNCTION - 修改一个函数的定义