最近与某行合做, 必须用oracle, 几年没用了, 因而经历了mysql到oracle开发上的一些转换, 简单总结一下:mysql
1, 数据类型sql
oracle比mysql粗放, 好比mysql的tinyint、bigint、bigdecimal, 在oracle下只能用NUMBER类型来表示了.oracle
2, 空值null和''函数
oracle下null和''是等同的, mysql下二者不等同.ci
3, 自增主键 开发
oracle没有自增主键, 不过能够经过“序列+触发器”的方式实现.字符串
4, 日期类型的字段严谨性it
mysql下日期格式的字符串能够直接赋值给日期类型, 而oracle下字符串必须显示转换成日期类型.table
5, 时间戳自动赋值/更新分页
mysql的timestamp类型能够实现自动赋值/更新, oracle没这个类型和功能.
6, 单引号、双引号
mysql下字符串的值, 用'' 和"" 均可以, 而oracle字符串的值,只能用单引号''.
7, 分页
mysql的limit很方便, oracle则必须借助rownum,并且rownum只适用<=, 所以就有了下面这种臃肿的分页
SELECT * FROM
(
SELECT A.*, ROWNUM RN
FROM (SELECT * FROM TABLE_NAME) A
WHERE ROWNUM <= 20
)
WHERE RN >= 11
8, 内置函数
这个确定有区别, 好比mysql下的ifNull对应oracle下的NVL
9, DDL
mysql下咱们用惯了drop table if exists的语法, 在oracle下你只能人工去判断了,这个很不友好.
mysql下字段的注释能够紧跟在字段后, 在oracle下你只能在建完表以后再去添加字段注释.
10, DML
大部分DML语法同样, 但有一些仍是不一样, 好比批量插入
//区别远不止上面这些, 一句话oracle是重量级的.