前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle 与 MySQL 的差异分析(4):SQL写法

Oracle 与 MySQL 的差异分析(4):SQL写法

作者头像
一头小山猪
发布2020-04-10 16:19:04
1K0
发布2020-04-10 16:19:04
举报
文章被收录于专栏:微光点亮星辰微光点亮星辰

Oracle 与 MySQL 的差异分析(4):SQL写法

1 常量查询

1.1 Oracle

select 7*8from dual;

1.2 MySQL

MySQL 中没有DUAL表,查询一个常量时可以不用from一个表。

2 TOP N和分页查询

2.1 Oracle

select *from table where rownum <= 100;

2.2 MySQL

select *from table limit 0,100;

MySQL 中没有rownum和rowid这两个伪列。

3 引号

MySQL 中字符串既可以用单引号也可以用双引号,而 Oracle 中只能用单引号。

insert intot_test1(abc) values(“2015”);

4 NULL和空字符串

4.1 Oracle

对于字符类型字段,null 和“空字符串”是等价的,都要用is null 或 is not null 来判断。

4.2 MySQL

null 和“空字符串”是不等价的,null 表示什么都没有,而“空字符串”则表示值是存在的,只不过是个空值。判断 null 和 Oracle 一样,用 is null 或 is not null,而对空字符串的判断却可以用“=”判断。

5 外连接

5.1 Oracle

这两种写法都是可以的:

select *from t_test2 a left outer join t_test3 b on a.name=b.name;

select *from t_test2 a, t_test3 b where a.name=b.name(+);

5.2 MySQL

不支持这种写法:

select *from t_test2 a, t_test3 b where a.name=b.name(+);

6 insert多条数据

6.1 Oracle

不支持。

6.2 MySQL

可以这样 insert 多条数据:

insert intot_test4 values(“11”),(“12”),(“13”);

7 组函数

MySQL 中组函数在 select 语句中可以随意使用,但在 Oracle 中如果查询语句中有组函数,那其他列名必须是组函数处理过的,或者是group by子句中的列,否则报错。如:

selectname, count(money) from user;

这个放在 MySQL 中没有问题,而在 Oracle 中就有问题了。

8 添加表字段时指定位置

8.1 Oracle

不支持,新增列都在最后。

8.2 MySQL

可以指定新增列在某个列后面:

alter tablet_test5 add ddd int after abc;

9 关联更新

A 和B 表连接,对于关联的数据,用A 的某个列的值更新 B 的某个列。

9.1 Oracle

不支持 update 多个表,update 语句也不支持连接。

9.2 MySQL

MySQL 支持这种写法,可以 update 多个表并直接连接。

updatet_test6 a, t_test7 b set b.name = a.name where b.id = a.id

10 select 嵌套查询必须有别名

10.1 Oracle

内部查询可以没有别名:

select *from (select * from t_test8);

10.2 MySQL

内部查询必须有别名,否则会报错:

select *from (select * from t_test8) a;

11 全外连接

11.1 Oracle

支持:

select *from t_userinfo a full outer joint_userserviceinfo b on a.phonenumber = b.phonenumber;

11.2 MySQL

不支持。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微光点亮星辰 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档