目錄
- 本質(zhì)區(qū)別
- 數(shù)據(jù)庫的安全性
- 權(quán)限
- 模式遷移
- 模式對象的相似性
- 模式對象的名稱
- 表設計的關注點
- 多數(shù)據(jù)庫遷移
- 數(shù)據(jù)存儲概念
- 語法上的區(qū)別
本質(zhì)區(qū)別
- Oracle數(shù)據(jù)庫是一個對象關系數(shù)據(jù)庫管理系統(tǒng)(收費)
- MySQL是一個開源的關系數(shù)據(jù)庫管理系統(tǒng)(免費)
數(shù)據(jù)庫的安全性
- mysql使用三個參數(shù)來驗證用戶,即用戶名,密碼和位置
- Oracle使用了更多的安全功能,如用戶名,密碼,配置文件,本地身份驗證,外部身份驗證,高級安全增強功能等
權(quán)限
MySQL的權(quán)限系統(tǒng)是通過繼承形成的分層結(jié)構(gòu)。權(quán)限授于高層時,其他低層隱式繼承被授于的權(quán)限,當然低層也可改寫這些權(quán)限。
按授權(quán)范圍不同,MySQL有以下種授權(quán)方式:
1、全局;
2、基于每個主機;
3、基于表;
4、基于表列。
每一級在數(shù)據(jù)庫中都有一個授權(quán)表。當進行權(quán)限檢查時,MySQL從高到低檢查每一張表,低范圍授權(quán)優(yōu)先于高范圍授權(quán)。
與Oracle不同,MySQL沒有角色的概念。也就是說,如果對一組用戶授于同樣的權(quán)限,需要對每一個用戶分別授權(quán)。
模式遷移
模式包含表、視圖、索引、用戶、約束、存儲過程、觸發(fā)器和其他數(shù)據(jù)庫相關的概念。多數(shù)關系型數(shù)據(jù)庫都有相似的概念。
包含內(nèi)容如下:
1.模式對象的相似性;
2.模式對象的名稱;
3.表設計時的關注點;
4.多數(shù)據(jù)庫整合;
5.MySQL模式整合的關注點。
模式對象的相似性
就模式對象,Oracle和MySQL存儲諸多的相似,但也有一些不同
模式對象的名稱
Oracle是大小寫不敏感的,并且模式對象是以在寫時行存儲。在Oracle的世界中,列、索引、存儲過程、觸發(fā)器以及列別名都是大小寫不敏感,并且在所有平臺都是如此。MySQL是大小寫敏感的,如數(shù)據(jù)庫相對的存儲路徑、表對應的文件都是如此
當把關鍵字用引號引起來時,Oracle和MySQL都允許把這些關鍵字用于模式對象。但MySQL對于一些關鍵字,不加引號也行。
表設計的關注點
1、字符數(shù)據(jù)的類型;
2、列默認值。
3.字符數(shù)據(jù)類型
(1) Oracle支持4種字體類型:CHAR、NCHAR、NVARCHAR2和VARCHAR2。CHAR和NCHAR的最大長度為2000字節(jié),
NVARCHAR2和VARCHAR2最大長度為4000字節(jié)。
(2)MySQL和Oracle在字符型數(shù)據(jù)保存和讀取上存在一些不同。MySQL的字符類型,如CHAR和VARCHAR的長度小于65535字節(jié)。Oracle支持4種字體類型:C HAR、NCHAR、NVARCHAR2和VARCHAR2。CHAR和NCHAR的最大長度為2000字節(jié),NVARCHAR2和VARCHAR2最大長度為4000字節(jié)。
MySQL會處理列默認值,不允許他為空,這點和Oracle不同。在Oracle中如果向表插入數(shù)據(jù),需要對有所有不允許為NULL列的值。
多數(shù)據(jù)庫遷移
如果多個MySQL數(shù)據(jù)庫位于同一個數(shù)據(jù)庫服務上,支持遷移。
數(shù)據(jù)存儲概念
MySQL的數(shù)據(jù)庫對應于服務器上數(shù)據(jù)目錄內(nèi)的了目錄,這一數(shù)據(jù)存儲方式與多數(shù)據(jù)數(shù)據(jù)庫不同,也包括Oracle。數(shù)據(jù)庫中的表對應一個或者多個數(shù)據(jù)庫目錄下的文件,并取表存儲時的存儲引擎。
一個Oracle數(shù)據(jù)庫包含一個或者多個表空間。表空間對應數(shù)據(jù)在磁盤上的物理存儲。表空間是從一個或者多個數(shù)據(jù)文件開始構(gòu)建的。數(shù)據(jù)文件是文件系統(tǒng)中的文件或者原始存儲的一塊空間。
語法上的區(qū)別
主鍵:
- mysql一般使用自動增長類型,在創(chuàng)建表的時候指定表的主鍵為auto increment,主鍵就會自動增長。
- Oracle中沒有自動增長,主鍵一般使用序列,插值時依次賦值即可
引號問題:
- Oracle不使用雙引號,會報錯
- mysql則對引號沒有限制
分頁查詢:
- mysql分頁查詢使用關鍵字limit來實現(xiàn)
- Oracle沒有實現(xiàn)分頁查詢的關鍵字,實現(xiàn)起來較復雜,在每個結(jié)果集中只有一個rownum字段標明它的位置,并且只能用rownum=某個數(shù),不能用rownum>=某個數(shù),因為ROWNUM是偽列,在使用時所以需要為ROWNUM取一個別名,變成邏輯列,然后來操作
數(shù)據(jù)類型:
- mysql中的整型:int(),字符串類型:varchar()
- Oracle中的整形:number(),字符串類型:varchar2()
以上就是詳解Mysql和Oracle之間的誤區(qū)的詳細內(nèi)容,更多關于Mysql和Oracle之間的誤區(qū)的資料請關注腳本之家其它相關文章!
您可能感興趣的文章:- SpringBoot多數(shù)據(jù)庫連接(mysql+oracle)的實現(xiàn)
- 詳解MySQL實時同步到Oracle解決方案
- MySQL版oracle下scott用戶建表語句實例
- mysql、oracle默認事務隔離級別的說明
- MyBatis JdbcType 與Oracle、MySql數(shù)據(jù)類型對應關系說明
- mysql和oracle的區(qū)別小結(jié)(功能性能、選擇、使用它們時的sql等對比)
- mysql類似oracle rownum寫法實例詳解
- 淺談Mysql、SqlServer、Oracle三大數(shù)據(jù)庫的區(qū)別
- Oracle更換為MySQL遇到的問題及解決