Oracle和MySQL差異總結

2022-08-30 00:27:16 字數 1254 閱讀 3616

常用功能差異

鎖差異

• oracle鎖加在資料塊上

• innodb 是在索引上加鎖,所以mysql鎖的粒度沒有oracle 精細。

匯入匯出

• oracle採用exp /imp ,expdp/impdp匯入匯出。

• mysql採用mysqldump匯出,匯入可以採用管道或source。

commit

• oracle預設手動提交

• mysql預設自動提交

sql 快取:mysql只能快取結果集,不能快取sql解析結果

資料庫物件

• oracle將資料庫物件編譯儲存,直接執行二進位製碼

• mysql只儲存**,臨時解析執行,所以mysql觸發器、儲存過程、函式等物件建立時僅檢查語法,不檢查邏輯

事務

• mysql不是所有引擎都支援,建議優先使用innodb,相比其他引擎有更好的併發性

sql寫法差異

空字串處理

• 而oracle 只有null的概念

• mysql有空字串 '' 和null,空串不等於null

結果集行數限制

• oracle使用rownum

• mysql使用limit;

執行sql

• oracle需要select func() from dual;

• mysql可以直接select func();

修改字段型別或長度

• oracle:alter table tablename modify column ...;

• mysql:alter table tablename modify (...);

複製資料

• oracle的as是必選,create table table1 as select * from table2;

• mysql的as是可選,create table table1 select * from table2;

字串處理

• oracle裡用單引號包起字串

• mysql用雙引號包起字串

Oracle和MySQL差異比較

常用功能差異 1 鎖差異 oracle鎖加在資料塊上 innodb 是在索引上加鎖,所以mysql鎖的粒度沒有oracle 精細。2 匯入匯出 oracle採用exp imp expdp impdp匯入匯出。mysql採用mysqldump匯出,匯入可以採用管道或source。3 commit or...

MySQL和Oracle中空值的顯示差異

最近在處理有關空值的問題時,突然發現mysql和oracle中的顯示有些不同。以下的環境全是在字元介面的sql提示符下獲得的,不保證其它情況下也如此。oracle的 sql select userinfo from tbl where user is null and rownum 1 sql se...

mysql和oracle的語法上的差異

mysql 子查詢必須寫表別名 delete語句不能使用表別名 分頁查詢用limit關鍵字 主鍵自增長 limit在order by 子句的後面 where condition order by condition limit num 關鍵字前後必須有空格 如 order前 必須要有空格 一些表示式...