最近與某行合做, 必須用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是重量級的.