目录

宏观上

微观上

事务隔离级别

逻辑备份

sql语句

oracle 插入多条

主键

查询

oracle 分组排序函数详解 (row_number、rank、dense_rank)

总结

国产化数据库对比

DM达梦数据库

Kingbase人大金仓


宏观上

1、Oracle是大型的数据库而Mysql是中小型数据库;Mysql是开源的,Oracle是收费的,且价格昂贵。

2、Oracle支持大并发,大访问量,是OLTP((On-Line Transaction Processing联机事务处理过程)、表空间,角色管理。

3、安装占用的内存也是有差别,Mysql安装完成之后占用的内存远远小于Oracle所占用的内存,并且Oracle越用所占内存也会变多。

微观上

事务隔离级别

MySQL是repeatable read的隔离级别,而Oracle是read commited的隔离级别,同时二者都支持serializable串行化事务隔离级别,可以实现最高级别的。

逻辑备份

Mysql逻辑备份是要锁定数据,才能保证备份的数据是一致的,影响业务正常的DML(数据操纵语言Data Manipulation Language)使用;Oracle逻辑备份时不锁定数据,且备份的数据是一致的。

sql语句

mysql limit功能(分页),insert可以一次插入多行数据

Oracle分页rownumber是通过伪列和子查询完成的,插入数据只能一行行的插入数据。

oracle 插入多条

INSERT ALL INTO 表名 VALUES('值1','值2'...) INTO 表名 VALUES('值1','值2'...) 
SELECT 1 FROM DUAL;
 需要用到Oracle9i后出的INSERT ALL INTO 还有 DUAl表~.看上面的语法

主键

 MYSQL有自动增长的数据类型

 ORACLE没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。 

Oracle 中可用with来构建一个临时表,但MySQL不支持with,对应临时表,MySQL可通过小括号的方式来处理,但构建的临时表必须设置临时表名。

-- Oracle with使用

WITH TMPTAB AS (SELECT A.DEPID FROM FW_DEPARTMENT A);
SELECT DEPID FROM TMPTAB;

-- MySQL 构建临时表使用(此处必须给括号中的临时表设置表名)

select b.depid from (select depid from fw_department) b;

查询

oracle字符串单引号包裹

mysql字符串双引号或者单引号包裹

oracle 分组排序函数详解 (row_number、rank、dense_rank)

mysql没有

1. 完整格式
   (1) row_number() over(partition by 列1 order by 列2)
   
2. 三种排序函数
   (1) row_number(): '连续' 排序,如:1 2 3 4
   (2) rank()       : '跳跃' 排序,如:1 2 2 4 
   (3) dense_rank(): '密集' 排序,如:1 2 2 3

3. 分组子句
   (1) partition by 列1 order by 列2
   (2) order by ... 不可省略(报错提醒)

总结

Oralce

Mysql

默认端口|用户

3306|root

用户下创建多个数据库,每个数据库下还有好多表,一般使用默认用户,不会创建多个用户。

1521|system

创建一个数据库,数据库下有很多用户不同用户下sys、socott等有很多表,一般情况下只能创建一个数据库

数据库

大型收费的

中小型免费的

支持大量并发,OLTP 联机事务处理过程、表空间、角色管理。

事务隔离级别

读已提交 read commited

 repeatable read

逻辑备份

不锁表数据

要锁表,才能保证备份数据一致

分页

oracle row_number 通过伪列和子查询

limit

主键

序列递增

自动增长数据类型

查询

字符串单引号包裹

字符串双引号/单引号包裹

并发数

读多少   每秒 1000-1500

写多少    500-800

服务器的最大并发连接数为16384

分组排序/高级函数

分组排序

row_number  over(partition by 列 order by 列)

row_number 连续排序1、2、3、4

Rank   跳跃排序 1、2、2、4

Dense_rank  密集排序 1、2、2、3

国产化数据库对比

DM达数据库

        设计类似Oracle,即采用了表空间形式,MySQL为 非表空间 形式。

        默认字符串比较大小写敏感,可以修改。

Kingbase人大金仓

      类似mysql

类型转换:

kingbase不支持类型的隐式转换不通类型中必须手动转换
mysql 支持类型的隐式转换

差异:  时间类型转换的某些函数差异

Orace

select sysdate from dual; 虚拟表   

mysql

select now()

DBeaver 可以连接各种数据库

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