• Oracle和MySQL


    简介

    • Oracle 数据库是一个对象关系数据库管理系统,是重量型数据库,是一个收费的数据库。
    • MySQL 是一个开源的关系数据库管理系统,是轻量型数据库,是一个开源、免费的数据库。

    区别

    1. 自增主键

    • MySQL有自动增长的数据类型,在创建表时只要指定表的主键auto increment,插入记录时不用操作此字段,会自动增长。
    • Oracle没有自动增长的数据类型,一般建立一个序列号作为主键,插入记录时将序列号的下一个值赋给该字段即可。
    1.建普通表
      create table tb1(id number not null);
    2. 创建序列,参数比较多,自行查阅资料
      create sequence seq_tb1 increment by 1 start with 1 minvalue 1 maxvalue 999999999
    3. 插入使用
      insert into tb1 (id) values (seq_tb1.nextval)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2. 创建索引

    • mysql中想要添加索引可以在建表时操作,也可以在后期更改;
    1. 建表时指定
        create table tb1 (username varchar(50), index username (username));
    2. 后期更改
        alter table tb1 add index username (usrrname);
    
    • 1
    • 2
    • 3
    • 4
    • oracle中只能在建表完成之后操作。
    CREATE INDEX tb1_username ON tb1(username);
    
    • 1

    3. 字段表注释

    • Mysql中在建表或增加字段时直接指定;
    1. 建表时指定
        create table tb1(username varchar(50) comment '用户名标识') comment '测试建表';
    2. 修改表结构时指定
        alter table tb1 add column nickname varchar (100) '昵称';
    
    • 1
    • 2
    • 3
    • 4
    • Oracle中只能在建表之后和创建字段之后才能进行注释。
    -- 表注释
        comment on table tb1 is '测试建表';
    -- 字段注释
        comment on tb1.username is '用户名称标识';
    
    • 1
    • 2
    • 3
    • 4

    4. 单引号的处理

    • MySQL里可以用双引号或者单引号包起字符串;
    • Oracle里只可以用单引号包起字符串。

    5. 日期字段的处理

    • MySQL日期字段分DATE和DATETIME两种;
    • Oracle日期字段只有DATE,包含年月日时分秒信息,可以用函数TO_DATE()TO_CHAR() 进行日期格式的转换。

    6. 分页查询

    • MySQL可以直接在SQL语句中写"select… from …where…limit x, y",有limit就可以实现分页;
    • Oracle则是需要用到伪列ROWNUM和嵌套查询。
        select * from (select t.*,rownum num from tb1 t where rownum<=100 ) where num>50
    
    • 1

    7. 保存数据的持久性

    • MySQL在数据库更新或者重启,可能会丢失数据;
    • Oracle把提交的sql操作线写入了在线联机日志文件中,保持到了磁盘上,可以随时恢复。

    8. 事务提交

    • MySQL默认是自动提交事务;
    • Oracle默认不自动提交事务,需要用户手动提交,需要在写commit;指令或者点击commit按钮。

    9. 事务支持

    • MySQL在innodb存储引擎的行级锁的情况下才可支持事务
    • Oracle则完全支持事务

    其他区别有待总结~

  • 相关阅读:
    @Transactional 注解导致跨库查询失效的问题
    MySQL 你所不知道的 SQL 使用技巧
    css中calc不生效(不起作用)
    LAXCUS分布式操作系统6.0 RP1版本正式发布
    微前端二:qiankun
    keepalived高可用学习 keepalived+nginx高可用负载均衡配置
    十、MySql的索引(重点)
    Power BI 实现日历图,在一张图中展示天、周、月数据变化规律
    Spring 从入门到精通 (二十) 持久层框架 MyBatis
    记录一下go的包管理
  • 原文地址:https://blog.csdn.net/weixin_46439070/article/details/126875723