MySql一般使用自动增长类型,在创建表的时候只要指定表的主键为auto increment,插入记录时就不需要再为主键添加记录了,主键会自动增长。Oracle中没有自动增长,主键一般使用序列,插入记录时将序列号的下一值付给该字段即可,只是ORM框架只是需要native主键生成策略即可。
•单引号的处理:
MySql里可以使用双引号来包起字符串,Oracle里要使用单引号包起字符串。
•分页查询:
这个应该是两者最明显的区别了,很多人都知道MySql中分页很简单,因为他有专门的关键字limit来实现分页查询;
但是Oracle里面没有这种关键字来实现分页查询的,所以它实现起来就比MySql要繁琐得多了,在每个结果集中只有一个rownum字段标明它的位置,并且只能用rownum<=某个数,不能用rownum>=某个数,因为ROWNUM是伪列,在使用时所以需要为ROWNUM取一个别名,变成逻辑列,然后来操作。select * from (select ROWNUM as num,A.* from (select * from test) A where ROWNUM <=40) where num >= 20; 这是这两者的最大的不同。
各种方法的区别:
1.数据类型
Oracle中的整型,number(),字符串类型,varchar2()
MySQL中的整型,int(),字符串类型,varchar()
2.日期
Oracle中的日期,to_date()字符串转日期,to_char()日期转字符串,last_day()月的最后一天,add_months()对指定的日期加上指定月,months_between()相差的月,next_day()返回给定日期第二天开始一周内
的指定周几的日期。
MySQL中的日期,date(),time(),timedate(),timestamp(),Year()
3.空值
MySQL中的null值处理,用ifnull(),一般用法ifnull(comm,0);
Oracle中的空值处理,用NVL()两个参数,NVL2()三个参数,其中null在Oracle中最大,在MySQL中最小
4.去空
MySQL中只有trim(),Oracle中有trim(),ltrim(),rtrim()
5.分组
group up在Oracle中后面要跟出现的所有字段名,MySQL中可以跟单独字段