關(guān)系型數(shù)據(jù)庫(kù)介紹和初識(shí)Oracle

Q:什么是關(guān)系型數(shù)據(jù)庫(kù)匀归?
【拓展】簡(jiǎn)述關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)
關(guān)系型數(shù)據(jù)庫(kù)(Relational DataBase Management System)迫悠,簡(jiǎn)稱 RDBMS边锁。說(shuō)起關(guān)系型數(shù)據(jù)庫(kù)递宅,我們腦海中會(huì)立即浮現(xiàn)出 Oracle、MySQL港华、SQLServer 等數(shù)據(jù)庫(kù)脾歇,這些都是我們常用的關(guān)系型數(shù)據(jù)庫(kù)。

關(guān)系型數(shù)據(jù)庫(kù)逗旁,是指采用了關(guān)系模型來(lái)組織數(shù)據(jù)的數(shù)據(jù)庫(kù)嘿辟,其以行和列的形式存儲(chǔ)數(shù)據(jù),以便于用戶理解片效,關(guān)系型數(shù)據(jù)庫(kù)這一系列的行和列被稱為表红伦,一組表組成了數(shù)據(jù)庫(kù)。用戶通過(guò)查詢來(lái)檢索數(shù)據(jù)庫(kù)中的數(shù)據(jù)淀衣,而查詢是一個(gè)用于限定數(shù)據(jù)庫(kù)中某些區(qū)域的執(zhí)行代碼昙读。關(guān)系模型可以簡(jiǎn)單理解為二維表格模型,而一個(gè)關(guān)系型數(shù)據(jù)庫(kù)就是由二維表及其之間的關(guān)系組成的一個(gè)數(shù)據(jù)組織膨桥。

關(guān)系型數(shù)據(jù)庫(kù)最大的特點(diǎn)就是在其關(guān)系這個(gè)詞蛮浑,它可以保存數(shù)據(jù)庫(kù)中的各種關(guān)系。那么這個(gè)關(guān)系如何理解呢只嚣?我們就拿公司這個(gè)組織來(lái)講吧陵吸。

在公司里,我們有部門(mén)介牙、小組壮虫、員工這幾個(gè)實(shí)體,而這幾個(gè)實(shí)體之間都是有一定關(guān)系的。例如:一個(gè)部門(mén)能有多個(gè)小組囚似,一個(gè)小組有多個(gè)員工剩拢,所以部門(mén)和小組之間的關(guān)系是N:N的關(guān)系。于此類(lèi)似饶唤,小組與員工也是N:N的關(guān)系徐伐。

關(guān)系型數(shù)據(jù)庫(kù)的發(fā)展歷程
在1979年,Larry Ellison 使用匯編和C語(yǔ)言主導(dǎo)開(kāi)發(fā)了第一個(gè)商用關(guān)系型數(shù)據(jù)庫(kù) Oracle募狂。在此之后的接近16年內(nèi)的時(shí)間办素,Oracle 數(shù)據(jù)庫(kù)一路奔跑,成為了世界上最流行的關(guān)系型數(shù)據(jù)庫(kù)祸穷。

在1989年性穿,微軟(Microsoft)也發(fā)布了一個(gè)關(guān)系型數(shù)據(jù)庫(kù) SQL Server,但其同樣也是一個(gè)收費(fèi)的商業(yè)型數(shù)據(jù)庫(kù)雷滚。

直到1995年需曾,瑞典公司MySQL AB發(fā)布了 MySQL 數(shù)據(jù)庫(kù)的第一個(gè)版本,從此終結(jié)了關(guān)系型數(shù)據(jù)庫(kù)只能用 Oracle祈远、SQL Server 這些收費(fèi)軟件的神話呆万。

在 MySQL 誕生后,因?yàn)槠溟_(kāi)源车份、免費(fèi)的特性谋减,所以其得到了眾多中小使用者的擁護(hù),其用戶量增長(zhǎng)迅猛扫沼。而在這期間逃顶,MySQL的主人也幾易其手。

