MySQL數(shù)據(jù)庫技術(shù)教案_第1頁
MySQL數(shù)據(jù)庫技術(shù)教案_第2頁
MySQL數(shù)據(jù)庫技術(shù)教案_第3頁
MySQL數(shù)據(jù)庫技術(shù)教案_第4頁
MySQL數(shù)據(jù)庫技術(shù)教案_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

MySQL數(shù)據(jù)庫技術(shù)教課方案MySQL數(shù)據(jù)庫技術(shù)教課方案MySQL數(shù)據(jù)庫技術(shù)教課方案教課方案2011~2012學(xué)年第1學(xué)期課程名稱MySQL數(shù)據(jù)庫系(院、部)教研室(實(shí)驗(yàn)室)授課班級(jí)主講教師職稱使用教材MySQL合用教程二○一一年八月課程名稱授課班級(jí)授課重點(diǎn)、難點(diǎn)授課內(nèi)容、教具與時(shí)間分配小結(jié)復(fù)習(xí)思慮題

教課方案MYSQL數(shù)據(jù)庫應(yīng)用授課教師授課時(shí)數(shù)1授課方式理論課關(guān)系數(shù)據(jù)庫簡介2.mysql安裝數(shù)據(jù)庫是從多關(guān)系型數(shù)據(jù)庫產(chǎn)品中的一個(gè),對(duì)照其他數(shù)據(jù)庫而言,MySQL數(shù)據(jù)庫能夠稱為目前運(yùn)行速度最快的SQL語言。除其他還擁有好多其他數(shù)據(jù)庫所不擁有的功能和選擇。MySQL數(shù)據(jù)庫是一種完滿免費(fèi)的產(chǎn)品,用戶能夠從網(wǎng)上直接下載,能夠是個(gè)人,也但是商業(yè)用戶,是不用支付任何開銷的一個(gè)數(shù)據(jù)庫。MySQL數(shù)據(jù)庫擁有以下特點(diǎn):沒有限制同時(shí)接見數(shù)據(jù)庫的用戶數(shù)量。能夠保存記錄高出50,000,000條。數(shù)據(jù)庫系統(tǒng)的運(yùn)行速度是當(dāng)前所有產(chǎn)品中最快的。能夠簡單、有效地進(jìn)行用戶權(quán)限的設(shè)置。?從MySQL數(shù)據(jù)庫擁有的以上特點(diǎn)能夠看出,MySQL數(shù)據(jù)庫是一個(gè)運(yùn)行速度快、多線程、多用戶和富強(qiáng)的SQL數(shù)據(jù)庫服務(wù)器。MySQL能夠運(yùn)行在多種平臺(tái)上,包括WindowsNT、UNIX和Linux系統(tǒng)。MySQL是建立數(shù)據(jù)庫驅(qū)動(dòng)和動(dòng)向網(wǎng)站的最正確數(shù)據(jù)庫。PHP、MySQL和Apache是Linux平臺(tái)網(wǎng)站的最正確組合。當(dāng)前,國際上有名公司也開始把MySQL作為其數(shù)據(jù)庫管理系統(tǒng),這也充分的證了然MySQL數(shù)據(jù)庫的優(yōu)越性能和廣闊的發(fā)展遠(yuǎn)景。2.安裝數(shù)據(jù)庫系統(tǒng)?數(shù)據(jù)庫歸納數(shù)據(jù)庫理論基礎(chǔ)數(shù)據(jù)儲(chǔ)藏方式數(shù)據(jù)庫泛型數(shù)據(jù)庫在開發(fā)中作用本次課程主要內(nèi)容為mysql關(guān)系數(shù)據(jù)庫簡介Mysql安裝置置《mysql入門很簡單》清華大學(xué)初版社參照書Mysql數(shù)據(jù)庫應(yīng)用課程MYSQL數(shù)據(jù)庫應(yīng)用授課教師名稱授課4授課時(shí)數(shù)授課方式理論課班級(jí)授課數(shù)據(jù)種類重點(diǎn)、難點(diǎn)授課內(nèi)容、教具與時(shí)間分配

1.MySQL的數(shù)據(jù)種類在MySQL中有以下幾種數(shù)據(jù)種類:(1)數(shù)值型MySQL供應(yīng)了五種整型:TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT,三種浮點(diǎn)種類:FLOAT、DOUBLE和DECIMAL。數(shù)值是諸如32或這樣的值。MySQL支持科學(xué)表示法,科學(xué)表示法由整數(shù)或浮點(diǎn)數(shù)后跟“e”或“E”、一個(gè)符號(hào)(“+”或“-”)和一個(gè)整數(shù)指數(shù)來表示。+12和都是合法的科學(xué)表示法表示的數(shù)。而不是合法的,由于指數(shù)前的符號(hào)未給出。浮點(diǎn)數(shù)由整數(shù)部分、一個(gè)小數(shù)點(diǎn)和小數(shù)部分組成。整數(shù)部分和小數(shù)部分能夠分別為空,但不能夠同時(shí)為空。數(shù)值前可放一個(gè)負(fù)號(hào)“-”以表示負(fù)值。(2)字符(串)型種類名說明CHAR定長字符串VARCHAR可變長字符串TINYBLOB特別小的BLOB(二進(jìn)制大對(duì)象)BLOB小BLOBMEDIUMBLOB中等的BLOBLONGBLOB大BLOBTINYTEXT特別小的文本串TEXT小文本串MEDIUMTEXT中等文本串LONGTEXT大文本串ENUM列舉;列可賜予某個(gè)列舉成員SET會(huì)集;列可賜予多個(gè)會(huì)集成員(3)日期和時(shí)間型種類名說明DATE“YYYY-MM-DD”格式表示的日期值TIME“hh:mm:ss”格式表示的時(shí)間值DATETIME“YYYY-MM-DDhh:mm:ss”格式TIMESTAMP“YYYYMMDDhhmmss”格式表示的時(shí)間戳值YEAR“YYYY”格式的年份值(4)NULL值NULL表示未知值。比方填寫表格中通訊地址不清楚留空不填寫,這就是NULL值。小結(jié)復(fù)習(xí)本次課程主要內(nèi)容為思慮Mysql數(shù)據(jù)種類題《mysql入門很簡單》清華大學(xué)初版社參照書Mysql數(shù)據(jù)庫應(yīng)用課程數(shù)據(jù)庫操作授課教師名稱授課2授課時(shí)數(shù)授課方式理論課班級(jí)授課1創(chuàng)辦數(shù)據(jù)庫重2刪除數(shù)據(jù)庫點(diǎn)、3數(shù)據(jù)庫儲(chǔ)藏引擎難點(diǎn)MySQL儲(chǔ)藏引擎簡介InnoDB儲(chǔ)藏引擎MyISAM儲(chǔ)藏引擎MEMORY儲(chǔ)藏引擎.儲(chǔ)藏引擎的選擇授課內(nèi)容、教具與時(shí)間分配

