Sql与Oracle的差别

/*整理背景201403订单中心数据库迁移(整理Oracle与SQL的差别)
整理规则第一句为SQL Server 第二句为Oracle*/
--数据类型
int integer
varchar varchar2
double number(25,10)
datetime date
/*
--临时表
ORACLE 数据库在使用临时表时,要先将临时表建到数据库中,而后才能使用临时表。
*/html

/*
--多条语句同时放在一块儿执行时
begin
语句1;
语句2;
语句3;
。;。;。;
end;
*/
/*
很是有用的函数
floor(参数) 去除小数点后的全部小数位
coalesce(参数1,参数2,参数3,参数4) 返回第一个不为null的值,若都为null则返回null
-->ORACLE LPAD(参数,长度,填充值) 向左填充 RPAD(参数,长度,填充值) 向右填充
*/sql

--字符串拼接语法
select 'a'+'b';
select 'a'||'b' from dual;
--查询第一条数据
select top 1 from Table1;
select * from Table1 where rownum<2;
--查询一个字段若是是空则替换默认值
select ISNULL('字段1',0) from Table1;
select nvl('字段1',0) from Table1;
--截取字符串
select SUBSTRING('字段1','开始位置','截取长度') from Table1;
select SUBSTR('字段1','开始位置','截取长度') from Table1;
--去字段值的长度
select len('字段1') from Table1;
select length('字段1') from Table1;
--数据类型转换
select CONVERT('字段1',datatype) from Table1;select CAST('字段1' as dataType) from Table1;
select CAST('字段1' as dataTye) from Table1;
--注:在数据类型转换过程当中cast语法select cast(1.2 as int) select cast(1.6 as int)这两个结果在sql server中
--为1 oracle中结果为1,2使用过程当中必定要注意
--左右截取
select left('123',2)-->12
select right('123',2)-->23
--ORACLE中没有左右截取,实现一样的效果用SUBSTR。数据库

--Update语句的区别(多表联合更新)
--注:单张表更新SQL与ORACLE同样
update Table1 set 字段1='value1',字段2='value2'
from Table2,Table1
where Table2.字段1=Table1.字段1 and Table2.字段2=Table1.字段2oracle

MERGE INTO Table1
USING Tabel2
ON(Table2.字段1=Table1.字段1 and Table2.字段2=Table1.字段2)
WHEN MATCHED THEN UPDATE SET
字段1='value1',字段2='value2'函数

UPDATE Table1 set 字段1='value1' where exists
(select 1 from Table2 
where Table1.字段2=Table2.字段2 
and Table1.字段2='字段2')
--Delete语句
--注:单张表的删除语句SQL与ORACLE同样
Delete from Table1,Table2 where 
Table2.字段1=Table1.字段1 and Table2.字段2=Table1.字段2server

Delete from Table1 where exists
(select 1 from Table2 
where Table2.字段1=Table1.字段1 
and Table2.字段2=Table1.字段2)htm

 

转载自:https://www.cnblogs.com/cwgyn/p/3619868.htmlblog

相关文章
相关标签/搜索