在2008年充甚,Sun 公司收購(gòu)了 MySQL AB 公司,同時(shí)也獲得了 MySQL 數(shù)據(jù)庫(kù)的管理權(quán)霸褒。在 2010 年的時(shí)候伴找,Oracle 公司收購(gòu)了 Sun 公司,獲得了 MySQL 的管理權(quán)废菱。

而就在 Oracle 收購(gòu) Sun 公司的當(dāng)天技矮,因?yàn)閾?dān)心被 Oracle 收購(gòu)后MySQL的前景會(huì)受到限制,被稱為 MySQL 之父的 Michael Widenius fork 了 MySQL 的一個(gè)分支殊轴,啟動(dòng)了 MariaDB 項(xiàng)目衰倦。

果不其然,在被收購(gòu)不久后旁理,MySQL隨即推出了相關(guān)的收費(fèi)版本樊零。雖然原來(lái)的免費(fèi)版本仍然可以使用,但在可預(yù)見(jiàn)的未來(lái),Oracle 投入到 MySQL 中的精力可能很有限驻襟。畢竟Oracle是一個(gè)商業(yè)公司夺艰,也是要養(yǎng)家糊口的。

現(xiàn)在我們可以了解到現(xiàn)在主流關(guān)系型數(shù)據(jù)庫(kù)的誕生和發(fā)展概況沉衣,主要可以分為下面幾個(gè)階段:

  • 1979年郁副,Oracle 數(shù)據(jù)庫(kù)誕生;
  • 1989年豌习,SQL Server 數(shù)據(jù)庫(kù)誕生存谎;
  • 1995年,MySQL 數(shù)據(jù)庫(kù)誕生肥隆;
    ……

Q:你認(rèn)為的關(guān)系型數(shù)據(jù)庫(kù)的市場(chǎng)份額排名既荚?
https://db-engines.com/en/ranking

DB-Engines上數(shù)據(jù)庫(kù)排名

Q:為什么使用Oracle?
MySQL這么好巷屿,為什么還有人用Oracle固以?
為什么大部分公司的數(shù)據(jù)庫(kù)系統(tǒng)仍然要用Oracle?我認(rèn)為Oracle之所以能占有這么大的市場(chǎng)份額嘱巾,是因?yàn)槠湓诤A繑?shù)據(jù)的處理上更具有優(yōu)勢(shì)憨琳,并且能提供一整套的數(shù)據(jù)存儲(chǔ)解決方案。

在一些非常大的企業(yè)里旬昭,這些企業(yè)通常擁有龐大的資金能力篙螟,所以它們會(huì)選擇用錢(qián)購(gòu)買(mǎi)解決方案,而不是自己雇傭人員使用 MySQL 去維護(hù)(當(dāng)然現(xiàn)在也有很多大廠傾向去Oracle而使用MySQL)问拘。
總的來(lái)說(shuō)遍略,Oracle比起MySQL具有下面的優(yōu)點(diǎn):

  • 眾多的數(shù)據(jù)庫(kù)特性,能滿足企業(yè)的多樣性需求骤坐;
  • 海量數(shù)據(jù)處理的優(yōu)勢(shì)绪杏,性能高(保持開(kāi)放平臺(tái)下TPC-D和TPC-C世界記錄);
  • 一整套數(shù)據(jù)解決方案纽绍;
  • 更加安全(最高認(rèn)證級(jí)別的ISO標(biāo)準(zhǔn)認(rèn)證)
    ……

因?yàn)镺racle有上面這些特性蕾久,所以O(shè)racle更加適合那些大型企業(yè)。因?yàn)檫@些企業(yè)資金充足拌夏,能承擔(dān)得起Oracle的昂貴費(fèi)用僧著。另一方面,這些企業(yè)的數(shù)據(jù)量也是非常龐大障簿,它們更注重?cái)?shù)據(jù)的安全性和高效存儲(chǔ)盹愚,并且關(guān)心的出現(xiàn)問(wèn)題的時(shí)候能快速解決,Oracle提供的一系列服務(wù)正好符合它們的需求站故。在國(guó)內(nèi)皆怕,金融機(jī)構(gòu)、政府部門(mén)、銀行端逼、醫(yī)院等機(jī)構(gòu)常選擇使用Oracle朗兵。

