常用功能差異
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前 必須要有空格 一些表示式...