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

下載本文檔

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

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論