創(chuàng)辦數(shù)據(jù)庫(自然,數(shù)據(jù)庫名\"asb\"不能夠是已經(jīng)存在的)mysql>createdatabaseasb;采用數(shù)據(jù)庫,使其成為當(dāng)前操作的數(shù)據(jù)庫mysql>useasb;成功選中后會(huì)有以下顯示:Databasechanged甚至能夠在窗口命令登陸mysql數(shù)據(jù)庫的時(shí)候直接選中要操作的數(shù)據(jù)庫(自然前提是asb數(shù)據(jù)庫存在)bin>mysqlasb-uuesername-pEnterpassword:查察當(dāng)前所操作的數(shù)據(jù)庫名稱mysql>selectdatabase();運(yùn)行后結(jié)果以下:+------------+|database()|+------------+|asb|+------------+1rowinsetsec)數(shù)據(jù)庫儲(chǔ)藏引擎:ISAMISAM是一個(gè)定義明確且歷經(jīng)時(shí)間考驗(yàn)的數(shù)據(jù)表格管理方法,它在設(shè)計(jì)之時(shí)就考慮到數(shù)據(jù)庫被盤問的次數(shù)要遠(yuǎn)大于更新的次數(shù)。因此,ISAM執(zhí)行讀取操作的速度很快,而且不占用大量的內(nèi)存和儲(chǔ)藏資源。ISAM的兩個(gè)主要不足之處在于,它不支持事務(wù)辦理,也不能夠夠容錯(cuò):若是你的硬盤崩潰了,那么數(shù)據(jù)文件就無法恢復(fù)了。若是你正在把ISAM用在要點(diǎn)任務(wù)應(yīng)用程序里,那就必定經(jīng)常備份你所有的實(shí)時(shí)數(shù)據(jù),經(jīng)過其復(fù)制特點(diǎn),MySQL能夠支持這樣的備份應(yīng)用程序。MyISAMMyISAM是MySQL的ISAM擴(kuò)展格式和缺省的數(shù)據(jù)庫引擎。除了供應(yīng)ISAM里所沒有的索引和字段管理的大量功能,MyISAM還使用一種表格鎖定的體系,來優(yōu)化多個(gè)并發(fā)的讀寫操作。其代價(jià)是你需要經(jīng)常運(yùn)行OPTIMIZETABLE命令,來恢復(fù)被更新體系所浪費(fèi)的空間。MyISAM還有一些適用的擴(kuò)展,比方用來修復(fù)數(shù)據(jù)庫文件的MyISAMChk工具和用來恢復(fù)浪費(fèi)空間的MyISAMPack工具。MyISAM重申了快速讀取操作,這可能就是為什么MySQL碰到了Web開發(fā)這樣喜歡的主要原因:在Web開發(fā)中你所進(jìn)行的大量數(shù)據(jù)操作都是讀取操作。因此,大多數(shù)虛假主機(jī)供應(yīng)商和Internet平臺(tái)供應(yīng)商(InternetPresenceProvider,IPP)只贊同使用MyISAM格式。HEAPHEAP贊同只駐留在內(nèi)存里的臨時(shí)表格。駐留在內(nèi)存里讓HEAP要比ISAM和MyISAM都快,但是它所管理的數(shù)據(jù)是不牢固的,而且若是在關(guān)機(jī)從前沒有進(jìn)行保存,那么所有的數(shù)據(jù)都會(huì)丟失。在數(shù)據(jù)行被刪除的時(shí)候,HEAP也不會(huì)浪費(fèi)大量的空間。HEAP表格在你需要使用SELECT表達(dá)式來選擇和控制數(shù)據(jù)的時(shí)候特別適用。要記住,在用完表格此后就刪除表格。讓我再重復(fù)一遍:在你用完表格此后,不要忘記刪除表格。InnoDB

BerkleyDBInnoDB

BerkleyDB(BDB)

數(shù)據(jù)庫引擎都是造就

MySQL

靈便性的技術(shù)的直接產(chǎn)品,這項(xiàng)技術(shù)就是

MySQL++API

。在使用

MySQL

的時(shí)候,你所面對(duì)的每一個(gè)挑戰(zhàn)幾乎都源于

ISAM和

MyISAM

數(shù)據(jù)庫引擎不支持事務(wù)辦理也不支持外來鍵。盡管要比

ISAM

MyISAM

引擎慢好多,但是InnoDB和BDB包括了對(duì)事務(wù)辦理和外來鍵的支持,這兩點(diǎn)都是前兩個(gè)引擎所沒有的。如前所述,若是你的設(shè)計(jì)需要這些特點(diǎn)中的一者也許兩者,那你就要被迫使用后兩個(gè)引擎中的一個(gè)了。本次課程主要內(nèi)容為小結(jié)Mysql數(shù)據(jù)庫操作復(fù)習(xí)數(shù)據(jù)庫儲(chǔ)藏引擎思慮復(fù)習(xí)題目:題什么是儲(chǔ)藏引擎?如何選擇?參照書數(shù)據(jù)庫操作方法課程名稱授課班級(jí)授課重點(diǎn)、難點(diǎn)授課內(nèi)容、教具與時(shí)間分配

《mysql入門很簡單》清華大學(xué)初版社Mysql數(shù)據(jù)庫應(yīng)用數(shù)據(jù)庫表操作授課教師授課時(shí)數(shù)4授課方式理論課創(chuàng)辦表更正表刪除表用CREATETABLE語句創(chuàng)辦數(shù)據(jù)表用CREATETABLE語句創(chuàng)辦表。此語句的完滿語法是相當(dāng)復(fù)雜的,由于存在那么多的可選子句,但在實(shí)質(zhì)中此語句的應(yīng)用相當(dāng)簡單。如我們?cè)诘?章中使用的所有CREATETABLE語句都不那么復(fù)雜。有意思的是,大多數(shù)復(fù)雜東西都是一些子句,這些子句MySQL在解析后扔掉。參閱附錄1能夠看到這些復(fù)雜的東西。1、CREATETABLE語句的基本語法CREATETABLEtbl_name(create_definition,...)[TYPE=table_type]create_definition:col_nametype[NOTNULL|NULL][DEFAULTdefault_value][AUTO_INCREMENT][PRIMARYKEY]用ALTERTABLE語句更正表的構(gòu)造有時(shí)你可能需要改變一下現(xiàn)有表的構(gòu)造,那么AlterTable語句將是你的合適選擇。增加列altertabletbl_nameaddcol_nametype比方,給表增加一列weightmysql>altertablepetaddweightint;刪除列altertabletbl_namedropcol_name比方,刪除列weight:mysql>altertablepetdropweight;改變列altertabletbl_namemodifycol_nametype比方,改變weight的種類:mysql>altertablepetmodifyweightsamllint;另一種方法是:altertabletbl_namechangeold_col_namecol_nametype比方:mysql>altertablepetchangeweightweightsamllint;給列更名mysql>altertablepetchangeweightwei;給表更名altertabletbl_namerenamenew_tbl比方,把pet表更名為animalmysql>altertablepetrenameanimal;改變表的種類其他,能夠?yàn)榱性黾踊騽h除索引等屬性。用DROPTABLE語句刪除數(shù)據(jù)表DROPTABLE[IFEXISTS]tbl_name[,tbl_name,...]DROPTABLE刪除一個(gè)或多個(gè)數(shù)據(jù)庫表。所有表中的數(shù)據(jù)和表定義均被刪除,故小心使用這個(gè)命令!在MySQL或今后版本,你能夠使用要點(diǎn)詞IFEXISTS類防備不存在表的一個(gè)錯(cuò)誤發(fā)生。比方:mysql>USEmytest;mysql>DROPTABLEguestbook;也許,也能夠同時(shí)指定數(shù)據(jù)庫和表:mysql>DROPTABLEmytest.guestbook;本節(jié)表達(dá)了相關(guān)表的大多數(shù)操作,現(xiàn)在將所述內(nèi)容總結(jié)以下:MySQL的表的三各種類小結(jié)如何創(chuàng)辦表、刪除表復(fù)習(xí)如何改變表的構(gòu)造、名字思慮題復(fù)習(xí)題目:參照1.數(shù)據(jù)表操作方法?書教材:《mysql合用教程》《mysql入門很簡單》清華大學(xué)初版社Mysql數(shù)據(jù)庫應(yīng)用課程名稱Mysql索引授課教師授課班級(jí)授課時(shí)數(shù)2授課方式理論課授課重

