Access、SQLServer、Oracle常见SQL语句应用区别

关劲松 PMP

如果要兼容Access、SQL Server、Oracle三个数据库版本;我们在编写SQL语句的过程中,尽量使用一些通用的语句,但还是有些方面有些区别避免不了,现简单总结一下。

以下A代表Access,S代表SQL Server,O代表Oracle

1、取当前系统时间

A:Select Now()

S:Select Getdate()

O:Select Sysdate From Dual

  
2、连接字符串

A:&

S:+

O:||

  
3、字符串函数(截取字符串、大写、小写、查找字符串位置)

A:Mid、UCase、LCase、InStr

S:SubString、Upper、Lower、CharIndex

O:SubStr、Upper、Lower、InStr

4、判断取值语句

A:IIF

S:Case When Then

O:Decode

  
5、时间字段

A:要用#号分隔,或者转换为日期

  SELECT * FROM Books WHERE RegDate = #2007-5-1# 或

  SELECT * FROM Books WHERE RegDate = CDate(’2007-5-1′)

S:可以直接用''

  SELECT * FROM Books WHERE RegDate = ‘2007-5-1′

O:To_Date

  SELECT * FROM Books WHERE RegDate=To_Date('2007-05-01','yyyy-mm-dd')

6、数据类型转换

A:CStr,CInt,CDate

S:Convert,CAST

O:To_Char,To_Number,To_Date

  
7、Inser Into …..Select …From 语句

  Insert Into a(ii,jj,kk) (Select ii,jj,kk From b)

  这样的语句,在SQL Server以及Oracle中都不会有错,但在Access中会报:INSERT INTO 语句的语法错误。Access应该把后面Select语句的括号去掉,如下:

  Insert Into a(ii,jj,kk) Select ii,jj,kk From b

  同时这样写在SQL Server和Oracle中都不会有错

  
8、关键字

  有些字母在Access,SQL Server中是关键字,需要用[ ]界定可解决问题,例如:at,name

  
9、别名

  SQL Server和Oracle中字段起别名时as可以省略,Access不能

  
10、表名前缀

  Select *,1 From A

  这样的语句在Access,SQL Server中不会有错,但在Oracle中是不行的,必须要写成这样:

  Select A.*,1 From A

  
11、如果语句中有:(冒号),例如有时间字段的查询:CalcDate=#2008-05-01 11:00:00#,在Access中一般会出现如下错误:不正常地定义参数对象。提供了不一致或不完整的信息。将相应

Query的ParamCheck 设为False即可。

  
12、Access中的逻辑值在库中为-1和0,而SQL Server中为1和0,所以写BoolField = 1这样的语句有兼容性问题,应该改为BoolField <> 0

  
13、Access的varchar(文本)型最大只有255,所以如果一个文本型字段大于255时,最好定义成备注型(Access中)或text型(SQL Server中)。

Access、SQLServer、Oracle常见SQL语句应用区别的更多相关文章

  1. sqlServer存储过程与sql语句的区别

    sqlServer   存储过程与sql语句的区别 sql存储过程与sql语句的区别: 从以下几个方面考虑: 1.编写: 存储过程:编写比较难: sql语句:相对简单: 2.性能: 存储过程:高,可移 ...

  2. Oracle常见SQL语句

    --创建表空间--create tablespace ts_namedatafile 'd:\test\ts_name.dbf' size 100mautoextend on --调整表空间大小--a ...

  3. oracle常见sql语句优化

    1.* 号引起的运行效率 尽量降低使用select * 来进行查询,当你查询使用*, 数据库会进行解析并将*转换为所有列. select count(si.student_id)  from Stud ...

  4. oracle 中SQL 语句开发语法 SELECT INTO含义

    oracle 中SQL 语句开发语法 SELECT INTO含义 在ORACLE中SELECT INTO是如何使用的,什么意思?和SQL SERVER的不一样?   和sqlserver的不一样sql ...

  5. oracle常用SQL语句(汇总版)

    Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, ...

  6. oracle 常用sql语句

    oracle 常用sql语句 1.查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_sizefrom d ...

  7. Oracle和SQL语句的优化策略(基础篇)

    转载自: http://blog.csdn.net/houpengfei111/article/details/9245337 http://blog.csdn.net/uniqed/article/ ...

  8. oracle的sql语句大小写

    我相信大家都知道,oracle数据库是区分大小写的,而且oracle的默认为大写的,也就是说你在sql脚本上面写的sql语句,oracle运行的时候,它会自动转化为大写的.注意一下,我这里举例子的计算 ...

  9. Oracle常用SQL语句大全

    常用Oracle数据库SQL语句汇总. 1.常用操作 --清空回收站purge recyclebin;--查询回收站select * from recyclebin--查询Oracle版本信息sele ...

随机推荐

  1. MongoDB高可用集群搭建(主从、分片、路由、安全验证)

    目录 一.环境准备 1.部署图 2.模块介绍 3.服务器准备 二.环境变量 1.准备三台集群 2.安装解压 3.配置环境变量 三.集群搭建 1.新建配置目录 2.修改配置文件 3.分发其他节点 4.批 ...

  2. MySQL Session--批量KILL会话

    使用SELECT INTO OUTFILE+SOURCE批量KILL ## 查看kill_id文件是否存在 SYSTEM cat /tmp/kill_id.sql ## 如果文件存在,则先删除 sys ...

  3. python基础教程_学习笔记9:抽象

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/signjing/article/details/30745465 抽象 懒惰即美德. 抽象和结构 抽 ...

  4. JSON字符串转C#实体Class类

    在项目开发过程中,经常需要和不同部门或者不同的组员一起协同工作,但对方写的json返回的结果集,我们需要用,那么如何来生成对应的类代码和实体对象呢?于是参考了网上的做法,做一个简单的字符串转实体类的功 ...

  5. 推荐一个 基于 WebSocket 和 Redis 的 即时通信 开源项目

    项目地址 : https://github.com/2881099/im 大家可以和 SignalR 比较看看 ,  如何  ?        ^^  ^^  ^^ 这是一个 网友 写的 , 他还写了 ...

  6. 路由器外接硬盘做nas可行吗?

    话说把家里的newifi mini升级到最新版后,又外接了个移动硬盘做nas,第一部就打算吧手机的视频移过去.一试才发现这速度慢的不行.只有几百kb 所以说,用是能用,单着速度也太慢了 再就是貌似硬盘 ...

  7. enum和数据库entity互转

    注意,code和desc都是string的,数据库的entity是integer,dto的是enum,所以需要一个转换 entity转dto EnumGender.getEnum(String.val ...

  8. EXT4 超级块介绍(转)

    https://blog.csdn.net/sunlei0625/article/details/79011946 The superblock records various information ...

  9. Spring 4 中重定向RedirectAttributes的使用

    RedirectAttributes 的使用 @RequestMapping(value = "/redirecttest", produces = "applicati ...

  10. 在Python中调用Java扩展包HanLP测试记录

    最近在研究中文分词及自然语言相关的内容,关注到JAVA环境下的HanLP,HanLP是一个致力于向生产环境普及NLP技术的开源Java工具包,支持中文分词(N-最短路分词.CRF分词.索引分词.用户自 ...