20201203 王维

学习总结

Oracle与mysql的区别

1. 组织结构
MySQL:用户-库-表
Oracle:库-实例-表空间-用户-表

2. 用户授权管理

Oracle用户对数据库管理或对象操作的权利增加了一个新的概念就是数据库角色数据库角色就是若干个系统权限的集合。

3. 字符数据类型

varchar2是oracle提供的独特的数据类型。oracle保证在任何版本中该数据类型向上和向下兼容,但不保证varchar,这是因为varchar是标准sql提供的数据类型,有可能随着sql标准的变化而改变。varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节; VARCHAR2把空串等同于null处理,而varchar仍按照空串处理; VARCHAR2字符要用几个字节存储,要看数据库使用的字符集。

4. 字段的约束条件

mysql不存在检查约束,Oracle存在健在约束,用于强制行数据必须瞒住的条件。

外键的级联,Oracle不存在on update cascade级联更新。

5. 新增数据

Oracle新增数据使用的是values,不能使用value,且不能一次添加多条数据。

6. 自增长

Oracle不存在主键自增长,但是存在序列,通过序列可以实现自增长的列。在实际项目中每一张表会配一个序列,但是表和序列是没有必然的联系的,一个序列被哪一张表使用都 可以,但是我们一般都是一张表用一个序列。

7. 函数

在函数方面mysql和Oracle有很多相同的函数,但是也存在很多不同的函数。

8. 外连接

Oracle在外连接是where子句中使用(+)表示左连接或者右连接, 这个+号可以这样来理解: + 表示补充,即哪个表有加号,这个表就是 匹配表。所以加号写在右表,左表就是全部显示,故是左连接。

9. 提交方式

Oracle默认不自动提交,需要手动提交。Mysql默认自动提交。

10. 分页查询
MySQL是直接在SQL语句中写"select… from …where…limit x, y",有limit就可以实现分页;而Oracle则是需要用到伪列ROWNUM和嵌套查询

select * from (select rownum rn , e.* from emp e) r 
where r.rn between 1 and 5;

心得体会

今天学习了Oracle数据库的体系结构和基本操作,认识到了很多和mysql操作不同的地方,很多mysql想当然的操作在Oracle上不一定正确,要正确认识到两者的不同之处。

标签

评论

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1