oracle与mysql的区别

1、列类型区别

  oracle:可变长度varchar2、浮点型number,小数浮点型number(m,n),可变二进制数据raw,大对象类型(存储无结构数据,最大4G)lob

  mysql:可变长度varchar、浮点型float、double、小数decimal(m,n),可变二进制数据blob

2、约束(NOT NULL 非空约束、UNIQUE 唯一约束、PRIMARY KEY 主键约束 ,FOREIGN KEY 外键约束,CHECK 检查约束)

  oracle:多了CHECK(检查约束),eg:constraint gen_ch check(gender in ('male','female'))

3、序列(mysql没有,因为mysql有自增AUTO_INCREMENT,而oracle需要新增序列seq然后再用seq.nextval来记录id)

4、同义词(别名)

  oracle:create synonym t for a.table;

  mysql:select * from table as t;

5、查询表(当select 1;时没表时,oracle需加上from dual)

  oracle:select 1 from dual;

6、列别名(oracle暂无)

  mysql:select column as c from table;

7、分页

  oracle:虚拟列(rownum)

  mysql:select * from table limit 2,1;

8、全外连接(mysql没有)

  oracle:full outer join

9、索引

  oracle:创建基本一样,但是查询索引不一样,eg:select * from user_ind_columns;

  mysql:show create table t;

9、事务(oracle不允许不用事务。相同点隐式提交遇到DDL或DCL语句,或退出系统会隐式提交)

  oracle:可以设置保存点,及部分回滚,eg:savepoint s1;rollback to s1;

  mysql:需要start transaction;

10、pl/sql

11、储存过程、函数(oracle多了关键词is)

12、游标

  oracle:c%isopen 判断是否打开游标,c%rowcount 当前fetch得到的行,c%found 上次fetch得到的数据 c%notfound 与found相反

13、触发器

  mysql:新数据表示(new)

  oracle:新数据表示(:new)

14、php连接数据库

  mysql:mysqli扩展

  oracle:oci8扩展

 

posted @ 2019-03-18 17:40  zhang-san  阅读(2341)  评论(0编辑  收藏  举报