Mysql

索引點(diǎn)、難點(diǎn)授課內(nèi)容、教具

索引是快速找尋的要點(diǎn)。MySQL索引的建立對(duì)于介紹幾種常有的MySQL索引種類。

MySQL的高效運(yùn)行是很重要的。下面與時(shí)間分配MySQL索引種類包括:(1)一般索引這是最基本的索引,它沒有任何限制。它有以下幾種創(chuàng)辦方式:◆創(chuàng)辦索引1.CREATEINDEXindexNameONmytable(username(length));若是是

CHAR,VARCHAR種類,length

能夠小于字段實(shí)質(zhì)長度;若是是

BLOB和

TEXT種類,必定指定

length

,下同?!舾順?gòu)造1.ALTERmytableADDINDEX[indexName]ON(username(length))◆創(chuàng)辦表的時(shí)候直接指定CREATETABLEmytable(IDINTNOTNULL,3.usernameVARCHAR(16)NOTNULL,INDEX[indexName](username(length)));刪除索引的語法:1.DROPINDEX[indexName]ONmytable;(2)獨(dú)一索引它與前面的一般索引近似,不一樣的就是:索引列的值必定獨(dú)一,但贊同有空值。若是是組合索引,則列值的組合必定獨(dú)一。它有以下幾種創(chuàng)辦方式:◆創(chuàng)辦索引1.CREATEUNIQUEINDEXindexNameONmytable(username(length))◆更正表構(gòu)造1.ALTERmytableADDUNIQUE[indexName]ON(username(length))◆創(chuàng)辦表的時(shí)候直接指定CREATETABLEmytable(IDINTNOTNULL,3.usernameVARCHAR(16)NOTNULL,UNIQUE[indexName](username(length)));3)主鍵索引它是一種特其他獨(dú)一索引,不一樣意有空值。一般是在建表的時(shí)候同時(shí)創(chuàng)辦主鍵索引:CREATETABLEmytable(IDINTNOTNULL,3.usernameVARCHAR(16)NOTNULL,PRIMARYKEY(ID));自然也能夠用ALTER命令。記住:一個(gè)表只能有一個(gè)主鍵。4)組合索引為了形象地比較單列索引和組合索引,為表增加多個(gè)字段:CREATETABLEmytable(IDINTNOTNULL,3.usernameVARCHAR(16)NOTNULL,4.cityVARCHAR(50)NOTNULL,ageINTNOTNULL);為了進(jìn)一步榨取MySQL的效率,就要考慮建立組合索引。就是將name,city,age建到一個(gè)索引里:1.ALTERTABLEmytableADDINDEXname_city_age(name(10),city,age);建表時(shí),usernname長度為16,這里用10。這是由于一般情況下名字的長度不會(huì)高出10,這樣會(huì)加速索引盤問速度,還會(huì)減少索引文件的大小,提高INSERT的更新速度。若是分別在usernname,city,age上建立單列索引,讓該表有3個(gè)單列索引,盤問時(shí)和上述的組合索引效率也會(huì)大不同樣,遠(yuǎn)遠(yuǎn)低于我們的組合索引。誠然此時(shí)有了三個(gè)索引,但MySQL只能用到其中的那個(gè)它以為憂如是最有效率的單列索引。建立這樣的組合索引,實(shí)質(zhì)上是相當(dāng)于分別建立了下面三組組合索引:usernname,city,ageusernname,cityusernname為什么沒有city,age這樣的組合索引呢?這是由于MySQL組合索引“最左前綴”的結(jié)果。簡單的理解就是只從最左面的開始組合。其實(shí)不是只要包括這三列的盤問都會(huì)用到該組合索引,下面的幾個(gè)SQL就會(huì)用到這個(gè)組合索引:1.SELECT*FROMmytableWHREEusername="admin"ANDcity="鄭州"SELECT*FROMmytableWHREEusername="admin"而下面幾個(gè)則不會(huì)用到:1.SELECT*FROMmytableWHREEage=20ANDcity="鄭州"2.SELECT*FROMmytableWHREEcity="鄭州"(5)建立索引的機(jī)會(huì)到這里我們已經(jīng)學(xué)會(huì)了建立索引,那么我們需要在什么情況下建立索引呢?一般來說,在WHERE和JOIN中出現(xiàn)的列需要建立索引,但也不完滿這樣,由于MySQL只對(duì)<,<=,=,>,>=,BETWEEN,IN,以及某些時(shí)候的LIKE才會(huì)使用索引。比方:SELECTFROMmytabletLEFTJOINmytablem3.ON=WHERE=20AND='鄭州'此時(shí)就需要對(duì)city和age建立索引,由于mytable表的userame也出現(xiàn)在了JOIN子句中,也有對(duì)它建立索引的必要。剛剛提到只有某些時(shí)候的LIKE才需建立索引。由于在以通配符%和_開頭作盤問時(shí),MySQL不會(huì)使用索引。比以下句會(huì)使用索引:1.SELECT*FROMmytableWHEREusernamelike'admin%'而下句就不會(huì)使用:1.SELECT*FROMmytableWHEREtNamelike'%admin'因此,在使用LIKE時(shí)應(yīng)注意以上的差異。(6)索引的不足之處上面都在說使用索引的好處,但過多的使用索引將會(huì)造成濫用。因此索引也會(huì)有它的缺點(diǎn):◆誠然索引大大提高了盤問速度,同時(shí)卻會(huì)降低更新表的速度,如對(duì)表進(jìn)行INSERT、UPDATE和DELETE。由于更新表時(shí),MySQL不但要保存數(shù)據(jù),還要保存一下索引文件?!艚⑺饕龝?huì)占用磁盤空間的索引文件。一般情況這個(gè)問題不太嚴(yán)重,但若是你在一個(gè)大表上創(chuàng)辦了多種組合索引,索引文件的會(huì)膨脹很快。索引可是提高效率的一個(gè)因素,若是你的MySQL有大數(shù)據(jù)量的表,就需要花時(shí)間研究建立最優(yōu)秀的索引,或優(yōu)化盤問語句。7)使用索引的注意事項(xiàng)使用索引時(shí),有以下一些技巧和注意事項(xiàng):◆索引不會(huì)包括有NULL值的列只要列中包括有NULL值都將不會(huì)被包括在索引中,復(fù)合索引中只要有一列含有NULL值,那么這一列對(duì)于此復(fù)合索引就是無效的。因此我們?cè)跀?shù)據(jù)庫設(shè)計(jì)時(shí)不要讓字段的默認(rèn)值為NULL?!羰褂枚趟饕龑?duì)串列進(jìn)行索引,若是可能應(yīng)該指定一個(gè)前綴長度。比方,若是有一個(gè)CHAR(255)的列,若是在前10個(gè)或20個(gè)字符內(nèi),多數(shù)值是獨(dú)一的,那么就不要對(duì)整個(gè)列進(jìn)行索引。短索引不但能夠提高盤問速度而且能夠節(jié)約磁盤空間和I/O操作?!羲饕信判騇ySQL盤問只使用一個(gè)索引,因此若是where子句中已經(jīng)使用了索引的話,那么orderby中的列是不會(huì)使用索引的。因此數(shù)據(jù)庫默認(rèn)排序能夠吻合要求的情況下不要使用排序操作;盡量不要包括多個(gè)列的排序,若是需要最好給這些列創(chuàng)辦復(fù)合索引。◆like語句操作一般情況下不激勵(lì)使用like操作,若是非使用不能,如何使用也是一個(gè)問題。like“%aaa%”不會(huì)使用索引而like“aaa%”能夠使用索引?!舨灰诹羞M(jìn)步行運(yùn)算1.select*fromuserswhereYEAR(adddate)<2007;將在每個(gè)行進(jìn)步行運(yùn)算,這將以致索引無效而進(jìn)行全表掃描,因此我們能夠改成1.select*fromuserswhereadddate<‘2007-01-01’;◆不使用NOTIN和<>操作以上,就對(duì)其中MySQL索引種類進(jìn)行了介紹。小結(jié)復(fù)習(xí)教材:《mysql合用教程》思慮題《mysql入門很簡單》清華大學(xué)初版社參照書Mysql數(shù)據(jù)庫應(yīng)用課程視圖授課教師名稱授課授課時(shí)數(shù)4授課方式理論課班級(jí)授課創(chuàng)辦視圖、更正視圖和刪除視圖重點(diǎn)、難點(diǎn)授課一.視圖歸納內(nèi)容、教具視圖是一個(gè)虛假表,其內(nèi)容由盤問定義。同真實(shí)的表同樣,視圖包括一系列帶有名稱的列與時(shí)和行數(shù)據(jù)。但是,視圖其實(shí)不在數(shù)據(jù)庫中以儲(chǔ)藏的數(shù)據(jù)值集形式存在。行和列數(shù)據(jù)來自由定間分配義視圖的盤問所引用的表,而且在引用視圖時(shí)動(dòng)向生成。二.創(chuàng)辦視圖——CREATEVIEW語法CREATE[ORREPLACE][ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}]VIEW[][(column_list)]db_name.view_nameASselect_statement[WITH[CASCADED|LOCAL]CHECKOPTION]經(jīng)過該語句能夠創(chuàng)辦視圖,若給定了[ORREPLACE],則表示當(dāng)已擁有同名的視圖時(shí),將覆蓋原視圖。select_statement是一個(gè)盤問語句,這個(gè)盤問語句可從表或其他的視圖中盤問。視圖屬于數(shù)據(jù)庫,因此需要指定數(shù)據(jù)庫的名稱,若未指準(zhǔn)時(shí),表示在當(dāng)前的數(shù)據(jù)庫創(chuàng)辦新視圖。表和數(shù)據(jù)庫共享數(shù)據(jù)庫中同樣的名稱空間,因此,數(shù)據(jù)庫不能夠包括同樣名稱的表和視圖,而且,視圖的列名也不能夠重復(fù)。注意事項(xiàng)創(chuàng)辦視圖存在以下注意事項(xiàng):(1)運(yùn)行創(chuàng)辦視圖的語句需要用戶擁有創(chuàng)辦視圖(CRATEVIEW)的權(quán)限,若加了[ORREPLACE]時(shí),還需要用戶擁有刪除視圖(DROPVIEW)的權(quán)限;2)SELECT語句不能夠包括FROM子句中的子盤問;3)SELECT語句不能夠引用系統(tǒng)或用戶變量;(4)SELECT語句不能夠引用預(yù)辦理語句參數(shù);5)在儲(chǔ)藏子程序內(nèi),定義不能夠引用子程序參數(shù)或局部變量;6)在定義中引用的表或視圖必定存在。但是,創(chuàng)辦了視圖后,能夠舍棄定義引用的表或視圖。要想檢查視圖定義可否存在這類問題,可使用CHECKTABLE語句;7)在定義中不能夠引用TEMPORARY表,不能夠創(chuàng)辦TEMPORARY視圖;8)在視圖定義中命名的表必定已存在;9)不能夠?qū)⒂|發(fā)程序與視圖關(guān)系在一起;10)在視圖定義中贊同使用ORDERBY,但是,若是從特定視圖進(jìn)行了選擇,而該視圖使用了擁有自己ORDERBY的語句,它將被忽略。三.更正視圖——ALTERVIEW語法ALTER[ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}]VIEWview_name[(column_list)]ASselect_statement[WITH[CASCADED|LOCAL]CHECKOPTION]該語句用于更正已有視圖的定義。其語法與CREATEVIEW近似。四.刪除視圖——DROPVIEW語法DROPVIEW[IFEXISTS]view_name[,view_name]...小結(jié)復(fù)習(xí)思慮題參照書課程名稱授課班級(jí)授課重點(diǎn)、難點(diǎn)授課內(nèi)容、教具與時(shí)間分配

