总结MySQL和Oracle的语法区别
文章目录
- 1、时间函数
- 2、空值返0
- 3、长度函数
- 4、条件函数
- 5、trunc()函数
- 6、字符串整型转换函数
- 7、引号
- 8、字符串连接符
- 9、空数据排序
- 10、表(左/右)关联
- 11、merge into
1、时间函数
mysql | oracle | |
---|---|---|
时间转换为字符串型时间 | date_format(NOW(),’%Y-%m-%d’) | to_char(sysdate, ‘YYYY-MM-DD’) |
字符串型时间转换为时间类型 | date_format(NOW(),’%Y-%m-%d’) | to_date(‘2020-12-01’, ‘YYYY-MM-DD’) |
2、空值返0
mysql | oracle |
---|---|
IFNULL、COALESCE | nvl、nvl2 |
说明:
- nvl:基本语法为nvl(E1,E2),意思是E1为null就返回E2,不为null就返回E1。
- nvl2:nvl2函数的是nvl函数的拓展,基本语法为nvl2(E1,E2,E3),意思是E1为null,就返回E3,不为null就返回E2。
- IFNULL:基本语法为IFNULL(E1,E2),假如E1不为NULL,则返回值为E1,否则为E2。
- COALESCE:COALESCE(value,…)是一个可变参函数,可以使用多个参数。作用:接受多个参数,返回第一个不为NULL的参数,如果所有参数都为NULL,此函数返回NULL;当它使用2个参数时,和IFNULL函数作用相同。
3、长度函数
mysql | oracle |
---|---|
char_length(str) | length(str) |
4、条件函数
mysql | oracle |
---|---|
IFNULL | nvl |
IF(expr1,expr2,expr3) | nvl2 |
IF(value=val1, val2, val3)、case when | DECODE |
说明:
- IF(expr1,expr2,expr3):如果expr1不为null,则返回expr2,否则返回expr3。
- IF(value=val1, val2, val3):如果value等于val1,则返回val2,否则返回val3。
- case when then else end:如果value等于if1,则返回val1,如果value等于if2,则返回value2…如果value等于ifn,则返回valn,否则返回val。
SELECT CASE WHEN STATUS = '1' THEN 'success' WHEN STATUS = '0' THEN 'faild'
ELSE 'error' END
FROM SYS_SCHEDULER
5、trunc()函数
MySQL | Oracle |
---|---|
truncate(123.123,2) | TRUNC(123.123,2) |
6、字符串整型转换函数
MySQL | Oracle | |
---|---|---|
整型转字符串 | CAST(123 AS CHAR(3)) | to_char(123) |
字符串转整型 | cast(‘123’ as SIGNED) | to_number(‘123’) |
7、引号
MySQL可识别双引号和单引号,Oracle只能识别单引号。
8、字符串连接符
MySQL | Oracle |
---|---|
concat(studentname, ‘=’, studentno) | studentname||’=’||studentno |
9、空数据排序
MySQL
select * from USER A order by IF(ISNULL(A.REMARK),1,0),A.REMARK desc
select * from USER A order by IF(ISNULL(A.REMARK),0,1),A.REMARK desc
Oracle
SELECT * FROM USER A ORDER BY A.REMARK DESC NULLS FIRST
SELECT * FROM USER A ORDER BY A.REMARK DESC NULLS LAST
10、表(左/右)关联
Oracle左连接、右连接可以使用(+)来实现,MySQL只能使用left join ,right join等关键字。
Oracle
select * from ta, tb where ta.id = tb.id(+); #左关联
select * from ta, tb where ta.id(+) = tb.id; #右关联
MySQL
select * from ta left join tb on ta.id=tb.id; #左关联
select * from ta right join tb on ta.id=tb.id; #右关联
11、merge into
MySQL不支持(merge into),但提供的replace into 和on duplicate key update可实现相似的功能。
insert into article(id,title,content)
select '10' id, '今日新闻' title, '北京新闻' content
from article
on duplicate key
update title = values(title),content=values(content);replace into article(id,title,content)
values('10', '今日新闻','北京新闻');
总结MySQL和Oracle的语法区别相关推荐
- mysql 、oracle存储过程语法区别
mysql .oracle存储过程语法区别 1. 条件语句:mysql使用elseif关键字,oracle是elsif关键字: oracle: if表达式 then 表达式: elsif 表达式: ...
- mysql和oracle的语法区别
最近需要迁移项目,将数据库由Oracle改为MySQL.由于两者的语法有部分不一样,所以需要把Oracle中能用但MySQL中不能用的函数/类型等改为MySQL中能用的,以下是总结出的部分语法区别: ...
- MySQL与Oracle的语法区别详细对比 (转)
Oracle和mysql的一些简单命令对比 1) SQL> select to_char(sysdate,'yyyy-mm-dd') from dual; SQL> select to_c ...
- MySQL与Oracle的应用区别
关系型数据库(Oracle与MySQL优缺点.使用区别) MySQL的特点 1.性能卓越,服务稳定,很少出现异常宕机: 2.开放源代码无版本制约,自主性及使用成本低: 3.历史悠久,社区和用户非常活跃 ...
- mysql和oracle有什么区别
转自:微点阅读 www.weidianyuedu.com 1. mysql和oracle都是关系型数据库,可以应用于各种平台.我们用的oracle的版本是oracle11g ,用的mysql的版本是m ...
- Javamysql语法转化oracle_MySQL与Oracle的语法区别详细对比
Oracle和mysql的一些简单命令对比 1) SQL> select to_char(sysdate,'yyyy-mm-dd') from dual; SQL> select to_c ...
- mysql 和 oracle 的一些区别
1.seq 在oracle中获取下一个ID可以用seq,在mysql中可以设置某列自增 但是在同时添加主从表是设置自增不好在同一个事物中处理. 结合网上提供的方法,这里写了个可以获得每个表的seq的 ...
- MySql和Oracle数据库的区别?
查询当前所有的表 SQL> select * from tab; SQL> select * from cat where table_type='TABLE';//可能会有view SQ ...
- MySQL和Oracle的一些区别
自动增长的数据类型处理 MySQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值.Oracle没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于 ...
最新文章
- SpringBoot-web开发(一): 静态资源的导入(源码分析)
- 性能测试之二——常用的性能测试策略
- 厉害!从电影花瓶到 Wi-Fi 之母,这才是乘风破浪的姐姐!
- 在EO中获取某字段基于表的列名
- Mysql日期和时间函数
- 多生产者_通知:生产者补贴!打卡时间!定了
- C语言——确定char、short、int和short变量有符号和无符号时的取值范围
- ubuntu下唤醒或休眠远程计算机
- 外星人电脑为什么那么贵_为什么百丽的鞋那么贵
- Mac电脑如何播放swf格式文件?
- 90年经典坦克大战(cocos2d-x)
- obj文件格式详解及示例
- hash表 C++的使用以及理解
- 教务系统选课(抢课)技巧
- Mac系统升级Python版本(Python2.7升级到Python3.8.2)
- Excel中如何找出两列数据中相同的数据,并且进行同行显示
- RFID建筑工地人员考勤管理解决方案——铨顺宏FUWIT
- SpringBoot JDBC Mysql 时区报错 serverTimezone解决方案分析
- 迪克体育Dick’s Sporting Goods EDI需求分析
- 流计算 Oceanus 限量1元秒杀,立省2000元