全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)MySQL總結(jié)_第1頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)MySQL總結(jié)_第2頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)MySQL總結(jié)_第3頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)MySQL總結(jié)_第4頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)MySQL總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第一章數(shù)據(jù)庫(kù)技術(shù)的的基本概念與方法1.1基本概念數(shù)據(jù):描述事物的符號(hào)記錄數(shù)據(jù)庫(kù)中存儲(chǔ)的基本對(duì)象數(shù)據(jù)的描述形式還不能完全表達(dá)其內(nèi)容,需要經(jīng)過(guò)解釋數(shù)據(jù)庫(kù):長(zhǎng)期儲(chǔ)存在計(jì)算機(jī)內(nèi)的、有組織的、可共享的數(shù)據(jù)集合數(shù)據(jù)庫(kù)中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲(chǔ),具有較小的冗余度、較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性數(shù)據(jù)庫(kù)管理系統(tǒng):數(shù)據(jù)定義功能、數(shù)據(jù)操縱功能、數(shù)據(jù)庫(kù)的運(yùn)行管理、數(shù)據(jù)庫(kù)的建立和維護(hù)功能、提供方便有效存儲(chǔ)數(shù)據(jù)庫(kù)信息的接口和工具數(shù)據(jù)庫(kù)系統(tǒng):在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫(kù)后的系統(tǒng)一般由數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)、應(yīng)用開發(fā)工具、應(yīng)用系統(tǒng)、數(shù)據(jù)庫(kù)管理員和用戶構(gòu)成1.2數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)數(shù)據(jù)結(jié)構(gòu)化數(shù)據(jù)冗余度小數(shù)據(jù)共享性好數(shù)據(jù)獨(dú)立性高:物理獨(dú)立性、邏輯獨(dú)立性數(shù)據(jù)由DBMS統(tǒng)一管理和控制1.3數(shù)據(jù)庫(kù)系統(tǒng)的結(jié)構(gòu)從數(shù)據(jù)庫(kù)用戶試圖的視角來(lái)看:三級(jí)模式結(jié)構(gòu)從數(shù)據(jù)庫(kù)管理系統(tǒng)的角度來(lái)看:集中式結(jié)構(gòu)、分布式結(jié)構(gòu)、客戶/服務(wù)器結(jié)構(gòu)、并行結(jié)構(gòu)從數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用的角度來(lái)看:客戶/服務(wù)器結(jié)構(gòu)、瀏覽器/服務(wù)器結(jié)構(gòu)1.3.1數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)由模式、外模式河內(nèi)模式三級(jí)構(gòu)成模式:邏輯模式或概念模式對(duì)數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述外模式:子模式或用戶模式對(duì)數(shù)據(jù)庫(kù)用戶能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述內(nèi)模式:存儲(chǔ)模式對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)方法的描述一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)內(nèi)模式1.3.2三級(jí)模式結(jié)構(gòu)的兩級(jí)映像與兩級(jí)數(shù)據(jù)獨(dú)立性外模式/模式映像:同一個(gè)模式可以有任意多個(gè)外模式對(duì)每一個(gè)外模式,數(shù)據(jù)庫(kù)系統(tǒng)都有一個(gè)外模式/模式映像邏輯獨(dú)立性:模式發(fā)生改變,改變各個(gè)外模式/模式映像作相應(yīng)改變,外模式保持不變,應(yīng)用程序不必修改模式/內(nèi)模式映像:唯一物理獨(dú)立性:存儲(chǔ)結(jié)構(gòu)改變,改變模式/內(nèi)模式映像,保持模式不變1.3.3數(shù)據(jù)庫(kù)系統(tǒng)的運(yùn)行與維護(hù)結(jié)構(gòu)C/S結(jié)構(gòu):客戶端/前臺(tái)/表示層:完成與數(shù)據(jù)庫(kù)使用者的交互任務(wù)服務(wù)器/后臺(tái)/數(shù)據(jù)層:主要負(fù)責(zé)數(shù)據(jù)管理單機(jī)方式、網(wǎng)絡(luò)方式B/S結(jié)構(gòu):基于Web應(yīng)用的客戶/服務(wù)器結(jié)構(gòu)、三層客戶/服務(wù)器結(jié)構(gòu)表示層:瀏覽器處理層/中間層:處理數(shù)據(jù)庫(kù)使用者的具體應(yīng)用邏輯數(shù)據(jù)層1.4數(shù)據(jù)模型數(shù)據(jù)模型:對(duì)現(xiàn)實(shí)世界中數(shù)據(jù)特征的抽象,描述數(shù)據(jù)的共性數(shù)據(jù)模型滿足三方面的要求:比較真實(shí)的模擬現(xiàn)實(shí)世界、容易為人們所理解、便于在計(jì)算機(jī)上實(shí)現(xiàn)分為三層:物理層:物理數(shù)據(jù)模型,數(shù)據(jù)物理存儲(chǔ)結(jié)構(gòu)和存儲(chǔ)方法邏輯層:邏輯數(shù)據(jù)模型/數(shù)據(jù)模型,層次模型、網(wǎng)狀模型、關(guān)系模型、面型對(duì)象模型概念層:概念數(shù)據(jù)模型/概念模型,獨(dú)立于任何DBMS,但容易向DBMS所支持的邏輯數(shù)據(jù)模型轉(zhuǎn)換1.4.1概念模型實(shí)體、屬性、碼、域、實(shí)體型、實(shí)體集、聯(lián)系:一對(duì)一、一對(duì)多、多對(duì)多E-R圖1.4.2關(guān)系模型用二維表結(jié)構(gòu)來(lái)表示實(shí)體及實(shí)體間聯(lián)系的模型關(guān)系、元組、屬性、域、分量、關(guān)系模式:關(guān)系名(屬性1,屬性2,…,屬性n)、表、行、列、主鍵、外鍵、數(shù)據(jù)類型關(guān)系規(guī)范化:1NF:表中每個(gè)列只包含具有原子性的值,關(guān)系的每個(gè)分量必須是不可分的數(shù)據(jù)項(xiàng)2NF:沒有部分函數(shù)依賴,表中不存在非主鍵的列依賴于組合主鍵某個(gè)部分的現(xiàn)象3NF:沒有傳遞函數(shù)依賴,表中不存在任何非主鍵列與其他非主鍵列相互關(guān)聯(lián)的現(xiàn)象BCNF:表中不存在主鍵列對(duì)主鍵的部分函數(shù)依賴和傳遞函數(shù)依賴低一級(jí)的關(guān)系模式,通過(guò)模式分解消除數(shù)據(jù)依賴中不合適的部分,使模式中的各關(guān)系模式達(dá)到某種程度的分離,可以轉(zhuǎn)換為若干個(gè)高一級(jí)的關(guān)系模式的集合1.5數(shù)據(jù)庫(kù)設(shè)計(jì)需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)實(shí)施、數(shù)據(jù)庫(kù)運(yùn)行與維護(hù)1.5.1概念結(jié)構(gòu)設(shè)計(jì)1.5.2邏輯結(jié)構(gòu)設(shè)計(jì)把E-R圖轉(zhuǎn)換為關(guān)系模型一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式一個(gè)一對(duì)一的聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一端對(duì)應(yīng)的關(guān)系模式合并一個(gè)一對(duì)多的聯(lián)系可轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與N端對(duì)應(yīng)的關(guān)系模式合并一個(gè)多對(duì)多的聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式三個(gè)或三個(gè)以上實(shí)體間的聯(lián)系一個(gè)多元聯(lián)系可以轉(zhuǎn)換為一個(gè)關(guān)系模式具有相同碼的關(guān)系模式可以合并1.5.3物理設(shè)計(jì)對(duì)物理結(jié)構(gòu)進(jìn)行評(píng)價(jià)的重點(diǎn)是時(shí)間和空間的效率第二章MySQL概述2.1MySQL系統(tǒng)特性2.2MySQL服務(wù)器的安裝和配置MySQL安裝包括典型安裝、定制安裝和完全安裝三種安裝類型在MySQL安裝過(guò)程中,若選用“啟用TCP/IP網(wǎng)絡(luò)”,則MySQL會(huì)默認(rèn)選用的端口號(hào)是3306MySQL安裝成功后,在系統(tǒng)中會(huì)默認(rèn)建立一個(gè)root用戶2.3服務(wù)器的啟動(dòng)與關(guān)閉2.4MySQL客戶端管理工具M(jìn)ySQL命令行客戶端MySQL客戶端程序與實(shí)用工具M(jìn)ySQL圖形化管理工具2.5MySQL語(yǔ)言結(jié)構(gòu)MySQL語(yǔ)言的組成:數(shù)據(jù)定義語(yǔ)言:create、alter、drop數(shù)據(jù)操縱語(yǔ)言:select、insert、update、delete數(shù)據(jù)控制語(yǔ)言:grant、revokeMySQL擴(kuò)展增加的語(yǔ)言要素:常量、變量(用戶變量前@,系統(tǒng)變量前@@)、運(yùn)算符、表達(dá)式、內(nèi)置函數(shù)第三章數(shù)據(jù)庫(kù)和表3.1數(shù)據(jù)庫(kù)的創(chuàng)建與使用3.1.1創(chuàng)建數(shù)據(jù)庫(kù)Createdatabase/schema(ifnotexists)***((default)characterset=***(default)collate=***);3.1.2選擇數(shù)據(jù)庫(kù)Use***;再用createdatabase語(yǔ)句創(chuàng)建了數(shù)據(jù)庫(kù)后,該數(shù)據(jù)庫(kù)不會(huì)自動(dòng)成為當(dāng)前數(shù)據(jù)庫(kù)3.1.3修改數(shù)據(jù)庫(kù)Alterdatabase/schema(***)(default)characterset=***(default)collate=***;修改數(shù)據(jù)庫(kù)默認(rèn)字符集或校對(duì)規(guī)則,必須刪除并重新創(chuàng)建使用數(shù)據(jù)庫(kù)的默認(rèn)參數(shù)的存儲(chǔ)過(guò)程Updatedatadirectoryname3.1.4刪除數(shù)據(jù)庫(kù)Dropdatabase/schema(ifexists)***;3.1.5查看數(shù)據(jù)庫(kù)Showdatabases/schemas(like‘***’/where***);3.2創(chuàng)建和操縱表3.2.1創(chuàng)建表創(chuàng)建定義、表選項(xiàng)、分區(qū)選項(xiàng)Create(temporary)table(ifnotexists)customers(Cust_idintnotnullauto_increment,Cust_namechar(50)notnull,Cust_sexchar(1)notnulldefault0,Cust_addresschar(50)null,Cust_contactchar(50)null,Primarykey(cust_id))engine=InnoDB;每個(gè)表只能有一個(gè)auto_increment列,并且它必須被索引,其值可以覆蓋3.2.2更新表增加或刪減列、創(chuàng)建或取消索引、更改原有列的數(shù)據(jù)類型、重新命名列或表、更改表的評(píng)注和表的引擎類型Alter(ignore)table***+…Addcolumn:altertablemysql_test.customersAddcolumncust_citychar(10)notnulldefault‘Wuhan’aftercust_sex;First/after類似:addprimarykey(首先刪除表中已有的主鍵)、addforeignkey、addindexChangecolumn:altertablemysql_test.customersChangecust_sexsexchar(1)nulldefault‘M’;Altercolumn:修改或刪除表中指定列的默認(rèn)值A(chǔ)ltertablemysql_test.customersAltercolumncust_citysetdefault‘Beijing’;Modifycolumn:只會(huì)修改制定列的數(shù)據(jù)類型,而不會(huì)干涉它的列名Altertablemysql_test.customersModifycolumncust_namechar(20)first;First/afterDropcolumn:類似:dropprimarykey、dropfoteignkey、dropindexRenameto:altertablemysql_test.customersRenametomysql_test.backup_customers;3.2.3重命名表Renametable***to***可以同時(shí)重命名多個(gè)表3.2.4復(fù)制表Create(temporary)table(isnotexists)***like***Asselect復(fù)制表的內(nèi)容,但索引和完整性約束不會(huì)被復(fù)制3.2.5刪除表Drop(temporary)table(ifexists)***(restrict/cascade);3.2.6查看表顯示表的名稱:show(full)tables(from/in***)(like‘***’/where…);顯示表的結(jié)構(gòu):show(full)columnsfrom/in***(from/in***)(like‘***’/where…);Describe/desc***(***);第四章表數(shù)據(jù)的基本操作4.1插入表數(shù)據(jù)Insert語(yǔ)句:insert(low_priority/delayed/high_priority)(ignore)(into)***values/value***(onduplicatekeyupdate***=***,…);Insert(…)(…)(into)***set***=***/default(onduplicatekeyupdate…);Insert(…)(…)(into)***select…(onduplicatekeyupdate…);Replace語(yǔ)句:在插入數(shù)據(jù)前將表中與待插入的新紀(jì)錄相沖突的舊記錄刪除4.2刪除表數(shù)據(jù)Delete語(yǔ)句:從單個(gè)表中刪除數(shù)據(jù):delete(low_priority)(quick)(ignore)from***(where…)(orderby…)(limit…);從多個(gè)表中刪除數(shù)據(jù):Delete(…)***,***,…from***(where…);刪除from子句之前表中對(duì)應(yīng)的行Delete(…)from***,…using***(where…);刪除from子句之中的表中對(duì)應(yīng)的行Deletetb1,tb2fromtb1,tb2,tb3wheretb1.id=tb2.idandtb2.id=tb3.id;Deletefromtb1,tb2usingtb1,tb2,tb3wheretb1.id=tb2.idandtb2.id=tb3.id;Truncate語(yǔ)句:從表中刪除所有的行Truncate(table)***;對(duì)于參與了索引和視圖的表,不能用truncate語(yǔ)句刪除數(shù)據(jù)4.3修改表數(shù)據(jù)修改單個(gè)表:update(low_priority)(ignore)***set…(where…)(order…)(limit…);修改多個(gè)表:updatetb1,=’李明’,=’張亮’wheretb1.id=tb2.id;第五章數(shù)據(jù)庫(kù)的查詢5.1select語(yǔ)句5.2列的選擇與指定選擇指定的列定義并使用列的別名:selectcust_name,cust_addressas‘地址’frommysql_test.customers;自定義的列別名中有空格,必須用單引號(hào)將列別名括起來(lái)列別名不允許出現(xiàn)在where子句中替換查詢結(jié)果集中的數(shù)據(jù):selectcust_nameCaseWhencust_sex=’M’then’男’Else’女’Endas性別Frommysql_test.customers;計(jì)算列值:selectcust_name,cust_id+100frommysql_test.customers;聚合函數(shù)5.3from子句與鏈接表交叉連接:select*fromtb1crossjointb2;Select*fromtb1,tb2;內(nèi)連接:select…from***(inner)join***on…;Straight_join類似,其后不能使用using,只能用on設(shè)置連接條件相等連接不等連接自連接:需要在一個(gè)表中查找有相同列值的行要為表指定兩個(gè)不同的別名,且對(duì)所有查詢的引用均必須使用表別名限定自然連接:連接的列在兩張表中名稱相同Naturaljoin外連接:一定會(huì)提供數(shù)據(jù)行,無(wú)論該行能否在另外一個(gè)表中找出相匹配的行左外連接:left(outer)join,右外連接:right(outer)join5.4where子句比較運(yùn)算字符串匹配:通配符:%、_可在搜索模式后用關(guān)鍵字escape和一個(gè)指定的轉(zhuǎn)義字符,臨時(shí)改變通配符的作用和意義Select*frommysql_test.customerswherecust_addresslike‘%#_%’escape‘#’;文本匹配:rlike/regexp(binary)基本字符匹配:select*frommysql_test.customerswherecust_addressregexp‘市’;選擇匹配:分隔符‘|’范圍匹配:[3-8],[a-p]特殊字符匹配:轉(zhuǎn)義字符‘//’字符類匹配:將常用的數(shù)字、字符等定義成一個(gè)預(yù)定義的字符集,直接使用[:upper:]重復(fù)匹配使用定位符匹配:^文本的開始、$文本的結(jié)尾判定范圍:between…and…In:最主要的作用是表達(dá)子查詢Select*fromcustomerswherecust_idin(901,902,903);判定空值:isnull子查詢:表子查詢、行子查詢、列子查詢、標(biāo)量子查詢結(jié)合關(guān)鍵字in使用:子查詢只返回一列數(shù)據(jù)結(jié)合比較運(yùn)算符使用:all、some/any結(jié)合關(guān)鍵字exists使用:主要用于判定子查詢的結(jié)果集是否為空子查詢通??梢愿臑楸淼逆溄?,只是兩者的執(zhí)行性能會(huì)有所差異5.5groupby子句與分組數(shù)據(jù)Groupby***(asc/desc)(withrollup);Withrollup包括分組匯總行,以及所有分組的整體匯總行除聚合函數(shù)外,select語(yǔ)句中的每個(gè)列都必須在groupby子句中給出Selectcust_address,cust_sex,count(*)as‘人數(shù)’Frommysql_test.customersGroupbycust_address,cust_sexWithrollup;5.6having子句Having子句用來(lái)過(guò)濾分組與where子句類似,Having子句中的條件可以包含聚合函數(shù),where子句中不可以Selectcust_name,cust_addressFrommysql.customersGroupbycust_address,cust_nameHavingcount(*)<=3;5.7orderby子句Orderby***(asc/desc);5.8limit子句使用limit子句限制被select語(yǔ)句返回的行數(shù)第5位客戶開始的3位客戶Selectcust_id,cust_namefrommysql_test.customersOrderbycust_idLimit4,3;Selectcust_id,cust_nsmefrommysql_test.customersOrderbycust_idLimit3offset4;5.9union語(yǔ)句與聯(lián)合查詢Union語(yǔ)句中的每個(gè)select查詢必須包含相同的列、表達(dá)式或聚合函數(shù)第一個(gè)select語(yǔ)句中被使用的列名會(huì)被作為union語(yǔ)句結(jié)果集的列名稱只能使用一條orderby子句或limit子句,且必須置于最后一條select語(yǔ)句之后類有多個(gè)where子句的單條select語(yǔ)句,unionall可以完成where子句完成不了的工作第六章索引數(shù)據(jù)庫(kù)性能調(diào)優(yōu)技術(shù)的基礎(chǔ)6.1索引概述6.2索引的存儲(chǔ)與分類索引在存儲(chǔ)引擎中實(shí)現(xiàn),每種存儲(chǔ)引擎所支持的索引類型不一定完全相同索引存儲(chǔ)方式不同:B-樹索引:索引的使用必須遵循“最左邊前綴”原則哈希索引:memory存儲(chǔ)引擎,heap存儲(chǔ)引擎支持索引用途:普通索引:關(guān)鍵字index/key唯一性索引:unique主鍵:primary,主鍵是一種唯一性索引全文索引:fulltext空間索引單列索引/組合索引索引策略對(duì)應(yīng)的索引類型:聚集索引:一個(gè)表只能有一個(gè)聚集索引覆蓋索引:6.3索引的創(chuàng)建Createindex語(yǔ)句:create(online/offline)(unique/fulltext/spatial)index***(usingbtree/hash)on***(***(length)(asc/desc),….);不能創(chuàng)建主鍵Createtable語(yǔ)句:(constraint***)primarykey***(***,…)Index/key***(***,…)(constraint***)unique(index/key)***(***,…)Fulltext/spatial(idex/key)***(***,…)(constraint***)foreignkey***(***,…)…Altertable語(yǔ)句:add+上述語(yǔ)句6.4索引的查看Show(index/indexes/keys)from/in***(from/in***)(where…);6.5索引的刪除Dropindex語(yǔ)句:drop(online/offline)index***on***;Alterindex語(yǔ)句:altertable***dropprimarykey;Dropindex***;Dropforeignkey***;6.6對(duì)索引的進(jìn)一步說(shuō)明第七章視圖7.1視圖概述7.2創(chuàng)建視圖Create(orreplace)(algorithm=undefined/merge/temptable)(definer=***)(sqlsecurity/definer/invoker)view***(***,…)asselect…(with(cascaded/local)checkoption);7.3刪除視圖Dropview(ifexists)***,…(restrict/cascsde);7.4修改視圖定義類createviewalter/先dropview,再createview/createorreplaceview7.5查看視圖定義Showcreateview***;7.6更新視圖數(shù)據(jù)可更新的視圖要求該視圖中的行和基礎(chǔ)表中的行之間具有一對(duì)一的關(guān)系Insert語(yǔ)句通過(guò)視圖向基礎(chǔ)表插入數(shù)據(jù)Update語(yǔ)句通過(guò)視圖修改基礎(chǔ)表的數(shù)據(jù)Delete語(yǔ)句通過(guò)視圖刪除基礎(chǔ)表的數(shù)據(jù)7.7查詢視圖數(shù)據(jù)7.8對(duì)視圖的進(jìn)一步說(shuō)明視圖不能索引,也不能有關(guān)聯(lián)的觸發(fā)器、默認(rèn)值和規(guī)則視圖可以和表一起使用第八章數(shù)據(jù)完整性約束與表維護(hù)語(yǔ)句8.1數(shù)據(jù)完整性約束8.1.1定義完整性約束各種完整性約束是數(shù)據(jù)庫(kù)關(guān)系模式定義的一部分實(shí)體完整性:關(guān)系的主屬性,即主碼的組成不能為空主鍵約束:primarykey候選鍵約束:候選鍵的值必須是唯一的且不能為nullunique一個(gè)表只能有一個(gè)主鍵,可以有多個(gè)候選鍵參照完整性:foreignkey(***,…)references***(***(length)(asc/desc),…)(matchfull/matchpartial/matchsimple)(ondeleterestrict/cascade/setnull/noaction)(onupdate…);用戶定義完整性:某一具體應(yīng)用所涉及的數(shù)據(jù)應(yīng)滿足的要求非空約束:notnullCheck約束:check+SQL表達(dá)式基于列的check約束:cust_idintnotnullcheck(cust_idin(selectcust_idfromcustomers)),基于表的check約束:check(order>=2000andorder_amount<=5)8.1.2命名完整性約束在完整性約束的定義說(shuō)明之前加上關(guān)鍵字constraint和該約束的名字只能給基于表的完整性約束指定名字,無(wú)法給基于列的完整性約束指定名字8.1.3更新完整性約束Altertable***dropconstraint…;Addconstraint…;完整性約束不能直接修改,先用altertable刪除該約束,再增加一個(gè)新約束8.2表維護(hù)語(yǔ)句MySQL數(shù)據(jù)優(yōu)化的基礎(chǔ)Analyzetable:修復(fù)cardinality索引散列程度analyze(no_write_to_binlog/local)table***,…;Checktable:檢查一個(gè)或多個(gè)表是否有錯(cuò)誤checktable***,…(forupdate/quick/fast/medium/entended/changed);Checksumtable:對(duì)數(shù)據(jù)庫(kù)中的每一個(gè)表計(jì)算校驗(yàn)和Checksumtable***,…(quick/extended);Optimizetable:重新利用未使用的空間Optimize(no_write_to_binlog/local)table***,…;Repairtable:嘗試修復(fù)一個(gè)或多個(gè)可能被損壞的表Repair(no_write_to_binlog/local)table(quick)(extended)(use_frm)第九章觸發(fā)器9.1觸發(fā)器一個(gè)指定關(guān)聯(lián)到一個(gè)表的數(shù)據(jù)庫(kù)對(duì)象,當(dāng)對(duì)某一個(gè)表的特定時(shí)間出現(xiàn)時(shí),它會(huì)被激活響應(yīng)insert、update和delete語(yǔ)句而自動(dòng)執(zhí)行的一條MySQL語(yǔ)句,其他語(yǔ)句不支持觸發(fā)9.2創(chuàng)建觸發(fā)器Create(definer=user/current_use)trigger***before/afterinsert…/update…/delete…on***foreachrow…;不能將觸發(fā)器與臨時(shí)表或視圖聯(lián)系起來(lái)同一個(gè)表不能勇于兩個(gè)具有相同觸發(fā)時(shí)刻和事件的觸發(fā)期單一觸發(fā)器不能與多個(gè)事件或多個(gè)表關(guān)聯(lián)Showtriggers(from/in***)(like‘***’/where…);Createcustomers_insert_triggerafterinsertonmysl_test.customersforeachrowset@str=’onecustomeradded!’;9.3刪除觸發(fā)器Droptrigger(ifexists)***;觸發(fā)器不能更新或覆蓋,修改必須先刪除再創(chuàng)建9.4使用觸發(fā)器Insert觸發(fā)器:在insert觸發(fā)器代碼內(nèi),可引用一個(gè)名為new的虛擬表,來(lái)訪問(wèn)被插入的行,new的值可以被更新Createtriggermysql_test.customers_insert_triggerafterinsertonmysql_test.customersforeachrowset@str=new.cust_id;Delete觸發(fā)器:在delete觸發(fā)器代碼內(nèi),可以引用一個(gè)名為old的虛擬表,來(lái)訪問(wèn)被刪除的行,old中的值是只讀的,不能被更新Update觸發(fā)器:在update觸發(fā)器代碼內(nèi),可引用一個(gè)名為old的虛擬表,來(lái)訪問(wèn)以前的值,也可以引用一個(gè)new的虛擬表訪問(wèn)新更新的值當(dāng)觸發(fā)器涉及對(duì)觸發(fā)表自身的更新操作時(shí),只能使用beforeupdate觸發(fā)器,而afterupdate觸發(fā)器將不被允許Createtriggermysql_test.customers_update_triggerbeforeupdateonmysql_test.customersforeachrowsetnew.cust_address=old.cust_contact;9.5對(duì)觸發(fā)器的進(jìn)一步說(shuō)明第十章事件10.1事件時(shí)間調(diào)度器臨時(shí)觸發(fā)器,基于特定時(shí)間周期來(lái)執(zhí)行某些任務(wù),觸發(fā)器基于某個(gè)表所產(chǎn)生的事件觸發(fā)的10.2創(chuàng)建事件Create(definer=user/current_user)event(ifnotexists)***onscheduleat…+interval…/every…(starts…(+interval…))(ends…(+interval…))(oncompletion(not)preserve)(enable/disable/disableonslave)(comment‘…’)do(begin)…(end);10.3修改事件Alterevent類create可以使用一條alterevent語(yǔ)句讓一個(gè)事件關(guān)閉或再次讓其活動(dòng)Altereventevent_insertdiable;Altereventevent_insertenable;Altereventevent_insertrenametoe_insert;10.4刪除事件Dropevent(ifexists)***;第十一章存儲(chǔ)過(guò)程與存儲(chǔ)函數(shù)11.1存儲(chǔ)過(guò)程一組為了完成某特定功能的SQL語(yǔ)句集,一段存放在數(shù)據(jù)庫(kù)中的代碼,由聲明式的SQL語(yǔ)句和過(guò)程式的SQL語(yǔ)句組成11.1創(chuàng)建存儲(chǔ)過(guò)程Create(definer=user/current_user)procedure***((in/out/inout)***type,…)(comment’…’/languagesql/(not)deterministic/(containssql/nosql/readssqldata/modifyiessqldata)/sqlsecurity(definer/invoker)begin…end;Delimiter$$Createproceduresp_update_sex(intcidint,intcsexchar(1))BeginUpdatecustomerssetcust_sex=csexwherecust_id=cid;End$$Showprocedurestatus;Showcreateprocedure***;11.1.2存儲(chǔ)過(guò)程體局部變量:declare***type(default…);只能在存儲(chǔ)過(guò)程體的begin…end語(yǔ)句塊中聲明,在存儲(chǔ)過(guò)程體的開頭處聲明Set語(yǔ)句:為局部變量賦值Select…into語(yǔ)句:把選定的列的值直接存儲(chǔ)到局部變量中Select語(yǔ)句返回的結(jié)果集只能有一行數(shù)據(jù)流程控制語(yǔ)句:條件判斷語(yǔ)句:if…else(endif)case(endcase)循環(huán)控制語(yǔ)句:while…do…repeat…until…loop…leaveiterate游標(biāo):被select語(yǔ)句檢索出來(lái)的結(jié)果集聲明游標(biāo):declare***dursorforselect…;打開游標(biāo):open***;讀取游標(biāo):fetch***into…;關(guān)閉游標(biāo):close***;11.1.3調(diào)用存儲(chǔ)過(guò)程Call(***,…);11.1.4修改存儲(chǔ)過(guò)程可以修改選項(xiàng)修改內(nèi)容,先刪除,再創(chuàng)建11.1.5刪除存儲(chǔ)過(guò)程Dropprocedurefunction(ifexists)***;11.2存儲(chǔ)函數(shù)存儲(chǔ)函數(shù)不能擁有輸出參數(shù),因?yàn)榇鎯?chǔ)該函數(shù)本身就是輸出參數(shù)可直接對(duì)存儲(chǔ)函數(shù)進(jìn)行調(diào)用,且不需要使用call語(yǔ)句11.2.1創(chuàng)建存儲(chǔ)函數(shù)Create(definer=user/current_user)function***(***,…)returnstypecomment’…’/languagesql/(not)deterministic/(containssql/nosql/readssqldata/modifiessqldata)/sqlsecurity(definer/invoker);11.2.2調(diào)用存儲(chǔ)函數(shù)Select***(***,…);11.2.3刪除存儲(chǔ)函數(shù)Dropfunction(ifexists)***;11.2.4修改存儲(chǔ)函數(shù)同存儲(chǔ)過(guò)程第十二章訪問(wèn)控制與安全管理12.1用戶賬號(hào)管理12.1.1創(chuàng)建用戶賬號(hào)Createuser***(indentifiedby(password)’…’/identifiedwith…);12.1.2刪除用戶Dropuser,…;12.1.3修改用戶賬號(hào)Renameuser***to***,…;12.1.4修改用戶口令Setpassword(foruser)=password(‘…’)/’…’;12.2賬戶權(quán)限管理Showgrantsfor***;12.2.1權(quán)限的授予Grantselect/update/delete/insert/create/alter/…(***,…)ontable/function/procedure***to***,…(requirenone….And…)(with…);表權(quán)限、列權(quán)限、數(shù)據(jù)庫(kù)權(quán)限、用戶權(quán)限12.2.2權(quán)限的轉(zhuǎn)移與限制轉(zhuǎn)移:withgrantoption限制:withmax_queries_per_hour…/max_update_per_hour…/max_connections_per_hour…/max_user_connections…12.2.3權(quán)限的撤銷Revokeselect/update/delete/insert/create/alter/…(***,…)ontable/function/procedure***from***,…;Revokeallprivileges,grantoptionfrom***,…;第十三章備份與恢復(fù)13.1數(shù)據(jù)庫(kù)備份與恢復(fù)13.2數(shù)據(jù)庫(kù)備份與恢復(fù)的方法13.2.1使用MySQL語(yǔ)句備份和恢復(fù)表數(shù)據(jù)只能導(dǎo)入導(dǎo)出數(shù)據(jù)的內(nèi)容,而不包括表的結(jié)構(gòu)Selectinto…outfile:select*intooutfile‘***’(characterset…)(fields(terminatedby‘…’)((optionally)enclosedby‘…’)(escapeby‘…’))(linesterminatedby‘…’);Loaddata…infile:loaddata(low_priority/concurrent)(local)infile‘***’(replace/ignore)intotable***(fields(terminatedby‘…’)((optionally)enclosedby‘…’)(escapeby‘…’))(lines(startingby‘…’)(terminatedby‘…’))(ignore…lines);Locktables***readlocktables***writeunlocktables13.2.2使用MySQL客戶端實(shí)用程序備份和恢復(fù)數(shù)據(jù)可以備份數(shù)據(jù)庫(kù)表的結(jié)構(gòu),數(shù)據(jù)庫(kù),甚至整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)Mysqldump:mysqldump(options)database(tables)>filename;mysqldump(options)–databases(options)db1,…>filename;mysqldump(options)–all-database(options)>filename;mysqldump–tab=filename;mysql:還原全部的SQL語(yǔ)句表結(jié)構(gòu)損壞,用mysql單獨(dú)做回復(fù)處理,表中原有的數(shù)據(jù)將會(huì)被全部清空Mysqlimport:只恢復(fù)表中的數(shù)據(jù)Mysqlimport(option)databasetextfile;13.2.3使用MySQL圖形界面工具備份和恢復(fù)數(shù)據(jù)13.3二進(jìn)制文件的使用第十四章PHP的MySQL數(shù)據(jù)庫(kù)編程14.1PHP概述14.2PHP編程基礎(chǔ)14.3使用潘合平進(jìn)行MySQL數(shù)據(jù)庫(kù)編程14.3.1編程步驟14.3.2建立與MySQL數(shù)據(jù)庫(kù)服務(wù)器的連接Mysql_connect():建立非持久的鏈接,數(shù)據(jù)庫(kù)操作結(jié)束后會(huì)自動(dòng)關(guān)閉<?Php$con=mysql_connect(“l(fā)ocalhost:3306”,”root”,”123456”);If(!$con){ Echo“連接失??!<br>”;Echo“錯(cuò)誤編號(hào)”.mysql_errno().”<br>”;Echo“錯(cuò)誤信息”mysql_error().”<br>”;Die();//終止程序運(yùn)行}Echo“連接成功!<br>”;?>Nysql_pconnect():建立持久連接同上14.3.3選擇數(shù)據(jù)庫(kù)<?Php$con=mysql_connect(“l(fā)ocalhost:3306”,”root”,”123456”);If(mysql_erron()){Echo“數(shù)據(jù)庫(kù)服務(wù)器連接失??!<br>”;Die();//終止程序運(yùn)行}Mysql_select_db(“mysql_test”,$con);If(mysql_errno()){Echo“數(shù)據(jù)庫(kù)選擇失??!<br>”;Die();//終止程序運(yùn)行

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論