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  ‘!’

数据库 SQL SQL转义的更多相关文章

  1. 数据库之sql语句汇总20180616

    /*******************************************************************************************/ 一.SQL简 ...

  2. 【数据库】 SQL 通配符

    [数据库] SQL 通配符 1. % : 替代一个或多个字符 2. _ : 仅替代一个字符 3. [] : 字符列中的任何单一字符 4. [^charlist] 或者 [!charlist]  : 不 ...

  3. 淘宝数据库OceanBase SQL编译器部分 源代码阅读--解析SQL语法树

    OceanBase是阿里巴巴集团自主研发的可扩展的关系型数据库,实现了跨行跨表的事务,支持数千亿条记录.数百TB数据上的SQL操作. 在阿里巴巴集团下,OceanBase数据库支持了多个重要业务的数据 ...

  4. 《淘宝数据库OceanBase SQL编译器部分 源码阅读--解析SQL语法树》

    淘宝数据库OceanBase SQL编译器部分 源码阅读--解析SQL语法树   曾经的学渣 2014-06-05 18:38:00 浏览1455 云数据库Oceanbase   OceanBase是 ...

  5. 数据库语言sql

    数据库语言SQL SQL的形式 交互式SQL 一般DBMS都提供联机交互工具 用户可直接键入SQL命令对数据库进行操作 由DBMS来进行解释 嵌入式SQL 能将SQL语句嵌入到高级语言(宿主语言) 使 ...

  6. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  7. 如何转换SQL Server 2008数据库到SQL Server 2005

        背景介绍: 公司一套系统使用的是SQL SERVER 2008数据库,突然一天收到邮件,需要将这套系统部署到各个不同地方(海外)的工厂,需要在各个工厂部署该数据库,等我将准备工作做好,整理文档 ...

  8. jdbc向各种数据库发送sql语句

    1.有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事.换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Info ...

  9. SQL---Chapter01 数据库和SQL

    数据库类型: 层次数据库(Hierarchical Database, HDB) 数据通过层次结构(树形结构)的方式表示出来. 关系型数据库(Relational Database, RDB) 使用专 ...

随机推荐

  1. K - KazaQ’s Socks

    Bryce1010模板 #include <bits/stdc++.h> using namespace std; #define LL long long int main() { LL ...

  2. InputStream和OutputStream的一遍博客 分析非常到位

    http://www.cnblogs.com/springcsc/archive/2009/12/03/1616187.html

  3. oracle (DBaaS) 服务介绍

    转 https://oracle-base.com/articles/vm/oracle-cloud-database-as-a-service-dbaas-create-service?utm_so ...

  4. 关于C# DropDownList 动态加载数据笔记

    今天在处理一个导游注册的页面,其中需要填写地址以及该地址下所有旅行社,地址区级以上都是用下拉列表实现,具体地址街道等手动填写.在填写区县之后,该区县下的所有旅行社也需要动态加载. 后台代码 DataT ...

  5. 45 个非常有用的 Oracle 日期查询语句

    日期/时间 相关查询 获取当前月份的第一天 运行这个命令能快速返回当前月份的第一天.你可以用任何的日期值替换 “SYSDATE”来指定查询的日期. SELECT TRUNC (SYSDATE, 'MO ...

  6. AJPFX:关于面向对象的封装

    1.回顾        面向对象 -- 注重的是结果,强调的是具备功能的对象.        面向过程 -- 强调的是函数,注重的实现的过程.        函数:对功能的封装.            ...

  7. VUE 全选

    <div id="vue_det"> <p>全选:</p> <input type="checkbox" id=&qu ...

  8. ReactJS-0-React介绍

    React介绍: React是一个库而不是一个MVC框架,因为React只负责解决MVC框架中V(View)层面的问题,React致力于创建可重用的UI组件.(React is a library f ...

  9. Asp.Net 设计模式 之 单例模式

    一.设计目的:让项目中只显示一个实例对象 二.设计步骤: 创建一个类: 构建类类型静态变量: 定义返回值类为单例类型的静态方法: 判断静态变量instance是否为空:如果为空,就创建实例,然后给单例 ...

  10. glm 矩阵乘法得反过来写