而對(duì)于一些中小型企業(yè)或者個(gè)人使用者來(lái)說(shuō),一方面Oracle軟件非常笨重顶滩,另一方面Oracle授權(quán)費(fèi)用昂貴余掖,對(duì)于它們來(lái)說(shuō)無(wú)法承受。而它們的數(shù)據(jù)庫(kù)又恰好不是特別大礁鲁,所以對(duì)于這些使用者來(lái)說(shuō)盐欺,使用MySQL已經(jīng)能夠解決它們的需求了。那么也就無(wú)需去付費(fèi)使用Oracle的數(shù)據(jù)庫(kù)了仅醇。如果單純從(關(guān)系型)數(shù)據(jù)庫(kù)性能來(lái)進(jìn)行比較的話冗美,Oracle無(wú)疑是最牛逼的,畢竟Oracle比MySQL誕生早了10多年析二,歷史地位在這里擺著呢粉洼,所以學(xué)習(xí)掌握Oracle是很有必要的。


Oracle常用的數(shù)據(jù)庫(kù)字段類(lèi)型如下:

字段類(lèi)型 中文說(shuō)明 限制條件 其他說(shuō)明
CHAR 固定長(zhǎng)度字符串 最大長(zhǎng)度2000 bytes
VARCHAR2 可變長(zhǎng)度的字符串 最大長(zhǎng)度4000 bytes 可做索引的最大長(zhǎng)度749
NCHAR 根據(jù)字符集而定的固定長(zhǎng)度字符串 最大長(zhǎng)度2000 bytes
NVARCHAR2 根據(jù)字符集而定的可變長(zhǎng)度字符串 最大長(zhǎng)度4000 bytes
DATE 日期(日-月-年) DD-MM-YY(HH-MM-SS) 無(wú)千蟲(chóng)問(wèn)題
TIMESTAMP 時(shí)間戳 可存儲(chǔ)時(shí)區(qū)和秒的小數(shù)位 0-9位小數(shù)叶摄,默認(rèn)是6位
LONG 超長(zhǎng)字符串 最大長(zhǎng)度2G(231-1)
RAW 固定長(zhǎng)度的二進(jìn)制數(shù)據(jù) 最大長(zhǎng)度2000 bytes 可存放多媒體圖象聲音等
LONG RAW 可變長(zhǎng)度的二進(jìn)制數(shù)據(jù) 最大長(zhǎng)度2G 同上
BLOB 二進(jìn)制數(shù)據(jù) 最大長(zhǎng)度4G
CLOB 字符數(shù)據(jù) 最大長(zhǎng)度4G
NCLOB 根據(jù)字符集而定的字符數(shù)據(jù) 最大長(zhǎng)度4G
BFILE 存放在數(shù)據(jù)庫(kù)外的二進(jìn)制數(shù)據(jù) 最大長(zhǎng)度4G
ROWID 數(shù)據(jù)表中記錄的唯一行號(hào) 10 bytes ********.****.****格式属韧,*為0或1
NROWID 二進(jìn)制數(shù)據(jù)表中記錄的唯一行號(hào) 最大長(zhǎng)度4000 bytes
NUMBER(P,S) 數(shù)字類(lèi)型 P為總位數(shù),S為小數(shù)位數(shù)
DECIMAL(P,S) 數(shù)字類(lèi)型 P為總位數(shù)蛤吓,S為小數(shù)位數(shù)
INTEGER 整數(shù)類(lèi)型 小的整數(shù)
FLOAT 浮點(diǎn)數(shù)類(lèi)型 NUMBER(38)宵喂,雙精度
REAL 實(shí)數(shù)類(lèi)型 NUMBER(63),精度更高