[RESTRICT|CASCADE]該語句用戶刪除視圖,可一次刪除多個(gè)視圖。[IFEXISTS]選項(xiàng)保證語句正確運(yùn)行。若沒有該子句,當(dāng)指定的視圖不存在時(shí),將發(fā)生錯(cuò)誤。本文表達(dá)中視圖的使用,包括創(chuàng)辦視圖、更正視圖和刪除視圖的相關(guān)知識(shí),包括命令的語法、使用舉例以及注意事項(xiàng)。復(fù)習(xí)題目:視圖與表的差異和聯(lián)系?教材:《mysql合用教程》《mysql入門很簡單》清華大學(xué)初版社Mysql數(shù)據(jù)庫應(yīng)用觸發(fā)器使用授課教師授課時(shí)數(shù)2授課方式理論課創(chuàng)辦觸發(fā)器觸發(fā)器的刪除為什么要用觸發(fā)器我們?cè)贛ySQL中包括對(duì)觸發(fā)器的支持是由于以下原因:MySQL早期版本的用戶長遠(yuǎn)有需要觸發(fā)器的要求。我們從前許諾支持所有ANSI標(biāo)準(zhǔn)的特點(diǎn)。您能夠使用它來檢查或預(yù)防壞的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫。您能夠改變也許取消INSERT,UPDATE以及DELETE語句。您能夠在一個(gè)會(huì)話中監(jiān)察數(shù)據(jù)改變的動(dòng)作。語法1.語法:命名規(guī)則CREATETRIGGER<觸發(fā)器名稱><--{BEFORE|AFTER}{INSERT|UPDATE|DELETE}ON<表名稱>FOREACHROW<觸發(fā)器SQL語句>小結(jié)復(fù)習(xí)思慮題參照書課程名稱

