SQL Server和Oracle的差异
所有关系型数据库都采用标准SQL语法,在使用上非常相似。但是它们毕竟是由不同的公司开发,存在一些差异也是必然的。本文,我将举例说明SQL Server数据库和Oracle数据库之间的差异。
1、前N行
SQL Server使用top关键字查询,如下
select top 5 * from emp;
Oracle使用rownum进行查询,如下
select * from emp where rownum <6;
2、字符串拼接
SQL Server使用操作符“+”完成字符串拼接,如下
select ename + ’A’ + job from emp;
Oracle使用操作符“||”完成字符串拼接,如下
select ename || ’A’ || job from emp;
3、获取系统时间
SQL Server使用函数getdate()获取系统时间,如下
select getdate()
Oracle使用函数sysdate获取系统时间,如下
select sysdate from dual;
4、空字符串
SQL Server数据库中‘’和null表示两种不同的结果,而Oracle数据库中‘’等价于null。
5、表别名
SQL Server数据库中表、列的别名可以直接空格然后命名,或者使用as关键字命名;而Oracle数据库中别名不能使用as,直接空格后命名。
6、null值排序
SQL Server数据库认为null无穷小,Oracle数据库认为null无穷大。所有SQL Server数据库中升序排序,null值的记录在最前面,而Oracle的null值记录在最后面;另Oracle数据库中提供了nulls first 和nulls last 来调整null值的排序,而SQL Server数据库中没有提供相关关键字。
7、update引起select阻塞
SQL Server数据库和Oracle数据库中默认隔离级别都是read committed。对同一条记录进行update操作,SQL Server数据库中会引起select的阻塞,而Oracle数据库不会。
8、SQL、T-SQL和PL/SQL
SQL是国际公认的关系型数据库的标准语言,几乎所有关系型数据库都采用SQL语言。
T-SQL即Transact-SQL,是SQL在SQL Server上的扩展。T-SQL提供了标准SQL的DDL和DML功能,加上延申的函数、系统预存储过程以及程序设计结构,让程序设计更由弹性。
PL/SQL(Procedural Language/SQL)是一种过程化语言,它是Oracle对SQL的扩展。PL/SQL的基本单位叫做一个区段,由3个部分组成:一个声明部分,一个可运行部分和一个异常处理部分。
9、视图定义中出现排序
Oracle数据库中允许在创建视图时按照某列进行排序,而SQL Server数据库中是不允许的,除非配合top一起使用。SQL Server数据库不支持的原因是,视图本身是虚表,排序没有任何意义,要排序也是查询时排序。但是视图查询时的排序是由局限性的,排序字段必须是视图中包含的字段。
另说明一点,如Oracle中视图里面由排序,而查询的时候又加上排序,那会不会排序两次呢?答案是不会。当视图查询中没有指定排序字段时,查询结构按照视图中定义的排序字段进行排序,而当视图查询中指定了排序字段,查询结构按照视图查询定义的排序字段查询,因此不会出现两场排序。
10、对视图非键值保存表的更新
对多表关联的视图进行update操作,Oracle数据库比较严格,只能更新键值保存表的列,而SQL Server比较宽松,可以更新非键值保存表对应的列。
11、内联视图
有时候,我们需要将一个查询结果作为一个整体供再次查询使用,这种情况下第一次查询结果非常类似要给视图,我们称为内联视图。Oracle数据库中可以直接放到from后进行查询操作,如下
select * from (select * from emp)
而SQL Server数据库中不允许这样,但是可以通过别名处理,如下
select * from (select * from emp) as a
12、关联表删除
SQL Server数据库中可以通过关联查询,删除其中一张表中的记录,即多表from删除。如下
delete from emp_bak from emp_bak,emp where emp_bak.empno = emp.empno
而Oracle数据库中是不允许,但是可以exists关键字实现,如下
delete from emp_bak where exists(select * from emp where emp_bak.empno = emp.empno)
关联表更新也是类似的操作。
SQL Server和Oracle的差异相关推荐
- 工具:SQL Server和Oracle数据类型比对
今天在用Kettle做数据迁移的时候遇到一个问题,通过Kettle把从SQL Server的源数据导入到Oracle数据库中出现很多问题,也就是因为表信息不一致造成数据无法导入.源数据库SQL Ser ...
- SQL Server 与 ORACLE 的区别
sql server 与 oracle的区别: DBMS 数据库管理系统 1.数据类型不同. sql server 的数据类型:int ,smallint ,char,varchar,nc ...
- sql server转oracle需要注意的几点
sql server转oracle需要注意的几点 1. 字符型的字段相加需要用"||",如果用"+"的话,会报"无效的数字"的错误. 2. ...
- C#连接4种类型数据库(Access、SQL Server、Oracle、MySQL)
C#连接4种类型数据库(Access.SQL Server.Oracle.MySQL) 1.C#连接连接Access using System.Data; using System.Data.OleD ...
- sql server配置连接oracle数据库,MS SQL Server连接Oracle
MS SQL Server连接Oracle 1. 安装oracle 10G客户端 要访问oracle数据库必须安装oracle客户端.安装oracle客户端有两种方式,即完整安装和立即安装,这两种方 ...
- SQL Server与Oracle、DB2三种数据库比较
开发数据库应用,选择一个好的数据库是非常重要的.本文从一些方面比较了SQL Server与Oracle.DB2三种数据库,为你选择数据库提供一些参考. 开放性 SQL Server 只能在Window ...
- sql查询oracle数据,sql-server – 从SQL Server查询Oracle数据库
我有一个Oracle 11g XE数据库,我想将其转移到SQL Server Express 2005中. 起初我以为我只是在Oracle中生成表作为SQL,操纵数据格式,并在SQL Server中运 ...
- oracle+循环插入sql,SQL server,Oracle循环插入百万数据
SQL server,Oracle循环插入百万数据 SQL server,Oracle循环插入百万数据 压测时常需要往数据库插入大量数据,下面是我往两个数据库插入数据时用的脚本 declare @ma ...
- Sql Server和oracle的函数区别总结
最近要对之前的项目从Sql Server数据库转化为Oracle数据库,期间遇到的一些问题总结一下: S代表SQL Server,O代表Oracle 1.取当前系统时间 S:Select Getdat ...
最新文章
- 阿里云linux CentOS6.5(nginx+PHP-fpm)及RDS初级使用指南和简单安全设置
- html5 游戏前景怎么样,独家 HTML5游戏目前究竟怎么样?看完这篇文章,你或许会清晰很多...
- HDU 4502 吉哥系列故事——临时工计划(动态规划)
- 软件测试技术qtp,51Testing独家连载:(四十一)精通QTP——自动化测试技术领航
- 机器人 瓷砖墙面清洗_墙壁清洁机器人解析
- linux: chmod,chown命令详解
- 95-290-055-源码-内存管理-HybridMemorySegment
- LeetCode(595)——大的国家(MySQL)
- Element UI 官网以及其他技术文档
- matlab simulink 汽车制动纵向动力学建模
- PS去除图片和PDF中的水印
- 工业软件研究框架_【软件开发】工业软件相关学习信息
- Cisco 防火墙 SSH配置
- 完整的连接器设计手册_工业连接器如何选型
- opencv鱼眼相机模型详解
- 路由器和计算机的功能有何不同,网关和路由器的区别是什么 两者又有什么不同...
- C语言使用openssl库解析TLS报文(SNI和证书)
- 【转】江枫:在ubuntu10.04上安装oracle 10g(学习一下)
- Fabric.js 上划线、中划线(删除线)、下划线
- 电信、网通、铁通各地DNS
热门文章
- Java界面排号系统_【前端系统】javaweb技术的医院门诊在线预约及排号管理系统的实现...
- html与js二级菜单横排,JavaScript实现横向滑出的多级菜单效果
- asp.net怎么实现按条件查询_Display Posts : 按条件显示WordPress文章的最强插件
- android os跑电量咋关,android 优化耗电量
- 新春牛年迎春PSD分层模板!最全设计素材都在这了
- 在集设把优秀的设计合集,轻松追寻设计灵感
- C4D电商促销活动背景素材|设计提升,只差一个背景
- 最佳展示场景kit:顶部视角的展示场景(Mockups)
- ddx_check绑定注意事项
- 2048小游戏设计思路