Oracle和MySQL差異比較

2021-12-30 02:21:19 字數 1074 閱讀 1196

常用功能差異

1、鎖差異:

• oracle鎖加在資料塊上

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

2、匯入匯出:

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

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

3、commit:

• oracle預設手動提交

• mysql預設自動提交

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

5、資料庫物件:

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

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

6、事務:

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

sql寫法差異

1、空字串處理:

• 而oracle 只有null的概念

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

2、結果集行數限制:

• oracle使用rownum

• mysql使用limit;

3、執行sql:

• oracle需要select func() from dual;

• mysql可以直接select func();

4、修改字段型別或長度:

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

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

5、複製資料:

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

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

6、字串處理:

• oracle裡用單引號包起字串

• mysql用雙引號包起字串

Oracle和MySQL差異總結

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

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前 必須要有空格 一些表示式...