简介
- 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)
2. 创建索引
- mysql中想要添加索引可以在建表时操作,也可以在后期更改;
1. 建表时指定
create table tb1 (username varchar(50), index username (username));
2. 后期更改
alter table tb1 add index username (usrrname);
CREATE INDEX tb1_username ON tb1(username);
3. 字段表注释
1. 建表时指定
create table tb1(username varchar(50) comment '用户名标识') comment '测试建表';
2. 修改表结构时指定
alter table tb1 add column nickname varchar (100) '昵称';
- Oracle中只能在建表之后和创建字段之后才能进行注释。
-- 表注释
comment on table tb1 is '测试建表';
-- 字段注释
comment on tb1.username is '用户名称标识';
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
7. 保存数据的持久性
- MySQL在数据库更新或者重启,可能会丢失数据;
- Oracle把提交的sql操作线写入了在线联机日志文件中,保持到了磁盘上,可以随时恢复。
8. 事务提交
- MySQL默认是自动提交事务;
- Oracle默认不自动提交事务,需要用户手动提交,需要在写commit;指令或者点击commit按钮。
9. 事务支持
- MySQL在innodb存储引擎的行级锁的情况下才可支持事务
- Oracle则完全支持事务
其他区别有待总结~
|