觸發(fā)器必定有名字,最多64個(gè)字符,可能后邊會(huì)附有分開符.它和MySQL中其他對(duì)象的命名方式基實(shí)情象.■trigger_name:表記觸發(fā)器名稱,用戶自行指定;■trigger_time:表記觸發(fā)機(jī)會(huì),用before和after取代;■trigger_event:表記觸發(fā)事件,用insert,update和delete取代;tbl_name:表記建立觸發(fā)器的表名,即在哪張表上建立觸發(fā)器;trigger_stmt:觸發(fā)器程序體。觸發(fā)器程序能夠使用begin和end作為開始和結(jié)束,中間包括多條語句。②查察觸發(fā)器查察觸發(fā)器語法以下,若是知道觸發(fā)器所在數(shù)據(jù)庫,以及觸發(fā)器名稱等詳盡信息:SHOW?TRIGGERS?from?SF_User?like?"usermaps%";?/*?查察SF_User庫上名稱和usermaps%般配的觸發(fā)器?*/?若是不認(rèn)識(shí)觸發(fā)器的詳盡的信息,也許需要查察數(shù)據(jù)庫上所有觸發(fā)器,以下:SHOWTRIGGERS;trigger_name?本節(jié)表達(dá)了觸發(fā)器的使用:復(fù)習(xí)題目:如何創(chuàng)辦觸發(fā)器?教材:《mysql合用教程》《mysql入門很簡單》清華大學(xué)初版社Mysql數(shù)據(jù)庫應(yīng)用SQL盤問語句授課教師授課班級(jí)授課重點(diǎn)、難點(diǎn)授課內(nèi)容、教具與時(shí)間分配

