1、大小的区别
mysql是一个轻量级数据库,开源免费,无提供服务
oracle是一个重量级数据库,使用免费,服务收费(数据恢复、数据迁移)
2、事务的提交
mysql默认一条sql语句是一个事务可以关闭自动提交,手动提交
oracle没有自动提交需要手动提交
3、事务的隔离级别
mysql读已提交,当前事务进行操作时其他事务等待之后进行操作(排他锁)
oracle读未提交,当前事务进行操作时其他事务可以进行读取操作(共享锁)
4、存储方式
mysql数据以库形式进行存储,连接指定库读取指定库中数据
oracle以全局数据库存储,只拥有一个库,通过不同表空间进行表的存储与使用,根据连接的用户使用相应用户默认表空间中的数据
5、分页查询
mysql提供了分页关键字limit 可以快速对结果进行指定条数的获取
oracle没有提供分页关键字,而是通过子查询伪列rownum的形式进行指定条数的获取
6、自增
mysql提供了数值字段自增约束,进行添加时可以自增
oracle没有提供自增约束,需要定义序列在添加时使用 序列名.nextval进行赋值
7、数据类型
mysql中常用数据类型为数值:int、double / 字符型:varchar /日期 : dateTime、
oracle中常用数据类型为数值:number /字符型:varchar2/日期:date
8、非空判断
mysql如果使用not null可以存储空字符串
oracle的非空判断判断是否为null或空字符串
9、宕机处理
mysql在遇到突然性的状况时,当前处理根据事务回滚失败,并不会进行记录
oracle所有操作在日志中进行记录,可以在恢复后根据日志找回相应操作
10、备份
mysql在数据进行备份时锁定数据,不允许进行操作
oracle在数据进行备份时不影响其他事务操作,并且在备份结束后可以保证数据的一致性
11、 性能诊断
mysql的诊断调优方法较少,主要有慢查询日志。
oracle有各种成熟的性能诊断调优工具,能实现很多自动分析、诊断功能。比如awr、addm、sqltrace、tkproof等
12、权限与安全
mysql通过连接ip、账号、密码的形式进行校验,安全性相对较低,可能被模拟主机进行登录
oracle通过ip、账号、密码、权限、默认表空间进行连接与数据安全的校验
13、 单引号的处理
mysql里可以用双引号包起字符串也可以用单引号,ORACLE里只可以用单引号包起字符串。在使用数据库操作字符串时使用单引号作为字符串标识
14、模糊查询
mysql可以直接使用like进行模糊查询,oracle也可以,但考虑到索引,一般使用函数instr判断指定字符串在数据出现的位置>1则表示包含,但灵活性相较于like有所下降
15、别名
mysql对于字段与表书写别名时都可以省略as
oracle在书写字段时可以省略,但是对表起别名时不能书写as
起别名时不使用as