共計(jì) 1946 個(gè)字符,預(yù)計(jì)需要花費(fèi) 5 分鐘才能閱讀完成。
這篇文章主要介紹“MySQL 和 Oracle 的本質(zhì)區(qū)別”,在日常操作中,相信很多人在 MySQL 和 Oracle 的本質(zhì)區(qū)別問(wèn)題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”MySQL 和 Oracle 的本質(zhì)區(qū)別”的疑惑有所幫助!接下來(lái),請(qǐng)跟著丸趣 TV 小編一起來(lái)學(xué)習(xí)吧!
本質(zhì)區(qū)別:
Oracle 數(shù)據(jù)庫(kù)是一個(gè)對(duì)象關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng) (收費(fèi))
MySQL 是一個(gè)開(kāi)源的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng) (免費(fèi))
數(shù)據(jù)庫(kù)的安全性:
mysql 使用三個(gè)參數(shù)來(lái)驗(yàn)證用戶,即用戶名,密碼和位置
Oracle 使用了更多的安全功能,如用戶名,密碼,配置文件,本地身份驗(yàn)證,外部身份驗(yàn)證,高級(jí)安全增強(qiáng)功能等
權(quán)限
MySQL 的權(quán)限系統(tǒng)是通過(guò)繼承形成的分層結(jié)構(gòu)。權(quán)限授于高層時(shí),其他低層隱式繼承被授于的權(quán)限,當(dāng)然低層也可改寫(xiě)這些權(quán)限。
按授權(quán)范圍不同,MySQL 有以下種授權(quán)方式:
鴻蒙官方戰(zhàn)略合作共建——HarmonyOS 技術(shù)社區(qū)
全局;
基于每個(gè)主機(jī);
基于表;
基于表列。
每一級(jí)在數(shù)據(jù)庫(kù)中都有一個(gè)授權(quán)表。當(dāng)進(jìn)行權(quán)限檢查時(shí),MySQL 從高到低檢查每一張表,低范圍授權(quán)優(yōu)先于高范圍授權(quán)。
與 Oracle 不同,MySQL 沒(méi)有角色的概念。也就是說(shuō),如果對(duì)一組用戶授于同樣的權(quán)限,需要對(duì)每一個(gè)用戶分別授權(quán)。
模式遷移
模式包含表、視圖、索引、用戶、約束、存儲(chǔ)過(guò)程、觸發(fā)器和其他數(shù)據(jù)庫(kù)相關(guān)的概念。多數(shù)關(guān)系型數(shù)據(jù)庫(kù)都有相似的概念。
包含內(nèi)容如下:
模式對(duì)象的相似性;
模式對(duì)象的名稱(chēng);
表設(shè)計(jì)時(shí)的關(guān)注點(diǎn);
多數(shù)據(jù)庫(kù)整合;
MySQL 模式整合的關(guān)注點(diǎn)。
模式對(duì)象的相似性
就模式對(duì)象,Oracle 和 MySQL 存儲(chǔ)諸多的相似,但也有一些不同
模式對(duì)象的名稱(chēng)
Oracle 是大小寫(xiě)不敏感的,并且模式對(duì)象是以在寫(xiě)時(shí)行存儲(chǔ)。在 Oracle 的世界中,列、索引、存儲(chǔ)過(guò)程、觸發(fā)器以及列別名都是大小寫(xiě)不敏感,并且在所有平臺(tái)都是如此。MySQL 是大小寫(xiě)敏感的,如數(shù)據(jù)庫(kù)相對(duì)的存儲(chǔ)路徑、表對(duì)應(yīng)的文件都是如此
當(dāng)把關(guān)鍵字用引號(hào)引起來(lái)時(shí),Oracle 和 MySQL 都允許把這些關(guān)鍵字用于模式對(duì)象。但 MySQL 對(duì)于一些關(guān)鍵字,不加引號(hào)也行。
表設(shè)計(jì)的關(guān)注點(diǎn)
1、字符數(shù)據(jù)的類(lèi)型;
2、列默認(rèn)值。
3.2.3.1 字符數(shù)據(jù)類(lèi)型
(1) Oracle 支持 4 種字體類(lèi)型:CHAR、NCHAR、NVARCHAR2 和 VARCHAR2。CHAR 和 NCHAR 的最大長(zhǎng)度為 2000 字節(jié),
NVARCHAR2 和 VARCHAR2 最大長(zhǎng)度為 4000 字節(jié)。
(2)MySQL 和 Oracle 在字符型數(shù)據(jù)保存和讀取上存在一些不同。MySQL 的字符類(lèi)型,如 CHAR 和 VARCHAR 的長(zhǎng)度小于 65535 字節(jié)。Oracle 支持 4 種字體類(lèi)型:C HAR、NCHAR、NVARCHAR2 和 VARCHAR2。CHAR 和 NCHAR 的最大長(zhǎng)度為 2000 字節(jié),NVARCHAR2 和 VARCHAR2 最大長(zhǎng)度為 4000 字節(jié)。
(3.2.3.2 列默認(rèn)值)
MySQL 會(huì)處理列默認(rèn)值,不允許他為空,這點(diǎn)和 Oracle 不同。在 Oracle 中如果向表插入數(shù)據(jù),需要對(duì)有所有不允許為 NULL 列的值。
多數(shù)據(jù)庫(kù)遷移
如果多個(gè) MySQL 數(shù)據(jù)庫(kù)位于同一個(gè)數(shù)據(jù)庫(kù)服務(wù)上,支持遷移。
數(shù)據(jù)存儲(chǔ)概念
MySQL 的數(shù)據(jù)庫(kù)對(duì)應(yīng)于服務(wù)器上數(shù)據(jù)目錄內(nèi)的了目錄,這一數(shù)據(jù)存儲(chǔ)方式與多數(shù)據(jù)數(shù)據(jù)庫(kù)不同,也包括 Oracle。數(shù)據(jù)庫(kù)中的表對(duì)應(yīng)一個(gè)或者多個(gè)數(shù)據(jù)庫(kù)目錄下的文件,并取表存儲(chǔ)時(shí)的存儲(chǔ)引擎。
一個(gè) Oracle 數(shù)據(jù)庫(kù)包含一個(gè)或者多個(gè)表空間。表空間對(duì)應(yīng)數(shù)據(jù)在磁盤(pán)上的物理存儲(chǔ)。表空間是從一個(gè)或者多個(gè)數(shù)據(jù)文件開(kāi)始構(gòu)建的。數(shù)據(jù)文件是文件系統(tǒng)中的文件或者原始存儲(chǔ)的一塊空間。
語(yǔ)法上的區(qū)別:
主鍵:
mysql 一般使用自動(dòng)增長(zhǎng)類(lèi)型,在創(chuàng)建表的時(shí)候指定表的主鍵為 auto increment,主鍵就會(huì)自動(dòng)增長(zhǎng)。
Oracle 中沒(méi)有自動(dòng)增長(zhǎng),主鍵一般使用序列,插值時(shí)依次賦值即可
引號(hào)問(wèn)題:
Oracle 不使用雙引號(hào),會(huì)報(bào)錯(cuò)
mysql 則對(duì)引號(hào)沒(méi)有限制
分頁(yè)查詢:
MySQL 分頁(yè)查詢使用關(guān)鍵字 limit 來(lái)實(shí)現(xiàn)
Oracle 沒(méi)有實(shí)現(xiàn)分頁(yè)查詢的關(guān)鍵字,實(shí)現(xiàn)起來(lái)較復(fù)雜,在每個(gè)結(jié)果集中只有一個(gè) rownum 字段標(biāo)明它的位置,并且只能用 rownum = 某個(gè)數(shù),不能用 rownum = 某個(gè)數(shù),因?yàn)?ROWNUM 是偽列,在使用時(shí)所以需要為 ROWNUM 取一個(gè)別名,變成邏輯列,然后來(lái)操作
數(shù)據(jù)類(lèi)型:
mysql 中的整型:int(),字符串類(lèi)型:varchar()
Oracle 中的整形:number(),字符串類(lèi)型:varchar2()
到此,關(guān)于“MySQL 和 Oracle 的本質(zhì)區(qū)別”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!