授課時(shí)數(shù)8授課方式理論課基本盤問語句使用會(huì)集函數(shù)盤問連接盤問SELECT被用來檢索從一個(gè)或多個(gè)表中精選的行。select_expression指出你想要檢索的列。SELECT也能夠用來檢索不引用任何表的計(jì)算行1、select*fromtable1;2、selectfield1,field2fromtable1;3、selectcount(*)fromtable2;4、select,fromtable1,table2where='valed1';5、select*fromtable1wherefield1='valed1'andfiels2='valed2'ordedbyfield1;6、select*fromtable1wherefiled1='valed1'orderbyfiled1desclinitn;7、select*fromtable2wherenamelike'%$lin%';(模糊)8、sub_selects(高級(jí))select*fromtable1whereidIn(selectidfromtable2......);9、otable...(高級(jí))(可用ooutfile...;insert...selkect...取代)10、SELECTMAX(field1)ASfield1FROMtable1列的最大值其中:表:字段:field會(huì)集函數(shù)盤問對(duì)一個(gè)表中的記錄進(jìn)行數(shù)據(jù)統(tǒng)計(jì)。比方,若是你想統(tǒng)計(jì)儲(chǔ)藏在表中的一次民心測試的投票結(jié)果。也許你想知道一個(gè)接見者在你的站點(diǎn)上平均開銷了多少時(shí)間。要對(duì)表中的任何種類的數(shù)據(jù)進(jìn)行統(tǒng)計(jì),都需要使用會(huì)集函數(shù)。你能夠統(tǒng)計(jì)記錄數(shù)量,平均值,最小值,最大值,也許求和。當(dāng)你使用一個(gè)會(huì)集函數(shù)時(shí),它只返回一個(gè)數(shù),該數(shù)值代表這幾個(gè)統(tǒng)計(jì)值之一。這些函數(shù)的最大特點(diǎn)就是經(jīng)常和GROUPBY語句配合使用,需要注意的是會(huì)集函數(shù)不能和非分組的列混雜使用。行列計(jì)數(shù)計(jì)算盤問語句返回的記錄行數(shù)直接計(jì)算函數(shù)COUNT(*)的值計(jì)算字段的平均值需要計(jì)算這些值的平均值。使用函數(shù)AVG(),你能夠返回一個(gè)字段中所有值的平均值。SELECTAVG(vote)FROMopinion計(jì)算字段值的和SELECTSUM(purchase_amount)FROMorders計(jì)算字段值的極值求字段的極值,涉及兩個(gè)函數(shù)MAX()和MIN()。SELECTname,MIN(birth)FROMpet;mysql多表連接盤問innerjoin,fullouterjoin,leftjoin,rightjion內(nèi)部連接innerjoin兩表都滿足的組合fullouter全連兩表同樣的組合在一起,A表有,B表沒有的數(shù)據(jù)(顯示為null),同樣表有A表沒有的顯示為(null)A表leftjoinB表左連,以A表為基礎(chǔ),A表的所有數(shù)據(jù),B表有的組合。沒有的為nullA表rightjoinB表右連,以B表為基礎(chǔ),B表的所有數(shù)據(jù),A表的有的組合。沒有的為null一、外連接看法:包括左向外聯(lián)接、右向外聯(lián)接或完滿外面聯(lián)接2.左連接:leftjoin或leftouterjoin左向外聯(lián)接的結(jié)果集包括LEFTOUTER子句中指定的左表的所有行,而不能是是聯(lián)接列所般配的行。若是左表的某行在右表中沒有般配行,則在相關(guān)系的結(jié)果集行中右表的所有選擇列表列均為空值(null)。(2)sql語句select*fromtable1leftjointable2on=3.右連接:rightjoin或rightouterjoin右向外聯(lián)接是左向外聯(lián)接的反向聯(lián)接。將返回右表的所有行。若是右表的某行在左表中沒有般配行,則將為左表返回空值。(2)sql語句select*fromtable1rightjointable2on=4.完滿外面聯(lián)接:fulljoin或fullouterjoin完滿外面聯(lián)接返回左表和右表中的所有行。當(dāng)某行在另一個(gè)表中沒有般配行時(shí),則另一個(gè)表的選擇列表列包括空值。若是表之間有般配行,則整個(gè)結(jié)果集行包括基表的數(shù)據(jù)值。(2)sql語句select*fromtable1fulljointable2on=二、內(nèi)連接看法:內(nèi)聯(lián)接是用比較運(yùn)算符比較要聯(lián)接列的值的聯(lián)接2.內(nèi)連接:join或innerjoin語句select*fromtable1jointable2on=三、交織連接(完滿)看法:沒有WHERE子句的交織聯(lián)接將產(chǎn)生聯(lián)接所涉及的表的笛卡爾積。第一個(gè)表的行數(shù)乘以第二個(gè)表的行數(shù)等于笛卡爾積結(jié)果集的大小。(table1和table2交織連接產(chǎn)生3*3=9條記錄)2.交織連接:crossjoin(不帶條件where...)語句select*fromtable1crossjointable2小結(jié)本節(jié)表達(dá)了部分盤問操作:復(fù)習(xí)復(fù)習(xí)題目:思慮1.練習(xí)表的盤問?題教材:《mysql合用教程》參照書《mysql入門很簡單》清華大學(xué)初版社Mysql數(shù)據(jù)庫應(yīng)用課程名Mysql插入更新刪除授課教師稱授課班4授課時(shí)數(shù)授課方式理論課級(jí)授課重Mysql的插入更新刪除方法點(diǎn)、難點(diǎn)授課內(nèi)1插入、更新和刪除記錄容、教1.1插入記錄具與時(shí)Insertintotable_name(field_name1,field_name2,)values(value1,value2,);間分配Insertintovalues(value1,value2,);的更新插入刪除方法?教材:《mysql合用教程》《mysql入門很簡單》清華大學(xué)初版社Mysql數(shù)據(jù)庫應(yīng)用課程名Mysql運(yùn)算符授課教師稱授課班4授課時(shí)數(shù)授課方式理論課級(jí)授課重算術(shù)運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、表達(dá)式點(diǎn)、難點(diǎn)授課內(nèi)容、教具與時(shí)間分配

