mysql 和 oracle (11g版本)的一些差异
mysql的写法比oracle自由很多,兼容性比较强
- oracle的表名起别名不能用as,列的别名可以用as;mysql没有限制
- oracle的日期时间只有两种类型,1date(精确到时分秒),2timestamp(更高精度)
而且,存储的时间格式比较怪,要转为习惯的格式的话,是这样的写的 to_char(date,'yyyy-mm-dd hh24:mi:ss')
对应的Java是这样的 yyyy-MM-dd HH:mm:ss - 用了聚合函数,group by要接很多字段(几乎全部)
- Oracle和mysql的很多函数不一样,字符和时间转换相关的,Oracle中是to_char和to_date
- Oracle表建立后,字段位置不允许改变,而MySQL可以,参见 https://blog.csdn.net/ttxsely/article/details/74842716
- MySQL和Oracle自增字段的不同。MySQL默认innodb引擎,可以实现主键自增;而Oracle要实现相同的功能则比较麻烦,需要创建列对应的序列,并创建列对应的触发器
此外,Oracle的插入语句,自增主键也不能为空,需要填入自增的主键值,要用序列来获得,序列名.nextval。 - Oracle和mysql的字符串连接方式不一样。Oracle多个字符串连接,使用||连接符 或 concat函数(concat函数只能连接两个字符串);
mysql中的+号仅作运算符,故mysql中的字符串连接使用concat函数,可以连接多个字符串
oracle的一些保留字:
date、user
- Oracle实现自增长主键比较麻烦,需要创建对应字段的序列sequence,还要创建对应的触发器;不像MySQL那样可以简单的auto increase(且Oracle进行insert的时候,不能忽略主键,具体参见上面的6)
所以,Oracle主键的话,个人感觉,适合使用UUID(oracle的sql developer软件,可以使用列序列,这样可以一键创建自增长主键) - Oracle中可变字符串类型,推荐使用varchar2