Oracle和MySQL差异总结

常用功能差异

  1. 锁差异
    • Oracle锁加在数据块上
    • InnoDB 是在索引上加锁,所以MySQL锁的粒度没有Oracle 精细。
  2. 导入导出
    • Oracle采用EXP /IMP ,EXPDP/IMPDP导入导出。
    • MySQL采用mysqldump导出,导入可以采用管道或source。
  3. commit
    • Oracle默认手动提交
    • MySQL默认自动提交
  4. SQL 缓存:MySQL只能缓存结果集,不能缓存SQL解析结果
  5. 数据库对象
    • Oracle将数据库对象编译存储,直接执行二进制码
    • MySQL只存储代码,临时解析执行,所以MySQL触发器、存储过程、函数等对象创建时仅检查语法,不检查逻辑
  6. 事务
    • MySQL不是所有引擎都支持,建议优先使用InnoDB,相比其他引擎有更好的并发性
SQL写法差异

  1. 空字符串处理
    • 而Oracle 只有NULL的概念
    • MySQL有空字符串 '' 和NULL,空串不等于NULL
  2. 结果集行数限制
    • Oracle使用rownum
    • MySQL使用limit;
  3. 执行SQL
    • Oracle需要select func() from dual;
    • MySQL可以直接select func();
  4. 修改字段类型或长度
    • Oracle:alter table tablename modify column ...;
    • MySQL:alter table tablename modify (...);
  5. 复制数据
    • Oracle的as是必选,create table table1 as select * from table2;
    • MySQL的as是可选,create table table1 select * from table2;
  6. 字符串处理
    • Oracle里用单引号包起字符串
    • MySQL用双引号包起字符串

转载于:https://www.cnblogs.com/himismad/p/8124823.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值