一、ORACLE是大型数据库,MYSQL是中小型数据库
二、ORALCE支持高并发、大访问量,是OLTP最好的工具
三、ORACLE和MYSQL操作上面的一些区别:
①:MYSQL一般使用的是自动增长类型,在创建表的时候只要指定主键为auto increment,插入记录时,不需要再指定该记录的主键值,MYSQL将自动增长;ORALCE没有自增长类型,主键一般使用序列,在插入字段的时候,将序号的下一个值赋给该字段即可,ORM框架只要使用native主键生成策略即可。
②:MYSQL可以用双引号包起字符串,ORACLE只能用单引号包起字符串;
③:分页的SQL语句的处理
MySql分页(简单,随着数据量的不断增大,效率会降低):(page:当前页码,pageSize:每页显示的记录数)
select * from tablename order by id desc limit (page-1)*pageSize, pageSize;
MySql分页(高效)
select * from tablename where id>=(select id from tablename order by id limit (page-1)*pageSize, 1) limit pageSize;
ORALCE分页
select * from (select t.*,rownum rn from (select * from tablename) t where rownum<=page*pageSize) where rn>(page-1)*pageSize;
④:空字符的处理
MYSQL非空字段也有空的值,ORACLE的非空字段不容许有空的值
⑤:日期字段处理
MySql日期字段分为DATE和TIME两种,ORACLE日期字段只有DATE,包含年月日时分秒。MySql插入当前时间的几个函数是:NOW()函数以“YYYY-MM-DD HH:MM:SS”返回当前的日期,可以直接保存到DATETIME字段中。CURDATE()以‘YYY-MM-DD’的格式返回今天的日期,可以直接存到DATE字段中。CURTIME()以‘HH:MM:SS’的格式返回当前的时间,可以直接存到TIME字段中。
ORACLE中的当前时间是sysdate
⑥:组函用法规则
MySql中组函数在select语句中可以随意使用,但在oracle中如果查询的语句中含组函数,那其他列名必须是组函数处理过的,或者是group by子句中的列,否则报错;
例如:
select name,count(money) from user;这个放在MySql中没有问题,在ORACLE就有问题;