MySQL基礎理論

MySQL基礎理論

mySQL (關(guān)系型數(shù)據(jù)庫管理系統(tǒng))

編輯 MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā)综苔,目前屬于 Oracle 旗下產(chǎn)品。MySQL是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一氓润,在WEB應用方面罢荡,MySQL是最好的 RDBMS(Relational Database ManagementSystem憨募,關(guān)系數(shù)據(jù)庫管理系統(tǒng)) 應用軟件紧索。

MySQL是一種關(guān)系數(shù)據(jù)庫管理系統(tǒng),關(guān)系數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中菜谣,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi)珠漂,這樣就增加了速度并提高了靈活性。

MySQL所使用的SQL語言是用于訪問數(shù)據(jù)庫的最常用標準化語言尾膊。MySQL 軟件采用了雙授權(quán)政策媳危,分為社區(qū)版和商業(yè)版,由于其體積小冈敛、速度快待笑、總體擁有成本低,尤其是開放源碼這一特點抓谴,一般中小型網(wǎng)站的開發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫暮蹂。

數(shù)據(jù)庫的發(fā)展史

- 萌芽階段-----文件系統(tǒng)

使用磁盤文件來存儲數(shù)據(jù)

- 初級階段-----第一代數(shù)據(jù)庫

出現(xiàn)了網(wǎng)狀模型、層次模型的數(shù)據(jù)庫

- 中級階段-----第二代數(shù)據(jù)庫

關(guān)系型數(shù)據(jù)庫和結(jié)構(gòu)化查詢語言

- 高級階段------新一代數(shù)據(jù)庫

“關(guān)系-對象”型數(shù)據(jù)庫

數(shù)據(jù)庫管理系統(tǒng)

  • 數(shù)據(jù)庫是數(shù)據(jù)的匯集癌压,它以一定的組織形式存于存儲介質(zhì)上

  • DBMS是管理數(shù)據(jù)庫的系統(tǒng)軟件仰泻,它實現(xiàn)數(shù)據(jù)庫系統(tǒng)的各種功能。是數(shù)據(jù)庫系統(tǒng)的核心滩届。

  • DBA:負責數(shù)據(jù)庫的規(guī)劃我纪、設計、協(xié)調(diào)維護和管理等工作

  • 應用程序指以數(shù)據(jù)庫為基礎的應用程序丐吓。

管理系統(tǒng)的優(yōu)缺點

- 管理系統(tǒng)的缺點

  1. 編寫應用程序不方便

  2. 數(shù)據(jù)冗余不可避免

  3. 應用程序依賴性

  4. 不支持對文件的并發(fā)訪問

  5. 數(shù)據(jù)間聯(lián)系弱

  6. 難以按用戶視圖表示數(shù)據(jù)

  7. 無安全控制功能

- 管理系統(tǒng)的優(yōu)點

  1. 相互關(guān)聯(lián)的數(shù)據(jù)的集合

  2. 較少的數(shù)據(jù)冗余

  3. 程序與數(shù)據(jù)相互對立

  4. 保證數(shù)據(jù)的安全、可靠

  5. 最大限度地保證數(shù)據(jù)的正確性

  6. 數(shù)據(jù)可以并發(fā)使用并能同時保證一致性

數(shù)據(jù)三要素

- 數(shù)據(jù)結(jié)構(gòu):

包括兩類趟据,一類是與數(shù)據(jù)類型彪笼、內(nèi)容衬以、性質(zhì)有關(guān)的對象,比如關(guān)系模型中的域、屬性和關(guān)系等田晚;另一類是與數(shù)據(jù)之間聯(lián)系有關(guān)的對象新娜,它從數(shù)據(jù)組織層表達數(shù)據(jù)記錄與字段的結(jié)構(gòu)

