• Oracle 与 MySQL 的区别总结


    Oracle 与 MySQL 的区别总结


    博主在大学期间一直使用的是MySQL数据库,在来到公司后,公司使用的数据库都是Oracle,在经过了两周的学习后,总结出了两个数据库的一些区别。

    • Oracle的数据类型相比mysql有所区别,Oracle没有基本数据类型,而是用number代替Mysql里面的int double等,字符串类型既有mysql的varchar类型,也有其独占的varchar2类型。(varchar是varchar2同义词 这两个是一样的,oracle使用的是varchar2 ,使用varchar是为了兼容其他数据库)

    • Oracle 实现主键自增不能像Mysql一样在创建字段的时候直接使用auto_increasement,Oracle实现主键自增可以使用sequence加trigger。具体实现可以参考如下代码。

      # 创建 scott 中的序列 ODS_SEQ
      create sequence SCOTT.ODS_SEQ
      INCREMENT BY 1
      MINVALUE 1
      MAXVALUE 999999999999
      START WITH 1
      NOCACHE
      ORDER;
      
      # 创建scott 中的触发器 ODS_TR,在插入新数据的时候调用 ODS_SEQ,实现自增
      CREATE OR REPLACE TRIGGER SCOTT.ODS_TR 
      BEFORE INSERT ON SCOTT.FR_IT_RM_ODS_TABLE_FI FOR EACH ROW 
      BEGIN 
      	SELECT ods_sequence.nextval INTO :new.id FROM DUAL;
      END;
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
    • Oracle 相比 MySQL 可以使用 order by null first 或者 null last 来使 null字段向前或者向后排序,MySQL则没有这个功能。

    • Oracle 表有两个伪列 rowidrownum,序列有两个伪列 nextvalcurrval,但没有类似MySQL一样的limit函数,所以实现分页的时候一般通过 rowid 和 rownum 结合来使用。

      --  查询前10行记录
      SELECT ROWNUM, t1.* FROM XXX t1 WHERE ROWNUM <= 10;
      
      --  查询从11行到20行的记录
      SELECT * FROM XXX WHERE ROWNUM < 21 MINUS SELECT * FROM XXX WHERE ROWNUM < 11;
      -- or
      SELECT * FROM (SELECT ROWNUM NO, t1.* FROM XXX t1) t2 WHERE t2.NO > 10 AND t2.NO < 21;
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
    • Oracle 具有函数 start with ... connect by 可以使用这个函数实现递归。

    • Oracle 的相比MySQL的视图,多了一个物化视图。

    • 有一些特性是之前MySQL里面没有的,但Oracle有,在MySQL更换innodb引擎或者版本更新后添加进去的。如窗口函数(MySQL8.0),数据库缓存池(innodb引擎引入)。

  • 相关阅读:
    MySQL:数据类型和运算符
    服务器应用程序不可用的原因是什么引起的
    适用于多种场景功能强大的在线海报图片素材设计器源码
    JavaSE——选择排序算法、冒泡排序法、二分查找法
    我有点想用JDK17了
    LeetCode84:柱形图中最大的矩形
    基于 jasypt 实现spring boot 配置文件脱敏
    根据肠道微生物组重新思考健康饮食
    Altera&Xilinx公司FPGA简介
    谷粒商城 (十七) --------- 商品服务 API 品牌管理 ③ OSS 前后端联调
  • 原文地址:https://blog.csdn.net/qq_47200222/article/details/126501308