Oralce和Mysql的3个区别

387 阅读1分钟

注意事项

  1. 基于Oracle 10G(03年发布版本)、Mysql 5.5.32(10年以后发布)
  2. 仅涉及部分SQL
  3. 此处以oracle的emp表为例 表结构如下
    image.png

数据如下

image.png

#1. 引号的区别

oracle的引号

1.1 列别名存在空格或其他特殊字符,用单引号报错,需要用双引号

image.png

image.png

1.2 列值的筛选,用双引号报错,需要用单引号

image.png

image.png

mysql的引号 ###1.3 列别名,单引号和双引号都可以

image.png

image.png

1.4 列值的筛选,用双引号、单引号都可以

image.png

image.png

#2. 时间字段的区别

oracle中to_date ###2.1

mysql中的时间字段 ###2.2 mysql对时间字段直接比较,不需要函数

image.png

#3. 数据限定

oracle中的rownum

3.1 取薪资最大的5个人

select * from
(select rownum rn,ename,sal,job
from emp
order by sal desc) where rownum<=5

image.png

3.2 取薪资最大的第5-10名

select * from (select rownum rn1,ename,sal,job,mgr,comm from (select * from emp order by sal desc) )where rn1 between 5 and 10

image.png

mysql中的limit

3.3 取薪资最大的5个人

limit 5

image.png

3.4 取薪资最大的第5-10名

SELECT *
FROM emp
ORDER BY sal DESC LIMIT 4,6
 #4数据行的下标,而6是偏移量
 #数据库的第一行是0,第二行是1,类似于数组的第一个数据
 #所以4,6表示的第五行,6表示一共6行数据。

image.png

写在最后的话

还有很多区别,比如空值处理,dual表等等,特别是应用层面,太多不一样了。此处仅说明三点比较明显的,有空再说别的。