- 數(shù)據(jù)的操作:

  1. 數(shù)據(jù)提取:在數(shù)據(jù)集合中提取感興趣的內(nèi)容。(SELECT)
  2. 數(shù)據(jù)更新:變更數(shù)據(jù)庫中的數(shù)據(jù)勘伺。(INSERT、DELETE褂删、UPDATE

- 數(shù)據(jù)的約束條件:是一組完整性規(guī)則的集合

  1. 實體(行)完整性Entity integrity
  2. 域(列)完整性Domain Integrity
  3. 參考完整性Referential Integrity

數(shù)據(jù)規(guī)劃簡單流程

- 第一階段:收集數(shù)據(jù)飞醉,得到字

  1. 收集必要且完整的數(shù)據(jù)項

  2. 轉(zhuǎn)換成數(shù)據(jù)表的字段

- 第二階段:把字段分類,歸入表屯阀,建立表的關(guān)聯(lián)

  1. 關(guān)聯(lián):表和表間的關(guān)系

  2. 分割數(shù)據(jù)表并建立關(guān)聯(lián)的優(yōu)點

  3. 節(jié)省空間

  4. 減少輸入錯誤

  5. 方便數(shù)據(jù)修改

- 第三階段:

  1. 規(guī)范化數(shù)據(jù)庫

索引功能

索引是一種特殊的文件(InnoDB 數(shù)據(jù)表上的索引是表空間的一個組成部分)缅帘,它們包含著對數(shù)據(jù)表里所有記錄的引用指針。索引不是萬能的难衰,索引可以加快數(shù)據(jù)檢索操作钦无,但會使數(shù)據(jù)修改操作變慢。每修改數(shù)據(jù)記錄盖袭,索引就必須刷新一次失暂。為了在某種程度上彌補這一缺陷,許多 SQL 命令都有一個 DELAY_KEY_WRITE 項鳄虱。這個選項的作用是暫時制止 MySQL 在該命令每插入一條新記錄和每修改一條現(xiàn)有之后立刻對索引進行刷新弟塞,對索引的刷新將等到全部記錄插入/修改完畢之后再進行。在需要把許多新記錄插入某個數(shù)據(jù)表的場合醇蝴,DELAY_KEY_WRITE 選項的作用將非常明顯宣肚。另外,索引還會在硬盤上占用相當大的空間悠栓。因此應該只為最經(jīng)常查詢和最經(jīng)常排序的數(shù)據(jù)列建立索引霉涨。注意,如果某個數(shù)據(jù)列包含許多重復的內(nèi)容惭适,為它建立索引就沒有太大的實際效果笙瑟。

從理論上講,完全可以為數(shù)據(jù)表里的每個字段分別建一個索引癞志,但 MySQL 把同一個數(shù)據(jù)表里的索引總數(shù)限制為16個往枷。

索引類別

- 普通索引

普通索引(由關(guān)鍵字 KEY 或 INDEX 定義的索引)的唯一任務是加快對數(shù)據(jù)的訪問速度。因此凄杯,應該只為那些最經(jīng)常出現(xiàn)在查詢條件(WHERE column =)或排序條件(ORDER BY column)中的數(shù)據(jù)列創(chuàng)建索引错洁。只要有可能,就應該選擇一個數(shù)據(jù)最整齊戒突、最緊湊的數(shù)據(jù)列(如一個整數(shù)類型的數(shù)據(jù)列)來創(chuàng)建索引屯碴。

- 唯一索引

普通索引允許被索引的數(shù)據(jù)列包含重復的值。比如說膊存,因為人有可能同名导而,所以同一個姓名在同一個“員工個人資料”數(shù)據(jù)表里可能出現(xiàn)兩次或更多次忱叭。

如果能確定某個數(shù)據(jù)列將只包含彼此各不相同的值,在為這個數(shù)據(jù)列創(chuàng)建索引的時候就應該用關(guān)鍵字UNIQUE 把它定義為一個唯一索引今艺。這么做的好處:一是簡化了 MySQL 對這個索引的管理工作韵丑,這個索引也因此而變得更有效率;二是 MySQL 會在有新記錄插入數(shù)據(jù)表時虚缎,自動檢查新記錄的這個字段的值是否已經(jīng)在某個記錄的這個字段里出現(xiàn)過了撵彻;如果是,MySQL 將拒絕插入那條新記錄遥巴。也就是說千康,唯一索引可以保證數(shù)據(jù)記錄的唯一性。事實上铲掐,在許多場合拾弃,人們創(chuàng)建唯一索引的目的往往不是為了提高訪問速度,而只是為了避免數(shù)據(jù)出現(xiàn)重復摆霉。

- 主索引

在前面已經(jīng)反復多次強調(diào)過:必須為主鍵字段創(chuàng)建一個索引豪椿,這個索引就是所謂的“主索引”。主索引與唯一索引的唯一區(qū)別是:前者在定義時使用的關(guān)鍵字是 PRIMARY 而不是 UNIQUE携栋。

- 外鍵索引

如果為某個外鍵字段定義了一個外鍵約束條件搭盾,MySQL 就會定義一個內(nèi)部索引來幫助自己以最有效率的方式去管理和使用外鍵約束條件。

- 復合索引

索引可以覆蓋多個數(shù)據(jù)列婉支,如像 INDEX (columnA, columnB) 索引鸯隅。這種索引的特點是 MySQL 可以有選擇地使用一個這樣的索引。如果查詢操作只需要用到 columnA 數(shù)據(jù)列上的一個索引向挖,就可以使用復合索引 INDEX(columnA, columnB)蝌以。不過,這種用法僅適用于在復合索引中排列在前的數(shù)據(jù)列組合何之。比如說跟畅,INDEX (A,B溶推,C) 可以當做 A 或 (A,B) 的索引來使用徊件,但不能當做 B、C 或 (B,C) 的索引來使用蒜危。

MySQL體系結(jié)構(gòu)

image.png

大致理論就是這樣虱痕, 下次寫安裝流程與使用方法!辐赞!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末皆疹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子占拍,更是在濱河造成了極大的恐慌略就,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件晃酒,死亡現(xiàn)場離奇詭異表牢,居然都是意外死亡,警方通過查閱死者的電腦和手機贝次,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進店門崔兴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蛔翅,你說我怎么就攤上這事敲茄。” “怎么了山析?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵堰燎,是天一觀的道長。 經(jīng)常有香客問我笋轨,道長秆剪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任爵政,我火速辦了婚禮仅讽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘钾挟。我一直安慰自己洁灵,他們只是感情好,可當我...
    茶點故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布掺出。 她就那樣靜靜地躺著徽千,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蛛砰。 梳的紋絲不亂的頭發(fā)上罐栈,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天,我揣著相機與錄音泥畅,去河邊找鬼荠诬。 笑死,一個胖子當著我的面吹牛位仁,可吹牛的內(nèi)容都是我干的柑贞。 我是一名探鬼主播,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼聂抢,長吁一口氣:“原來是場噩夢啊……” “哼钧嘶!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起琳疏,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤有决,失蹤者是張志新(化名)和其女友劉穎闸拿,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體书幕,經(jīng)...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡新荤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了台汇。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苛骨。...
    茶點故事閱讀 38,768評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖苟呐,靈堂內(nèi)的尸體忽然破棺而出痒芝,到底是詐尸還是另有隱情,我是刑警寧澤牵素,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布严衬,位于F島的核電站,受9級特大地震影響两波,放射性物質(zhì)發(fā)生泄漏瞳步。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一腰奋、第九天 我趴在偏房一處隱蔽的房頂上張望单起。 院中可真熱鬧,春花似錦劣坊、人聲如沸嘀倒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽测蘑。三九已至,卻和暖如春康二,著一層夾襖步出監(jiān)牢的瞬間碳胳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工沫勿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留挨约,地道東北人。 一個月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓产雹,卻偏偏與公主長得像诫惭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蔓挖,可洞房花燭夜當晚...
    茶點故事閱讀 43,666評論 2 350

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