http://pic62.nipic.com/file/20150318/8684504_093611837474_2.jpg ...
一、mysql與Oracle的相同點:
1、都是關係型資料庫管理系統(MySQL開放源碼)
2、都是目前很流行的資料庫(Oracle以分散式為核心);
二、MySQL、Oracle各自特點:
1、Oracle自身特點:
(1)、完整的數據管理功能:
1)、數據的大量性;
2)、數據的保存的持久性;
3)、數據的共用性;
4)、數據的可靠性;
(2)、完備關係的產品 :
1)、信息準則---關係型DBMS的所有信息都應在邏輯上用一種方法,即表中的值顯式地表示;
2)、保證訪問的準則;
3)、視圖更新準則---只要形成視圖的表中的數據變化了,相應的視圖中的數據同時變化;
4)、數據物理性和邏輯性獨立準則;
(3)、分散式處理功能: ORACLE資料庫自第5版起就提供了分散式處理能力,到第7版就有比較完善的分散式資料庫功能了,一個ORACLE分散式資料庫由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的關係型產品構成。
4、用Oracle能輕鬆的實現數據倉庫的操作 Oracle自身的優點:
1、可用性強;
2、可擴展性強;
3、資料庫安全性強;
4、穩定性強;
MySQL自身特點:
MySQL因為其速度、可靠性和適應性而備受關註。大多數人都認為在不需要事務化處理的情況下,MySQL是管理內容最好的選擇。
三、兩者資料庫不同點:
1.單引號的處理 Mysql里可以用雙引號包起字元串,Oracle里只可以用單引號包起字元串。在插入和修改字元串前必須做單引號的替換:把所有出現的一個單引號替換成兩個單引號。
2.自動增長的數據類型處理 Mysql是一個自動增長的數據類型,插入數據的時候,不需要管理,它自己會自動增長,Oracle不支持自動增長的數據類型,通過建立一個自動增長的序列號來完成自動增長。
3.sql語句的擴展和靈活性 Mysql對sql語句有很多非常實用而方便的擴展,比如limit功能,insert可以一次插入多行數據,select某些管理數據可以不加from。 Oracle在這方面感覺更加穩重傳統一些。
4.事物提交方式 oracle預設不自動提交,需要用戶手動提交。 Mysql預設是自動提交。不支持事物。 Mysql預設自動提交,也就是你提交一個query,它就直接執行,我們可以通過
set autocommit=0 禁止自動提交
set autocommit=1 開啟自動提交
5.Oracle是大型資料庫而Mysql是中小型資料庫,Oracle市場占有率達40%,Mysql只有20%左右,同時Mysql是開源的而Oracle價格非常高。
6. Oracle支持大併發,大訪問量,是OLTP(On-Line Transaction Processing聯機事務處理系統)最好的工具。
7. 安裝所用的空間差別也是很大的,Mysql安裝完後才152M而Oracle有3G左右,且使用的時候Oracle占用特別大的記憶體空間和其他機器性能。
8. 長字元串的處理 長字元串的處理ORACLE也有它特殊的地方。INSERT和UPDATE時最大可操作的字元串長度小於等於4000個單位元組, 如果要插入更長的字元串, 請考慮欄位用CLOB類型,方法借用ORACLE里自帶的DBMS_LOB程式包。插入修改記錄前一定要做進行非空和長度判斷,不能為空的欄位值和超出長度欄位值都應該提出警告,返回上次操作。
9. 空字元的處理 Mysql的非空欄位也有空的內容,ORACLE里定義了非空欄位就不容許有空的內容。按Mysql的NOT NULL來定義Oracle表結構, 導數據的時候會產生錯誤。因此導數據時要對空字元進行判斷,如果為NULL或空字元,需要把它改成一個空格的字元串。
10.字元串的模糊比較 Mysql里用 欄位名 like ‘%字元串%’;
Oracle里也可以用 欄位名 like ‘%字元串%’ 但這種方法不能使用索引, 速度不快。
11.翻頁的SQL語句的處理
MySQL處理翻頁的SQL語句比較簡單,用LIMIT開始位置,記錄個數;PHP里還可以用 SEEK定位到結果集的位置。Oracle處理翻頁的SQL語句就比較繁瑣了。每個結果集只有一個ROWNUM欄位標明它的位置,並且只能用ROWNUM<100,不能用ROWNUM>80。