Mysql 和Oracle 在開發(fā)中的使用是隨處可見的,那就簡單去了解一下這倆款火的不行的數(shù)據(jù)庫。
本質(zhì)區(qū)別:
Oracle數(shù)據(jù)庫是一個(gè)對象關(guān)系數(shù)據(jù)庫管理系統(tǒng)(收費(fèi))
MySQL是一個(gè)開源的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(免費(fèi))
數(shù)據(jù)庫的安全性:
mysql使用三個(gè)參數(shù)來驗(yàn)證用戶,即用戶名,密碼和位置
Oracle使用了更多的安全功能,如用戶名,密碼,配置文件,本地身份驗(yàn)證,外部身份驗(yàn)證,高級(jí)安全增強(qiáng)功能等;
權(quán)限:
MySQL的權(quán)限系統(tǒng)是通過繼承形成的分層結(jié)構(gòu)。權(quán)限授于高層時(shí),其他低層隱式繼承被授予的權(quán)限,當(dāng)然低層也可改寫這些權(quán)限。按授權(quán)范圍不同,MySQL有以下種授權(quán)方式: 1、全局; 2、基于每個(gè)主機(jī); 3、基于表; 4、基于表列。
每一級(jí)在數(shù)據(jù)庫中都有一個(gè)授權(quán)表。當(dāng)進(jìn)行權(quán)限檢查時(shí),MySQL從高到低檢查每一張表,低范圍授權(quán)優(yōu)先于高范圍授權(quán)。與Oracle不同,MySQL沒有角色的概念。也就是說,如果對一組用戶授予同樣的權(quán)限,需要對每一個(gè)用戶分別授權(quán)。
模式遷移:
模式包含表、視圖、索引、用戶、約束、存儲(chǔ)過程、觸發(fā)器和其他數(shù)據(jù)庫相關(guān)的概念。多數(shù)關(guān)系型數(shù)據(jù)庫都有相似的概念。包含內(nèi)容如下:
模式對象的相似性;
模式對象的名稱;
表設(shè)計(jì)時(shí)的關(guān)注點(diǎn);
多數(shù)據(jù)庫整合;
MySQL模式整合的關(guān)注點(diǎn)。
模式對象的相似性:
就模式對象,Oracle和MySQL存儲(chǔ)諸多的相似,但也有一些不同
模式對象的名稱:
Oracle是大小寫不敏感的,并且模式對象是以在寫時(shí)行存儲(chǔ)。在Oracle的世界中,列、索引、存儲(chǔ)過程、觸發(fā)器以及列別名都是大小寫不敏感,并且在所有平臺(tái)都是如此。MySQL是大小寫敏感的,如數(shù)據(jù)庫相對的存儲(chǔ)路徑、表對應(yīng)的文件都是如此;
當(dāng)把關(guān)鍵字用引號(hào)引起來時(shí),Oracle和MySQL都允許把這些關(guān)鍵字用于模式對象。但MySQL對于一些關(guān)鍵字,不加引號(hào)也行。
表設(shè)計(jì)的關(guān)注點(diǎn):
1、字符數(shù)據(jù)的類型; 2、列默認(rèn)值。 3.2.3.1 字符數(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é)。(3.2.3.2 列默認(rèn)值)
MySQL會(huì)處理列默認(rèn)值,不允許他為空,這點(diǎn)和Oracle不同。在Oracle中如果向表插入數(shù)據(jù),需要對有所有不允許為NULL列的值。
多數(shù)據(jù)庫遷移:
如果多個(gè)MySQL數(shù)據(jù)庫位于同一個(gè)數(shù)據(jù)庫服務(wù)上,支持遷移。
數(shù)據(jù)存儲(chǔ)概念:
MySQL的數(shù)據(jù)庫對應(yīng)于服務(wù)器上數(shù)據(jù)目錄內(nèi)的了目錄,這一數(shù)據(jù)存儲(chǔ)方式與多數(shù)據(jù)數(shù)據(jù)庫不同,也包括Oracle。數(shù)據(jù)庫中的表對應(yīng)一個(gè)或者多個(gè)數(shù)據(jù)庫目錄下的文件,并取表存儲(chǔ)時(shí)的存儲(chǔ)引擎。
一個(gè)Oracle數(shù)據(jù)庫包含一個(gè)或者多個(gè)表空間。表空間對應(yīng)數(shù)據(jù)在磁盤上的物理存儲(chǔ)。表空間是從一個(gè)或者多個(gè)數(shù)據(jù)文件開始構(gòu)建的。數(shù)據(jù)文件是文件系統(tǒng)中的文件或者原始存儲(chǔ)的一塊空間。
語法上的區(qū)別:
主鍵:
mysql一般使用自動(dòng)增長類型,在創(chuàng)建表的時(shí)候指定表的主鍵為auto increment,主鍵就會(huì)自動(dòng)增長。
Oracle中沒有自動(dòng)增長,主鍵一般使用序列,插值時(shí)依次賦值即可
引號(hào)問題:
Oracle不使用雙引號(hào),會(huì)報(bào)錯(cuò)
mysql則對引號(hào)沒有限制
分頁查詢:
mysql分頁查詢使用關(guān)鍵字limit來實(shí)現(xiàn)
Oracle沒有實(shí)現(xiàn)分頁查詢的關(guān)鍵字,實(shí)現(xiàn)起來較復(fù)雜,在每個(gè)結(jié)果集中只有一個(gè)rownum字段標(biāo)明它的位置,并且只能用rownum<=某個(gè)數(shù),不能用rownum>=某個(gè)數(shù),因?yàn)镽OWNUM是偽列,在使用時(shí)所以需要為ROWNUM取一個(gè)別名,變成邏輯列,然后來操作
數(shù)據(jù)類型:
mysql中的整型:int(),字符串類型:varchar()
Oracle中的整形:number(),字符串類型:varchar2()
責(zé)任編輯:xj
原文標(biāo)題:3分鐘帶你分清Mysql 和Oracle之間的誤區(qū)
文章出處:【微信公眾號(hào):華為開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
數(shù)據(jù)庫
+關(guān)注
關(guān)注
7文章
3846瀏覽量
64686 -
Oracle
+關(guān)注
關(guān)注
2文章
296瀏覽量
35235 -
MySQL
+關(guān)注
關(guān)注
1文章
829瀏覽量
26743
原文標(biāo)題:3分鐘帶你分清Mysql 和Oracle之間的誤區(qū)
文章出處:【微信號(hào):Huawei_Developer,微信公眾號(hào):華為開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
從Delphi、C++ Builder和Lazarus連接到MySQL數(shù)據(jù)庫
![從Delphi、C++ Builder和Lazarus連接到<b class='flag-5'>MySQL</b><b class='flag-5'>數(shù)據(jù)庫</b>](https://file1.elecfans.com/web3/M00/06/A5/wKgZO2eN5IqANOPPAAAbvvhWjM0611.png)
適用于MySQL和MariaDB的Python連接器:可靠的MySQL數(shù)據(jù)連接器和數(shù)據(jù)庫
![適用于<b class='flag-5'>MySQL</b>和MariaDB的Python連接器:可靠的<b class='flag-5'>MySQL</b><b class='flag-5'>數(shù)據(jù)</b>連接器和<b class='flag-5'>數(shù)據(jù)庫</b>](https://file1.elecfans.com/web3/M00/06/57/wKgZPGeJ2kmAcWpWAAAh1ecL_LM122.png)
從Delphi、C++ Builder和Lazarus連接到Oracle數(shù)據(jù)庫
Oracle數(shù)據(jù)庫的多功能集成開發(fā)環(huán)境
![<b class='flag-5'>Oracle</b><b class='flag-5'>數(shù)據(jù)庫</b>的多功能集成開發(fā)環(huán)境](https://file1.elecfans.com/web3/M00/05/F0/wKgZO2eF-8qAREl7AAAlkoIDMh0655.png)
MySQL數(shù)據(jù)庫的安裝
![<b class='flag-5'>MySQL</b><b class='flag-5'>數(shù)據(jù)庫</b>的安裝](https://file1.elecfans.com/web3/M00/05/E2/wKgZPGeF2XWAe83fAAAW9lhgvGk652.jpg)
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—Mysql數(shù)據(jù)庫表記錄丟失的數(shù)據(jù)恢復(fù)流程
![<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—<b class='flag-5'>Mysql</b><b class='flag-5'>數(shù)據(jù)庫</b>表記錄丟失的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)流程](https://file.elecfans.com/web2/M00/7B/26/pYYBAGNzCiiANj77AAH4iOB3xKM259.png)
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—ORACLE常見故障的數(shù)據(jù)恢復(fù)可行性分析
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—MYSQL數(shù)據(jù)庫ibdata1文件損壞的數(shù)據(jù)恢復(fù)案例
不用編程不用電腦,快速實(shí)現(xiàn)多臺(tái)Modbus協(xié)議的PLC、智能儀表對接SQL數(shù)據(jù)庫
![不用編程不用電腦,快速實(shí)現(xiàn)多臺(tái)Modbus協(xié)議的PLC、智能儀表對接SQL<b class='flag-5'>數(shù)據(jù)庫</b>](https://file1.elecfans.com/web3/M00/01/8A/wKgZPGdWWY6AGNNFAAK5O8CaAlc423.png)
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—Oracle ASM實(shí)例無法掛載的數(shù)據(jù)恢復(fù)案例
![<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—<b class='flag-5'>Oracle</b> ASM實(shí)例無法掛載的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例](https://file.elecfans.com/web2/M00/6D/03/pYYBAGMxGQOAIdT9AAEmCgX8OAo311.png)
Oracle數(shù)據(jù)恢復(fù)—異常斷電后Oracle數(shù)據(jù)庫啟庫報(bào)錯(cuò)的數(shù)據(jù)恢復(fù)案例
![<b class='flag-5'>Oracle</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—異常斷電后<b class='flag-5'>Oracle</b><b class='flag-5'>數(shù)據(jù)庫</b>啟<b class='flag-5'>庫</b>報(bào)錯(cuò)的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例](https://file1.elecfans.com/web2/M00/08/B8/wKgZomb6Ns-AbiICAAFlXAFpKKU086.png)
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—Oracle數(shù)據(jù)庫文件system01.dbf損壞的數(shù)據(jù)恢復(fù)案例
![<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—<b class='flag-5'>Oracle</b><b class='flag-5'>數(shù)據(jù)庫</b>文件system01.dbf損壞的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例](https://file1.elecfans.com//web2/M00/06/BC/wKgZombqY1-AbIlmAAA0fq5EyZY308.jpg)
Oracle數(shù)據(jù)恢復(fù)—Oracle數(shù)據(jù)庫delete刪除的數(shù)據(jù)恢復(fù)方法
華納云:MySQL初始化操作如何創(chuàng)建新的數(shù)據(jù)庫
Oracle數(shù)據(jù)恢復(fù)—Oracle數(shù)據(jù)庫誤truncate表的數(shù)據(jù)恢復(fù)案例
![<b class='flag-5'>Oracle</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—<b class='flag-5'>Oracle</b><b class='flag-5'>數(shù)據(jù)庫</b>誤truncate表的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例](https://file.elecfans.com/web2/M00/9A/D7/pYYBAGQdHS6AJ5uRAAIvhiclg9s075.png)
評論