SQLServer Oracle MySQL的区别

简介
SqlServser:Microsoft产品,通过良好的ODBC接口可以将Access、FoxPro、Excel转换为SQLServer数据库。
Oracle:运行于所有主流平台,完全支持所有的工业标准(ODBC、JDBC、OCI),采用完全开放策略。Oracle并行服务器通过使一组结点共享同一簇中的工作扩展Windows NT的能力,提高可利用性和高伸缩性的簇的解决方案。支持大并发,大访问量。价格昂贵。
MySql:不支持事务处理,没有视图,没有存储过程和触发器,没有数据库端的用户自定义的函数,不能完全适用标准的SQL语法。目前可能已经支持。

 

语法区别
区别类型 SQLServer Oracle MySQL
[字符串拼接] + || concat()
[控制处理数] isnull()

|-NVL NVL(expr1,expr2) 如果第一个参数为空,那么先显示第二个参数,如果第一个参数不为空,则显示第一个参数

|-NVL2 NVL2(expr1,expr2,expr3)如果第一个参数为空则显示第二个参数,不为空则显示是第三个参数

|-NULLIF(expr1,expr2)expr1和expr2相等则返回NULL,否则返回第一个值

|-ifnull(expr1,expr2) 如果第一个参数为空,那么先显示第二个参数,如果第一个参数不为空,则显示第一个参数

|-isnull(expr) 表示判断参数是否为null,为null则1,否则为0

|-NULLIF(expr1,expr2)expr1和expr2相等则返回NULL,否则返回第一个值

[获取系统时间]  getdate()  sysdate  now()
[日期格式化]  convert(varchar(8),getdate(),112)  to_char(sysdate,'yyyyMMdd')  data_format(xcs_received_date,'%Ym%d')
[检查是否有表再删除]  IF OBJECT_ID('xxx') IS NOT NULL  需要用到系统表(dbo.sysobjects)  select count(1) from user_tables where tablename ='xxx'  drop table if exists tablename

 

函数区别
区别类型 功能 语法 参数 返回值 SQLServer Oracle MySQL
SQL中SUBSTRING函数的用法 返回字符、二进制、文本或图像表达式的一部分 SUBSTRING ( expression, start, length ) SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分。

expression 字符串、二进制字符串、文本、图像、列或包含列的表达式。请勿使用包含聚合函数的表达式。

start 整数或可以隐式转换为 int 的表达式,指定子字符串的开始位置。

length 整数或可以隐式转换为 int 的表达式,指定子字符串的长度。

如果 expression 是一种支持的字符数据类型,则返回字符数据。如果 expression 是一种支持的二进制数据类型,则返回二进制数据。如果 start = 1,则子字符串从表达式的第一个字符开始。

返回字符串的类型与给定表达式的类型相同(下表所示内容除外)。

SUBSTRING() SUBSTR() SUBSTR(), SUBSTRING()

 

简介SQL Server与Oracle的一些差异

1、Oracle字段不能直接使用Uid,使用“UID”,并且没有自增长

2、参数的前缀不一样,SQL Server的@,Oracle的是 :

3、SQL Server关键字使用[],Oracle使用""

4、Oracle数据不支持Bool,建议是用Number(1),False是0,True是1

5、Oracle表名不能使用AS关键字,可以直接 空格

6、SQL Server中nvarchar(1000)以上在Oracle中是Clob类型,查询需要特殊函数,例如:substr("字符串",4000)

7、Oracle存储过程参数不带":",而且参数名大写

8、Oracle中null与""认为是一样的

posted on 2019-06-25 20:27  坚果笔迹  阅读(1084)  评论(0编辑  收藏  举报