運(yùn)算符優(yōu)先級(jí)序次最高優(yōu)先級(jí):=1||,or,xor2&&,and3between,case,when,then,else4=,<=>,>=,>,<=,<,<>,!=,is,like,regexp,in|&<<,>>-,+*,/,div,%,mod^-(unaryminus),~(unarybitinversion)!,not最低優(yōu)先級(jí)binary,collate算數(shù)運(yùn)算符加mysql>select1+2;減mysql>select2-1;乘mysql>select2*3;除mysql>select5/3;商mysql>select5div2;模mysql>select5%2,mod(5,2);邏輯運(yùn)算符非mysql>selectnot0,not1,notnull;mysql>select!0,!1,!null;與mysql>select(1and1),(0and1),(3and1),(1andnull);mysql>select(1&&1),(0&&1),(3&&1),(1&&null);或mysql>select(1or0),(0or0),(1ornull),(1or1),(nullornull);mysql>select(1||0),(0||0),(1||null),(1||1),(null||null);異或mysql>select(1xor1),(0xor0),(1xor0),(0xor1),(nullxor1);mysql>select(1^1),(0^0),(1^0),(0^1),(null^1);比較運(yùn)算符等于mysql>select1=0,1=1,null=null;不等于mysql>select1<>0,1<>1,null<>null;安全等于mysql>select1<=>1,2<=>0,0<=>0,null<=>null;小于mysql>select'a'<'b','a'<'a','a'<'c',1<2;小于等于mysql>select'bdf'<='b','b'<='b',0<1;大于mysql>select'a'>'b','abc'>'a',1>0;大于等于mysql>select'a'>='b','abc'>='a',1>=0,1>=1;betweenmysql>select10between10and20,9between10and20;inmysql>select1in(1,2,3),'t'in('t','a','b','l','e'),0in(1,2);isnullmysql>select0isnull,nullisnull;isnotnullmysql>select0isnotnull,nullisnotnull;likemysql>select123456like'123%',123456like'%123%',123456like'%321%';regexpmysql>select'abcdef'regexp'ab','abcdefg'regexp'k';位運(yùn)算符位與mysql>select2&3;mysql>select2&3&4;位或mysql>select2|3;位異或mysql>select2^3;位取反位右移mysql>select100>>3;位左移mysql>select100<<3;小結(jié)本節(jié)表達(dá)了mysql運(yùn)算符:復(fù)習(xí)1.熟悉各種運(yùn)算符及其使用方法思慮題教材:《mysql合用教程》參照書《mysql入門很簡單》清華大學(xué)初版社Mysql數(shù)據(jù)庫應(yīng)用課程名系統(tǒng)內(nèi)置函數(shù)授課教師稱授課班2授課時(shí)數(shù)授課方式理論課級(jí)授課重Mysql函數(shù)使用點(diǎn)、難點(diǎn)授課內(nèi)算數(shù)運(yùn)算子容、教具與時(shí)+,-,*,/間分配除于0會(huì)等于NULL。比較運(yùn)算子任何東西跟NULL比較會(huì)等于NULL。比較字符串連常不需要注意大小寫,若是要比較大小寫,用BINARY要點(diǎn)詞。邏輯運(yùn)算子傳回的值有1(true),0(false,或NULL。任何不是0或不是NULL的值都是true。字符串函式concat(s1,s2,...)-連接字符串s1和s2...conv(n,original_base,new_base)-變換數(shù)字n從原來的base到新的baselength(s)-找字符串的長度load_file(filename)-依照字符串傳回檔案的內(nèi)容locate(needle,haystack,position)-傳回needle字符串的開始地址,在haystack字符串里,從position開始lower(s)andupper(s)-變換s到小寫或大寫quote(s)-跳脫s字符串,讓它能夠安全輸入數(shù)據(jù)庫replace(target,find,replace)-傳回target字符串,將find字符串覆蓋成replace字符串soundex(s)-傳回跟s近似的soundex字符串。soundex是字符串的發(fā)音substring(s,position,length)-傳回字符串里的字符串,s是原來的字符串,position是開始的地址,length是傳回的字?jǐn)?shù)trim(s)-移除開頭跟字尾的空格符。也能夠用rtrim()或ltrim()字符串比較的函式LIKE-利用通配字符來進(jìn)行比較RLIKE-利用正規(guī)表示法來進(jìn)行比較STRCMP-比較字符串,近似C里面的strcmp()MATCH-進(jìn)行full-text比較數(shù)字函式abs(n)傳回n的正數(shù)ceiling(n)nroundeduptothenearestintegerfloor(n)nroundeddowntothenearestintegermod(n,m)和div這兩個(gè)函式會(huì)將n除于m。div傳回商數(shù),mod()會(huì)傳回節(jié)余數(shù)。power(n,m)ntothepowerofmrand(n)傳回0到1的隨意數(shù)。n能夠不供應(yīng),若是供應(yīng)會(huì)用來產(chǎn)生隨意數(shù)。同樣的n會(huì)產(chǎn)生同樣的隨意數(shù)。round(n[,d])nroundedtothenearestinteger.ifsupplyd,nwillberoundedtoddecimalplaces.sqrt(n)傳回n的平方mod()能夠是mod(9,2)或9mod2或9%2。div只能用9div2。日期和時(shí)間函式adddate(date,INTERVALntype)和subdate(date,INTERVALntype)cast函式cast能夠用來改變種類,用cast()和convert()函式。兩個(gè)函式同樣,但是不一樣的語法構(gòu)造。cast(expressionAStype)convert(expression,type)cast()是依照ANSI的規(guī)格,convert()是依照ODBC的規(guī)格。種類能夠是BINARY,CHAR,DATE,DATETIME,SIGNED(INTEGER),和UNSIGNED(INTEGER)。平時(shí)MySQL會(huì)自動(dòng)幫你改變種類。其他函式benchmark(count,expression)這個(gè)函式是用來測試盤問的速度,只會(huì)傳回0值。encrypt(s[,salt])將s加密用Unix的加密系統(tǒng)。salt字符串是兩個(gè)字符的字符串,能夠不用。若是沒有crypt功能,像在Windows系統(tǒng),這個(gè)函式會(huì)傳回NULL。found_rows()傳回字段的數(shù)量,若是沒適用LIMIT。只有在SELECT里使用SQL_CALC_FOUND_ROWS才能用這個(gè)函式。last_insert_id()傳回最后產(chǎn)生的AUTO_INCREMENT值。md5(s)傳回128bitMD5的加密字符串。password(s)計(jì)算s的密碼,不建議用這個(gè)函式來儲(chǔ)蓄密碼。用于GROUPBY的函式這些還是特地為了GROUPBY而寫的。avg(column)-傳回字段的平均值count(column)-傳回字段的數(shù)量min(column)-傳回字段的最小值max(column)-傳回字段的最大值std(column)-傳回字段的標(biāo)準(zhǔn)差sum(column)-傳回字段的總數(shù)小結(jié)本節(jié)表達(dá)了相關(guān)函數(shù)的使用:復(fù)習(xí)復(fù)習(xí)題目:思慮題1.熟悉各種函數(shù)及其使用。參照書教材:《mysql合用教程》《mysql入門很簡單》清華大學(xué)初版社Mysql數(shù)據(jù)庫應(yīng)用課程名稱授課班級(jí)授課重點(diǎn)、難點(diǎn)授課內(nèi)容、教具與時(shí)間分