補(bǔ)充:varchar和varchar2區(qū)別

  • varchar是標(biāo)準(zhǔn)sql里面的会傲。 varchar2是Oracle提供的獨(dú)有的數(shù)據(jù)類(lèi)型锅棕;
  • varchar對(duì)于漢字占兩個(gè)字節(jié),對(duì)于英文是一個(gè)字節(jié)淌山,占的內(nèi)存新懔恰;varchar2當(dāng)字符集為UTF-8時(shí)泼疑,一個(gè)中文占三個(gè)字節(jié)德绿,當(dāng)字符集為ZHS16GBK時(shí),一個(gè)中文占兩個(gè)字節(jié)王浴;
  • varchar對(duì)空串不處理,varchar2將空串當(dāng)做null來(lái)處理梅猿;
  • varchar存放固定長(zhǎng)度的字符串氓辣,最大長(zhǎng)度是2000,varchar2是存放可變長(zhǎng)度的字符串袱蚓,最大長(zhǎng)度是4000钞啸;
  • 如果是要跟換不同的數(shù)據(jù)庫(kù),例如mysql,那么就用varchar体斩,如果就用oracle梭稚,那么用varchar2比較好一點(diǎn)。

Oracle和MySQL區(qū)別

  • MySQL查詢語(yǔ)句中可以沒(méi)有from絮吵,Oracle 必須有弧烤;
    eg:MySQL查詢當(dāng)前時(shí)間:SELECT NOW(); Oracle查詢當(dāng)前時(shí)間:SELECT SYSDATE FROM DUAL;
  • MySQL使用單引號(hào)和雙引號(hào)表示字符,Oracle只能使用單引號(hào)(sql標(biāo)準(zhǔn)中也是使用單引號(hào)表示字符)蹬敲;
  • MySQL分頁(yè)使用limit offset暇昂,Oracle分頁(yè)得借助rownum關(guān)鍵字;
  • MySQL自動(dòng)增長(zhǎng)auto_increment伴嗡,Oracle使用序列代替急波;
  • MySQL 和Oracle group by語(yǔ)法不同;
    ……

其他資料:
Oracle和MySQL的函數(shù)對(duì)比和常用區(qū)別
Oracle 高效分頁(yè)查詢SQL
Oracle數(shù)據(jù)庫(kù)查詢高效分頁(yè)


TODO 處理海量數(shù)據(jù)Oracle和MySQL的性能比較瘪校?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末澄暮,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子阱扬,更是在濱河造成了極大的恐慌泣懊,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件价认,死亡現(xiàn)場(chǎng)離奇詭異嗅定,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)用踩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)渠退,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人脐彩,你說(shuō)我怎么就攤上這事碎乃。” “怎么了惠奸?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵梅誓,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我佛南,道長(zhǎng)梗掰,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任嗅回,我火速辦了婚禮及穗,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘绵载。我一直安慰自己埂陆,他們只是感情好苛白,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著焚虱,像睡著了一般购裙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鹃栽,一...
    開(kāi)封第一講書(shū)人閱讀 51,292評(píng)論 1 301
  • 那天躏率,我揣著相機(jī)與錄音,去河邊找鬼谍咆。 笑死禾锤,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的摹察。 我是一名探鬼主播恩掷,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼供嚎!你這毒婦竟也來(lái)了黄娘?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤克滴,失蹤者是張志新(化名)和其女友劉穎逼争,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體劝赔,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡誓焦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了着帽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杂伟。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖仍翰,靈堂內(nèi)的尸體忽然破棺而出赫粥,到底是詐尸還是另有隱情,我是刑警寧澤予借,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布越平,位于F島的核電站,受9級(jí)特大地震影響灵迫,放射性物質(zhì)發(fā)生泄漏秦叛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一瀑粥、第九天 我趴在偏房一處隱蔽的房頂上張望挣跋。 院中可真熱鬧,春花似錦利凑、人聲如沸浆劲。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)牌借。三九已至,卻和暖如春割按,著一層夾襖步出監(jiān)牢的瞬間膨报,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工适荣, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留现柠,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓弛矛,卻偏偏與公主長(zhǎng)得像够吩,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子丈氓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容