持续更新MySQL和ORACLE实操区别

最近由于项目需要用上了oracle,几天感受下来感觉区别还是挺多的,方方面面,所以打算开一篇博,不详述,简单地持续更新。由于对Oracle不是很熟悉,如有错误谢谢指正:

1.MySQL是可以设置主键自增的,但在Oracle里想让主键自增要先选一个number类型字段作为主键,然后自己写序列和触发器,总之要自己动手。

2.两种数据库的索引类型都可选很多种,MySQL的默认引擎innoDB是可以选B+树作为索引数据结构的,在Oracle里好像没有引擎的概念,而且索引数据结构没有B+树,但是B-Tree还是有的。

3.虽然不建议在sql里用函数,但是两种数据库的sql函数使用好像也有区别,比如concat()拼接字符串函数,MySQL里是不限制拼接参数个数的,但是在Oracle里只能拼接两个,多了会报错。

4.Oracle字段类型没有boolean,一般用0和1区分。MySQL里看着好像是可以用bool和boolean表示布尔型字段,其实MySQL会自动转换成tinyint(1)的数据类型,默认值也就是1,0两种,分别对应了布尔类型的true和false,本质上和Oracle没什么区别。之前也用过PLSQL,这里面是实实在在地支持布尔型boolean的。

5.批量insert也有区别。

Oracle中的写法是:

INSERT ALL 
INTO table_A(field_1,field_2) VALUES (value_1,value_2) 
INTO table_A(field_1,field_2) VALUES (value_3,value_4) 
INTO table_A(field_1,field_2) VALUES (value_5,value_6)
SELECT 1 FROM DUAL;

截个实例图,参数List元素类型为业务对象:


MySQL中的写法是:

INSERT INTO  table_A(field_1,field_2)  VALUES
(value_1,value_2),(value_3,value_4),(value_5,value_6)

6.关于数据库事务隔离级别,Mysql 默认采用的 REPEATABLE_READ(可重复读)隔离级别,Oracle 默认采用的 READ_COMMITTED(读已提交)隔离级别

7.关于where后条件执行顺序,MySql是从左往右,而Oracle是从右往左,也就意味着能筛选掉大部分数据的条件,在MySql中要写在最左边,而在Oracle中要写在最右边

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值