過程式數(shù)據(jù)庫對(duì)象授課教師授課時(shí)數(shù)2授課方式理論課創(chuàng)辦儲(chǔ)藏過程調(diào)用儲(chǔ)藏過程查察儲(chǔ)藏過程我們大家都知道MySQL儲(chǔ)藏過程是從MySQL開始逐漸增加新的功能。儲(chǔ)藏過程在實(shí)質(zhì)應(yīng)用中也是優(yōu)點(diǎn)大于缺點(diǎn)。但是最主要的還是執(zhí)行效率和SQL代碼封裝。特別是SQL代碼封裝功能,若是沒有儲(chǔ)藏過程。在外面程序接見數(shù)據(jù)庫時(shí)(比方PHP),要組織好多SQL語句。配特別是業(yè)務(wù)邏輯復(fù)雜的時(shí)候,一大堆的SQL和條件夾雜在PHP代碼中,讓人不寒而栗?,F(xiàn)在有了MySQL儲(chǔ)藏過程,業(yè)務(wù)邏輯能夠封裝儲(chǔ)藏過程中,這樣不但簡單保護(hù),而且執(zhí)行效率也高。一、MySQL創(chuàng)辦儲(chǔ)藏過程“pr_add”是個(gè)簡單的MySQL儲(chǔ)藏過程,這個(gè)MySQL儲(chǔ)藏過程有兩個(gè)int種類的輸入?yún)?shù)“a”、“b”,返回這兩個(gè)參數(shù)的和。dropprocedureifexistspr_add二、調(diào)用MySQL儲(chǔ)藏過程callpr_add(10,20);執(zhí)行MySQL儲(chǔ)藏過程,儲(chǔ)藏過程參數(shù)為MySQL用戶變量。set@a=10;set@b=20;callpr_add(@a,@b);三、MySQL儲(chǔ)藏過程特點(diǎn)創(chuàng)辦MySQL儲(chǔ)藏過程的簡單語法為:1.createprocedure儲(chǔ)藏過程名字()(3.[in|out|inout]參數(shù)datatype)beginMySQL語句;end;MySQL儲(chǔ)藏過程參數(shù)若是不顯式指定“in”、“out”、“inout”,則默以為“in”。習(xí)慣上,對(duì)于是“in”的參數(shù),我們都不會(huì)顯式指定。1.MySQL儲(chǔ)藏過程名字后邊的“()”是必定的,即使沒有一個(gè)參數(shù),也需要“()”2.MySQL儲(chǔ)藏過程參數(shù),不能夠在參數(shù)名稱前加“@”,如:“@aint”。下面的創(chuàng)辦儲(chǔ)藏過程語法在MySQL中是錯(cuò)誤的(在SQLServer中是正確的)。MySQL儲(chǔ)藏過程中的變量,不需要在變量名字前加“@”,誠然MySQL客戶端用戶變量要加個(gè)“@”。MySQL儲(chǔ)藏過程的參數(shù)不能夠指定默認(rèn)值。4.MySQL儲(chǔ)藏過程不需要在procedurebody前面加“as”。而SQLServer儲(chǔ)藏過程必定加“as”要點(diǎn)字。5.若是MySQL儲(chǔ)藏過程中包括多條MySQL語句,則需要beginend要點(diǎn)字。6.MySQL儲(chǔ)藏過程中的每條語句的尾端,都要加上分號(hào)“;”MySQL儲(chǔ)藏過程中的說明。8.不能夠在MySQL儲(chǔ)藏過程中使用“return”要點(diǎn)字。9.調(diào)用MySQL儲(chǔ)藏過程時(shí)候,需要在過程名字后邊加“()”,即使沒有一個(gè)參數(shù),也需要“()”callpr_no_param();10.由于MySQL儲(chǔ)藏過程參數(shù)沒有默認(rèn)值,因此在調(diào)用MySQL儲(chǔ)藏過程時(shí)候,不能夠省略參數(shù)。能夠用null來取代。本節(jié)表達(dá)了相關(guān)表的大多數(shù)操作,現(xiàn)在將所述內(nèi)容總結(jié)以下:MySQL的表的三各種類小結(jié)如何創(chuàng)辦表、刪除表復(fù)習(xí)如何改變表的構(gòu)造、名字思慮題復(fù)習(xí)題目:參照1.數(shù)據(jù)表操作方法?書教材:《mysql合用教程》《mysql入門很簡單》清華大學(xué)初版社Mysql數(shù)據(jù)庫應(yīng)用課程備份與恢復(fù)授課教師名稱授課4授課時(shí)數(shù)授課方式理論課班級(jí)授課重點(diǎn)、難點(diǎn)授課當(dāng)前MySQL支持的免費(fèi)備份工擁有:mysqldump、mysqlhotcopy,還可以夠用SQL語法進(jìn)行內(nèi)備份:BACKUPTABLE也許SELECTINTOOUTFILE,又也許備份二進(jìn)制日志(binlog),還容、能夠是直接拷貝數(shù)據(jù)文件和相關(guān)的配置文件。MyISAM表是保存成文件的形式,因此相比較教具較簡單備份,上面提到的幾種方法都能夠使用。Innodb所有的表都保存在同一個(gè)數(shù)據(jù)文件與時(shí)ibdata1中(也可能是多個(gè)文件,也許是獨(dú)立的表空間文件),相對(duì)來說比較不好備份,間分免費(fèi)的方案能夠是拷貝數(shù)據(jù)文件、備份binlog,也許用mysqldump。配1、mysqldump備份mysqldump是采用SQL級(jí)其他備份體系,它將數(shù)據(jù)表導(dǎo)成SQL腳本文件,在不一樣的MySQL版本之間升級(jí)時(shí)相比較較合適,這也是最常用的備份方法。還原用mysqldump備份出來的文件是一個(gè)能夠直接倒入的SQL腳本,有兩種方法能夠?qū)?shù)據(jù)導(dǎo)入。1.直接用mysql客戶端比方:/usr/local/mysql/bin/mysql-uyejr-pyejrdb_name<2.用SOURCE語法其實(shí)這不是標(biāo)準(zhǔn)的SQL語法,而是mysql客戶端供應(yīng)的功能,比方:SOURCE/tmp/;這里需要指定文件的絕對(duì)路徑,而且必定是mysqld運(yùn)行用戶(比方nobody)有權(quán)限讀取的文件。2、mysqlhotcopy備份mysqlhotcopy是一個(gè)PERL程序,最初由TimBunce編寫。它使用LOCKTABLES、FLUSHTABLES和cp或scp來快速備份數(shù)據(jù)庫。它是備份數(shù)據(jù)庫或單個(gè)表的最快的路子,但它只能運(yùn)行在數(shù)據(jù)庫文件(包括數(shù)據(jù)表定義文件、數(shù)據(jù)文件、索引文件)所在的機(jī)器上。mysqlhotcopy只能用于備份MyISAM,而且只能運(yùn)行在類Unix和NetWare系統(tǒng)上。mysqlhotcopy支持一次性拷貝多個(gè)數(shù)據(jù)庫,同時(shí)還支持正則表達(dá)。還原mysqlhotcopy備份出來的是整個(gè)數(shù)據(jù)庫目錄,使用時(shí)能夠直接拷貝到mysqld指定的datadir(在這里是/usr/local/mysql/data/)目錄下即可,同時(shí)要注意權(quán)限的問題,以下例:root#cp-rfdb_name/usr/local/mysql/data/root#chown-Rnobody:nobody/usr/local/mysql/data/(將db_name目錄的屬主改成mysqld運(yùn)行用戶)3、SQL語法備份備份BACKUPTABLE語法其實(shí)和mysqlhotcopy的工作原理差不多,都是鎖表,爾后拷貝數(shù)據(jù)文件。它能實(shí)現(xiàn)在線備份,但是收效不理想,因此不介紹使用。它只拷貝表構(gòu)造文件和數(shù)據(jù)文件,不一樣時(shí)拷貝索引文件,因此恢復(fù)時(shí)比較慢。例子:BACKTABLEtbl_nameTO'/tmp/db_name/';注意,必定要有FILE權(quán)限才能執(zhí)行本SQL,而且目錄/tmp/db_name/必定能被mysqld用戶可寫,導(dǎo)出的文件不能夠覆蓋已經(jīng)存在的文件,以防備安全問題。SELECTINTOOUTFILE則是把數(shù)據(jù)導(dǎo)出來成為一般的文本文件,能夠自定義字段間隔的方式,方便辦理這些數(shù)據(jù)。例子:SELECT*INTOOUTFILE'/tmp/db_name/'FROMtbl_name;注意,必定要有FILE權(quán)限才能執(zhí)行本SQL,而且文件/tmp/db_name/必定能被mysqld用戶可寫,導(dǎo)出的文件不能夠覆蓋已經(jīng)存在的文件,以防備安全問題。恢復(fù)用BACKUPTABLE方法備

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論