《MySQL數(shù)據(jù)庫(kù)原理與應(yīng)用案例教程》全套教學(xué)課件_第1頁(yè)
《MySQL數(shù)據(jù)庫(kù)原理與應(yīng)用案例教程》全套教學(xué)課件_第2頁(yè)
《MySQL數(shù)據(jù)庫(kù)原理與應(yīng)用案例教程》全套教學(xué)課件_第3頁(yè)
《MySQL數(shù)據(jù)庫(kù)原理與應(yīng)用案例教程》全套教學(xué)課件_第4頁(yè)
《MySQL數(shù)據(jù)庫(kù)原理與應(yīng)用案例教程》全套教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩692頁(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)介

項(xiàng)目1

數(shù)據(jù)庫(kù)設(shè)計(jì)任務(wù)1

概念結(jié)構(gòu)設(shè)計(jì)項(xiàng)目1-任務(wù)1-概念結(jié)構(gòu)設(shè)計(jì).pptx項(xiàng)目2安裝MySQL管理系統(tǒng).pptx項(xiàng)目3創(chuàng)建與管理數(shù)據(jù)庫(kù).pptx項(xiàng)目4創(chuàng)建與管理數(shù)據(jù)表.pptx項(xiàng)目5更新數(shù)據(jù)表數(shù)據(jù).pptx項(xiàng)目6查詢數(shù)據(jù).pptx項(xiàng)目7索引與視圖.pptx項(xiàng)目8存儲(chǔ)過(guò)程.pptx項(xiàng)目9存儲(chǔ)函數(shù)和觸發(fā)器.pptx項(xiàng)目10用戶安全性管理.pptx項(xiàng)目11數(shù)據(jù)備份與還原.pptx全套可編輯PPT課件任務(wù)描述任務(wù)目標(biāo)任務(wù)分析任務(wù)實(shí)施123知識(shí)鏈接45全套可編輯PPT課件

通過(guò)需求分析,進(jìn)行概念結(jié)構(gòu)設(shè)計(jì),完成某學(xué)院學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)系統(tǒng)的E-R圖設(shè)計(jì)。任務(wù)描述(1)能夠?qū)?xiàng)目進(jìn)行需求分析。(2)能夠進(jìn)行概念結(jié)構(gòu)設(shè)計(jì)。(3)會(huì)系統(tǒng)E-R圖設(shè)計(jì)。(4)通過(guò)需求分析過(guò)程,培養(yǎng)學(xué)生良好的交流、溝通、與人合作的能力。任務(wù)目標(biāo)概念結(jié)構(gòu)設(shè)計(jì),首先需要進(jìn)行需求分析,通過(guò)調(diào)查與分析,了解用戶的信息需求和處理需求,然后進(jìn)行歸納與數(shù)據(jù)抽象,使用E-R圖進(jìn)行概念結(jié)構(gòu)設(shè)計(jì)。任務(wù)分析概念結(jié)構(gòu)設(shè)計(jì)概念結(jié)構(gòu)設(shè)計(jì)中常用術(shù)語(yǔ)E-R圖任務(wù)實(shí)施數(shù)據(jù)庫(kù)設(shè)計(jì)步驟1進(jìn)行需求分析,抽象出系統(tǒng)實(shí)體集,畫出E-R圖通過(guò)需求分析,獲取數(shù)據(jù)和屬性各自的特點(diǎn);進(jìn)行數(shù)據(jù)抽象,抽象出學(xué)生、班級(jí)、系部、教師、課程、成績(jī)、學(xué)期七個(gè)實(shí)體集。確定各實(shí)體集的屬性,寫出實(shí)體型,畫出實(shí)體對(duì)應(yīng)的局部E-R圖。任務(wù)實(shí)施(1)學(xué)生(學(xué)號(hào),姓名,登錄密碼,性別,專業(yè),出生日期,家庭住址,郵箱,固定電話,移動(dòng)電話,備注)。任務(wù)實(shí)施(2)班級(jí)(班級(jí)編號(hào),班級(jí)名稱)(3)系部(系部編號(hào),系部名稱)(4)教師(工號(hào),姓名,性別,登錄密碼,職稱,固定電話,移動(dòng)電話)(5)課程(課程編號(hào),課程名稱)任務(wù)實(shí)施(6)成績(jī)(學(xué)號(hào),課程編號(hào),平時(shí)成績(jī),期末成績(jī),綜合成績(jī))。(7)學(xué)期(學(xué)期編號(hào),學(xué)期名稱,起始日期,終止日期)。步驟2確定實(shí)體集之間的聯(lián)系及聯(lián)系類型,畫出局部E-R圖對(duì)實(shí)體集之間的聯(lián)系及聯(lián)系類型進(jìn)行分析,并畫出局部E-R圖確定各實(shí)體集的屬性,寫出實(shí)體型,畫出實(shí)體對(duì)應(yīng)的局部E-R圖。(1)系部、班級(jí)、學(xué)生和教師之間的聯(lián)系一個(gè)系部有多個(gè)班級(jí),一個(gè)班級(jí)只能分配在一個(gè)系部,所以系部與班級(jí)之間是1對(duì)多(1:n)的聯(lián)系;一個(gè)系部有多位教師,一位教師只能分配在一個(gè)系部,所以系部與教師之間是1對(duì)多(1:n)的聯(lián)系;一個(gè)班級(jí)有多位學(xué)生,一位學(xué)生只能隸屬一個(gè)班級(jí),所以班級(jí)與學(xué)生之間是1對(duì)多(1:n)的聯(lián)系。任務(wù)實(shí)施(2)學(xué)生選課各實(shí)體集之間的聯(lián)系每學(xué)期一位學(xué)生可以選修多門課程,一門課程可以被多位學(xué)生選修,所以學(xué)生和課程之間是多對(duì)多(m:n)的聯(lián)系;每學(xué)期一位教師在會(huì)講授多門課程,一門課程會(huì)被多位教師講授,所以教師和課程之間是多對(duì)多(m:n)的聯(lián)系。任務(wù)實(shí)施(3)學(xué)生考試各實(shí)體集之間的聯(lián)系每學(xué)期一位學(xué)生需要參加多門課程的考試,會(huì)有多個(gè)成績(jī),所以學(xué)生與成績(jī)之間是1對(duì)多(1:n)的聯(lián)系。任務(wù)實(shí)施步驟3合并局部E-R圖,設(shè)計(jì)全局E-R圖在合并局部E-R圖過(guò)程中,盡可能合并對(duì)應(yīng)的部分,刪除冗余部分,必要時(shí)對(duì)模式進(jìn)行適當(dāng)修改,力求使模式簡(jiǎn)明清晰。任務(wù)實(shí)施數(shù)據(jù)庫(kù)設(shè)計(jì)就是根據(jù)用戶的需要,選擇合適的數(shù)據(jù)庫(kù)關(guān)系系統(tǒng),設(shè)計(jì)數(shù)據(jù)庫(kù)的結(jié)構(gòu)模型并建立數(shù)據(jù)庫(kù)的過(guò)程。按照規(guī)范的設(shè)計(jì)方法,數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程一般分為以下六個(gè)步驟:(1)需求分析:了解和分析用戶需求,包括數(shù)據(jù)、功能和性能需求;(2)概念結(jié)構(gòu)設(shè)計(jì):抽象出現(xiàn)實(shí)世界模型,主要采用E-R圖進(jìn)行設(shè)計(jì);(3)邏輯結(jié)構(gòu)設(shè)計(jì):通過(guò)將E-R圖轉(zhuǎn)換成表,實(shí)現(xiàn)從E-R圖到關(guān)系模式的轉(zhuǎn)換,進(jìn)行關(guān)系規(guī)范化;(4)物理結(jié)構(gòu)設(shè)計(jì):為所設(shè)計(jì)的數(shù)據(jù)庫(kù)選擇合適的存儲(chǔ)結(jié)構(gòu)和存儲(chǔ)的方法;知識(shí)鏈接——數(shù)據(jù)庫(kù)設(shè)計(jì)(5)數(shù)據(jù)庫(kù)實(shí)施:根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)構(gòu)利用所選定的數(shù)據(jù)庫(kù)管理系統(tǒng)提供的數(shù)據(jù)定義語(yǔ)言,建立數(shù)據(jù)庫(kù),組織數(shù)據(jù)入庫(kù),編制并調(diào)試應(yīng)用程序,進(jìn)行數(shù)據(jù)庫(kù)的測(cè)試和試運(yùn)行;(6)運(yùn)行與維護(hù):系統(tǒng)的運(yùn)行和數(shù)據(jù)庫(kù)的日常維護(hù)。知識(shí)鏈接——數(shù)據(jù)庫(kù)設(shè)計(jì)概念結(jié)構(gòu)設(shè)計(jì)的任務(wù)是在需求分析階段產(chǎn)生的需求說(shuō)明書的基礎(chǔ)上,按照特定的方法把它們抽象為一個(gè)不依賴于任何具體機(jī)器的數(shù)據(jù)模型,即概念模型。概念模型使設(shè)計(jì)者的注意力能夠從復(fù)雜的實(shí)現(xiàn)細(xì)節(jié)中解脫出來(lái),而只集中在最重要的信息的組織結(jié)構(gòu)和處理模式上。知識(shí)鏈接——概念結(jié)構(gòu)設(shè)計(jì)(1)實(shí)體客觀上可以相互區(qū)分的事物稱為實(shí)體,實(shí)體可以是具體的人和物,也可以是抽象的概念與聯(lián)系。關(guān)鍵在于一個(gè)實(shí)體能與另一個(gè)實(shí)體相區(qū)別,具有相同屬性的實(shí)體具有相同的特征和性質(zhì)。例如一位學(xué)生,一門課程,一次借書等。(2)實(shí)體集具有相同類型、相同屬性的實(shí)體集合。例如,全體學(xué)生、所有的課程都稱為實(shí)體集。(3)屬性屬性是實(shí)體集所具有的某一特性,一個(gè)實(shí)體集可由若干個(gè)屬性來(lái)描述。例如課程實(shí)體集可以由課程編號(hào)、課程名稱等屬性組成。(10005,MySQL數(shù)據(jù)庫(kù)技術(shù))這些屬性組合起來(lái)表征了一門課程。知識(shí)鏈接——概念結(jié)構(gòu)設(shè)計(jì)中常用術(shù)語(yǔ)(4)碼能唯一標(biāo)識(shí)實(shí)體的屬性或?qū)傩越M,稱為超碼。任意真子集都不能稱為超碼的超碼稱為候選碼。從候選碼中選出一個(gè)來(lái)區(qū)別同一實(shí)體集中的不同實(shí)體稱為主碼,比如學(xué)生實(shí)體集中的學(xué)號(hào)。主碼在E-R圖中用下劃線“屬性或?qū)傩越M”標(biāo)識(shí)。(5)域域就是屬性的取值范圍。例如,性別的域是(男,女),月份的域是(1-12),姓名的域?yàn)樽址?。?)實(shí)體型一類實(shí)體所具有的共同特征或者屬性的集合稱為實(shí)體型。一般用實(shí)體集名及其屬性來(lái)抽象的刻畫一類實(shí)體的實(shí)體型。例如,系部(系部編號(hào),系部名稱)就是一個(gè)實(shí)體型。知識(shí)鏈接——概念結(jié)構(gòu)設(shè)計(jì)中常用術(shù)語(yǔ)(7)聯(lián)系聯(lián)系是實(shí)體集之間相互的關(guān)聯(lián)。一般來(lái)說(shuō),聯(lián)系可以分為1對(duì)1(1:1)、1對(duì)多(1:n)、多對(duì)多(m:n)三種。例如,一個(gè)班只有一個(gè)班長(zhǎng),一個(gè)班長(zhǎng)只可以在一個(gè)班任職,班長(zhǎng)和班級(jí)之間就是1對(duì)1(1:1)聯(lián)系;一個(gè)教學(xué)系可以由多個(gè)班級(jí),一個(gè)班級(jí)只可以屬于一個(gè)教學(xué)系,教學(xué)系和班級(jí)之間就是1對(duì)多(1:n);一個(gè)學(xué)生可以選修多門課程,一門課程可以被多名學(xué)生選修,學(xué)生和課程之間就是多對(duì)多(m:n)聯(lián)系。知識(shí)鏈接——概念結(jié)構(gòu)設(shè)計(jì)中常用術(shù)語(yǔ)E-R圖也稱為實(shí)體集-聯(lián)系模型、實(shí)體集-聯(lián)系圖,簡(jiǎn)稱E-R圖,是表示概念模型的工具。E-R圖的四要素:(1)實(shí)體集:用矩形表示,矩形內(nèi)標(biāo)注實(shí)體集名稱。(2)屬性:用橢圓形表示,橢圓形內(nèi)標(biāo)注屬性名稱。(3)實(shí)體集之間的聯(lián)系:用菱形表示,菱形內(nèi)標(biāo)注聯(lián)系名稱。(4)無(wú)向線:實(shí)體集與屬性之間、實(shí)體集與聯(lián)系之間、聯(lián)系與屬性之間用無(wú)向線相連,并在無(wú)向線上標(biāo)注聯(lián)系的類型。對(duì)于一對(duì)一聯(lián)系,要在兩個(gè)實(shí)體集連線方向標(biāo)注1;對(duì)于一對(duì)多聯(lián)系,要在一的一方標(biāo)注1,多的一方標(biāo)注n;對(duì)于多對(duì)多聯(lián)系,則要在兩個(gè)實(shí)體集連線方向旁分別標(biāo)注n和m。知識(shí)鏈接——E-R圖感謝聆聽(tīng)《MySQL數(shù)據(jù)庫(kù)項(xiàng)目化教程》項(xiàng)目2安裝MySQL管理系統(tǒng)MySQL是目前最為流行的免費(fèi)開(kāi)源的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),是完全網(wǎng)絡(luò)化的跨平臺(tái)的關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)。MySQL作為數(shù)據(jù)庫(kù)服務(wù)器來(lái)運(yùn)行,任何滿足MySQL通信規(guī)范的軟件都可以作為客戶端來(lái)連接服務(wù)器。本項(xiàng)目通過(guò)典型任務(wù)學(xué)習(xí)常用的數(shù)據(jù)庫(kù)管理系統(tǒng),如何正確安裝、配置和驗(yàn)證MySQL數(shù)據(jù)庫(kù)管理系統(tǒng),如何使用客戶端軟件登錄到MySQL數(shù)據(jù)庫(kù)服務(wù)器,以及啟用和停止MySQL服務(wù)。前言了解常用的數(shù)據(jù)管理系統(tǒng)。了解MySQL常用的客戶端軟件。掌握MySQL的安裝、配置和驗(yàn)證。掌握Navicat的安裝方法。掌握登錄MySQL數(shù)據(jù)庫(kù)的方法。學(xué)習(xí)目標(biāo)知識(shí)重點(diǎn)MySQL的安裝、配置和驗(yàn)證。登錄MySQL數(shù)據(jù)庫(kù)的方法。知識(shí)難點(diǎn)MySQL的安裝、配置和驗(yàn)證。知識(shí)重點(diǎn)與難點(diǎn)安裝MySQL任務(wù)1任務(wù)2安裝Navicat學(xué)習(xí)任務(wù)安裝MySQL任務(wù)1任務(wù)描述任務(wù)目標(biāo)任務(wù)分析任務(wù)實(shí)施123知識(shí)鏈接45

在MySQL官網(wǎng)上的“DEVELOPERZONE”下載MySQL壓縮安裝包,進(jìn)行系統(tǒng)環(huán)境變量配置,完成MySQL安裝,登錄到MySQL并修改MySQL賬戶密碼。任務(wù)描述(1)會(huì)正確進(jìn)行系統(tǒng)環(huán)境變量配置。(2)會(huì)正確創(chuàng)建my.cnf配置文件。(3)能正確完成MySQL安裝。(4)會(huì)測(cè)試是否MySQL安裝成功。(5)會(huì)修改MySQL賬戶密碼。(6)引導(dǎo)學(xué)生立足學(xué)科與行業(yè)領(lǐng)域,學(xué)會(huì)學(xué)習(xí)。任務(wù)目標(biāo)安裝MySQL,首先需要從官網(wǎng)上下載安裝包,然后按照配置步驟配置系統(tǒng)環(huán)境變量,創(chuàng)建f配置文件,進(jìn)行初始化和安裝MySQL,最后完成登錄測(cè)試和賬戶密碼的修改。任務(wù)分析關(guān)于MySQLMySQL的安裝方式任務(wù)實(shí)施常用的數(shù)據(jù)庫(kù)管理系統(tǒng)步驟1下載MySQL安裝包打開(kāi)MySQL官方網(wǎng)站,進(jìn)入“DEVELOPERZONE”,點(diǎn)擊“New!MySQL8.0”按鈕,進(jìn)入MySQL官方壓縮安裝包的下載界面。任務(wù)實(shí)施任務(wù)實(shí)施選擇MySQL安裝包操作系統(tǒng)平臺(tái)為“MicrosoftWindows”,點(diǎn)擊“Download”按鈕即可進(jìn)入下載界面,點(diǎn)擊“Nothanks,juststartmydownload.”按鈕,開(kāi)始下載MySQL安裝包。任務(wù)實(shí)施步驟2解壓下載好的安裝包文件解壓好的文件目錄如圖所示。步驟3配置系統(tǒng)環(huán)境變量(1)打開(kāi)“環(huán)境變量”對(duì)話框右擊桌面上的“計(jì)算機(jī)”圖標(biāo),選擇“屬性”在彈出的“控制面板主頁(yè)”中點(diǎn)擊“高級(jí)系統(tǒng)設(shè)置”鏈接項(xiàng),在彈出的“系統(tǒng)屬性”對(duì)話框中選擇“高級(jí)”選項(xiàng)卡,點(diǎn)擊“環(huán)境變量(N)...”按鈕,打開(kāi)“環(huán)境變量”對(duì)話框。任務(wù)實(shí)施任務(wù)實(shí)施小貼士:系統(tǒng)變量Path變量值之間用半角的分號(hào)“;”分割。(2)編輯系統(tǒng)變量Path在“系統(tǒng)變量”列表中找到名為“Path”的變量,點(diǎn)擊“編輯(I)..”按鈕,在彈出的“編輯系統(tǒng)變量”對(duì)話框中,在“變量值(V):”編輯區(qū)域中添加mysql安裝的bin文件目錄的路徑,編輯系統(tǒng)變量對(duì)話框如圖所示,點(diǎn)擊“確定”按鈕。任務(wù)實(shí)施步驟4創(chuàng)建f配置文件在解壓目錄下創(chuàng)建f配置文件,添加配置文件內(nèi)容如圖所示,用于初始化mysql數(shù)據(jù)庫(kù)。小貼士:Mysql服務(wù)默認(rèn)的端口號(hào)是3306。步驟5進(jìn)入mysql下的bin文件夾使用Windows快捷鍵“Windows+R”,進(jìn)入本地Windows運(yùn)行窗口,輸入“cmd”,進(jìn)入Windows命令行模式,然后通過(guò)命令進(jìn)入mysql下的bin文件夾。任務(wù)實(shí)施步驟6初始化mysql輸入命令“mysqld--initialize--console”進(jìn)行初始化mysql,如圖2-8,初始化提示信息的最后是初始化登錄MySQL的賬戶和密碼。初始化后會(huì)發(fā)現(xiàn)文件夾下會(huì)多出一個(gè)新的文件夾data。任務(wù)實(shí)施步驟7安裝mysql服務(wù)在bin目錄下,輸入命令“mysqld--install”完成mysql安裝。任務(wù)實(shí)施小貼士:mysqld是mysql的守護(hù)進(jìn)程??梢酝ㄟ^(guò)命令“mysqld--verbose--help”查看mysqld的命令參數(shù),其中:--initialize //創(chuàng)建數(shù)據(jù)文件目錄和mysql系統(tǒng)數(shù)據(jù)庫(kù),并產(chǎn)生隨機(jī)root密碼--console //寫錯(cuò)誤日志到consolewindow平臺(tái)--install //安裝mysqld作為window服務(wù)并自動(dòng)啟動(dòng)。步驟8服務(wù)啟動(dòng)與停止啟動(dòng)mysql服務(wù)的命令是“netstartmysql”,停止mysql服務(wù)的命令是“netstopmysql”。任務(wù)實(shí)施步驟9測(cè)試在cmd窗口中,輸入命令“mysql-h-uroot-p”回車,然后輸入上面初始化的密碼成功登錄mysql。任務(wù)實(shí)施任務(wù)實(shí)施小貼士:mysql.exe是MySQL自帶的命令行客戶端工具。命令格式是:mysql-h主機(jī)地址-u用戶名-p用戶密碼其中,“-h”后面接MySQL數(shù)據(jù)庫(kù)服務(wù)器的IP地址,“-u”后面接數(shù)據(jù)庫(kù)的用戶名,本次用默認(rèn)用戶名“root”登錄;“-p”后面接“root”用戶的密碼。如果“-p”后面沒(méi)有密碼,則在cmd窗口下允許該命令后,系統(tǒng)會(huì)提示輸入密碼。登錄成功后,在“mysql>”提示符后面可以輸入SQL語(yǔ)句操作MySQL數(shù)據(jù)庫(kù)。每個(gè)SQL語(yǔ)句以分號(hào)“;”或“\g”結(jié)束,并通過(guò)按下回車鍵來(lái)執(zhí)行SQL語(yǔ)句。退出MySQL的命令是“exit;”。步驟10修改mysqlroot賬戶密碼一般初始化形成的密碼比較繁瑣,我們經(jīng)常需要安裝完畢后修改mysqlroot賬戶密碼。修改mysqlroot賬戶密碼的命令是:alteruser'root'@'localhost'identifiedwithmysql_native_passwordby'**這里填寫新密碼**';任務(wù)實(shí)施任務(wù)實(shí)施小貼士:更改密碼也可以使用mysqladmin工具完成,mysqladmin是一個(gè)執(zhí)行管理操作的客戶端程序,命令格式是:mysqladmin-uroot-p舊密碼password新密碼步驟11忘記密碼后修改mysqlroot賬戶密碼忘記密碼,可以通過(guò)以下命令跳過(guò)密碼驗(yàn)證,將root密碼重置為空,無(wú)密登錄MySQL后更改密碼。(1)停止mysql服務(wù):C:\Users\Administrator>netstopmysql(2)跳過(guò)密碼驗(yàn)證:C:\Users\Administrator>mysqld--console--skip-grant-tables--shared-memory(3)新開(kāi)一個(gè)cmd輸入命令,跳過(guò)密碼進(jìn)入mysql;C:\Users\Administrator>mysql-uroot-p任務(wù)實(shí)施(4)把root密碼重置為空:mysql>usemysql;mysql>updateusersetauthentication_string=''whereuser='root';(5)把步驟(2)的cmd窗口關(guān)閉,在步驟(3)的cmd重啟服務(wù):C:\Users\Administrator>netstartmysql(6)無(wú)密登錄MySQL后更改密碼。C:\Users\Administrator>mysql-h-uroot-pmysql>usemysql;mysql>alteruser'root'@'localhost'identifiedby'111111';任務(wù)實(shí)施數(shù)據(jù)庫(kù)管理系統(tǒng)(DatabaseManagementSystem)是一種操縱和管理數(shù)據(jù)庫(kù)的大型軟件,是用于建立、使用和維護(hù)數(shù)據(jù)庫(kù),簡(jiǎn)稱DBMS。是企業(yè)進(jìn)行數(shù)據(jù)管理及維護(hù)不可或缺的數(shù)據(jù)管理軟件。常用數(shù)據(jù)庫(kù)管理系統(tǒng)有Oracle、Sybase、Informix、MicrosoftSQLServer、VisualFoxPro、DB2和MySQL等。知識(shí)鏈接——常用的數(shù)據(jù)庫(kù)管理系統(tǒng)MySQL是目前最為流行的免費(fèi)開(kāi)源的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),是完全網(wǎng)絡(luò)化的跨平臺(tái)的關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng),它是由瑞典MySQLAB公司開(kāi)發(fā),目前屬于Oracle公司。任何人都能從Internet下載MySQL軟件,而無(wú)需支付任費(fèi)用,并且“開(kāi)放源碼”意味著任何人都可以使用和修改該軟件。知識(shí)鏈接——關(guān)于MySQL目前安裝MySQL有兩種形式的文件,一種是MSI格式,另一種是ZIP格式的。(1)MSI格式安裝方式MSI格式安裝方式,MySQL官網(wǎng)上又提供了兩種安裝方式,第一種是在線版聯(lián)網(wǎng)安裝,第二種是本地安裝。二者的區(qū)別是前者是聯(lián)網(wǎng)安裝,當(dāng)安裝時(shí)必須能訪問(wèn)互聯(lián)網(wǎng),后者是離線安裝使用的,一般建議下載離線安裝使用的版本.MSI格式的直接點(diǎn)擊setup.exe就好,按照步驟進(jìn)行。以上兩種安裝方法均為圖形界面向?qū)Х绞桨惭b,優(yōu)點(diǎn)是可以比較清晰地看到整個(gè)mysql安裝過(guò)程,并且可以選擇性的安裝所需的功能。缺點(diǎn)是安裝過(guò)程中會(huì)出現(xiàn)一些環(huán)境依賴問(wèn)題,導(dǎo)致安裝失敗。知識(shí)鏈接——MySQL的安裝方式(2)ZIP格式安裝方式ZIP格式解壓縮之后,進(jìn)行簡(jiǎn)單的配置就可以使用,省時(shí)、省心。知識(shí)鏈接——MySQL的安裝方式安裝Navicat任務(wù)2任務(wù)描述任務(wù)目標(biāo)任務(wù)分析任務(wù)實(shí)施123知識(shí)鏈接45

在Navicat官網(wǎng)上下載最新版本下載安裝。啟動(dòng)Navicat,建立MySQL數(shù)據(jù)庫(kù)連接。任務(wù)描述(1)能正確完成Navicat安裝。(2)能建立MySQL數(shù)據(jù)庫(kù)連接。(3)培養(yǎng)學(xué)生科學(xué)嚴(yán)謹(jǐn)?shù)墓ぷ鲬B(tài)度。任務(wù)目標(biāo)安裝Navicat,首先需要從官網(wǎng)上下載安裝包,然后按照安裝步驟進(jìn)行安裝,最后完成與MySQL數(shù)據(jù)庫(kù)的連接。任務(wù)分析關(guān)于Navicat任務(wù)實(shí)施MySQL常用的客戶端軟件步驟1下載Navicat安裝包,運(yùn)行安裝程序從Navicat官網(wǎng)上下載最新版本下載安裝,運(yùn)行安裝程“navicat150_premium_cs_x64.exe”,進(jìn)入歡迎安裝界面。任務(wù)實(shí)施步驟2許可證協(xié)議選擇“我同意”,點(diǎn)擊“下一步”。任務(wù)實(shí)施步驟3選擇安裝文件夾點(diǎn)擊“瀏覽”,選中之前自己創(chuàng)建的安裝路徑,點(diǎn)擊“下一步”。任務(wù)實(shí)施步驟4選擇開(kāi)始目錄點(diǎn)擊“瀏覽”,選擇在哪里創(chuàng)建快捷方式,一般選擇默認(rèn)位置,點(diǎn)擊“下一步”。任務(wù)實(shí)施步驟5選擇是否在桌面創(chuàng)建圖標(biāo)默認(rèn)勾選,在桌面創(chuàng)建圖標(biāo),點(diǎn)擊“下一步”。任務(wù)實(shí)施步驟6準(zhǔn)備安裝檢查設(shè)置,如果改變?cè)O(shè)置點(diǎn)擊“上一步”,繼續(xù)安裝點(diǎn)擊“安裝”。任務(wù)實(shí)施步驟7完成安裝點(diǎn)擊“完成”退出安裝向?qū)?。任?wù)實(shí)施步驟8打開(kāi)Navicat點(diǎn)擊桌面快捷鍵圖標(biāo),如圖所示,打開(kāi)安裝好的Navicat15,進(jìn)入試用提醒對(duì)話框,如果已經(jīng)購(gòu)買或訂閱,點(diǎn)擊“注冊(cè)”,否則點(diǎn)擊“試用”,進(jìn)入Navicat界面。任務(wù)實(shí)施步驟9新建連接點(diǎn)擊左上角“連接”,選擇“MySQL...”,彈出“MySQL-新建連接”對(duì)話框,輸入連接名、主機(jī)、端口、用戶名和密碼等信息,如圖所示。任務(wù)實(shí)施步驟10完成新建連接這時(shí)候可以看到已連接上的數(shù)據(jù)庫(kù)。任務(wù)實(shí)施MySQL數(shù)據(jù)庫(kù)分為服務(wù)器端和客戶端兩部分。只有當(dāng)服務(wù)器端的MySQL服務(wù)開(kāi)啟后,用戶才可以通過(guò)MySQL客戶端來(lái)登錄MySQL數(shù)據(jù)庫(kù)。MySQL作為數(shù)據(jù)庫(kù)服務(wù)器來(lái)運(yùn)行,任何滿足MySQL通信規(guī)范的軟件都可以作為客戶端來(lái)連接服務(wù)器。常用的客戶端軟件有:Navicat、mysql_front,基于web的phpMyAdmin,還有mysql自帶的命令行客戶端工具等。知識(shí)鏈接——MySQL常用的客戶端軟件Navicat是一套可創(chuàng)建多個(gè)連接的數(shù)據(jù)庫(kù)管理工具,用以方便管理MySQL、Oracle、PostgreSQL、SQLite和/或MariaDB等不同類型的數(shù)據(jù)庫(kù),并支持管理某些云數(shù)據(jù)庫(kù),例如阿里云、?騰訊云。Navicat的功能足以符合專業(yè)開(kāi)發(fā)人員的所有需求,但是對(duì)數(shù)據(jù)庫(kù)服務(wù)器初學(xué)者來(lái)說(shuō)又相當(dāng)容易學(xué)習(xí)。Navicat的用戶界面設(shè)計(jì)良好,可以以安全且簡(jiǎn)單的方法創(chuàng)建、組織、訪問(wèn)和共享信息。知識(shí)鏈接——關(guān)于Navicat《MySQL數(shù)據(jù)庫(kù)項(xiàng)目化教程》感謝聆聽(tīng)項(xiàng)目2安裝MySQL管理系統(tǒng)《MySQL數(shù)據(jù)庫(kù)項(xiàng)目化教程》項(xiàng)目3

創(chuàng)建與管理數(shù)據(jù)庫(kù)MySQL安裝好之后就可以進(jìn)行數(shù)據(jù)庫(kù)的相關(guān)操作了。在MySQL中也可以創(chuàng)建多個(gè)不同名稱的數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)。本項(xiàng)目通過(guò)典型任務(wù)學(xué)習(xí)如何創(chuàng)建數(shù)據(jù)庫(kù),查看數(shù)據(jù)庫(kù),指定當(dāng)前數(shù)據(jù)庫(kù),并對(duì)數(shù)據(jù)庫(kù)進(jìn)行修改和刪除等操作。前言了解字符集和字符排序規(guī)則。掌握數(shù)據(jù)庫(kù)的創(chuàng)建和查看。掌握指定當(dāng)前數(shù)據(jù)庫(kù)。掌握數(shù)據(jù)庫(kù)的修改和刪除。學(xué)習(xí)目標(biāo)知識(shí)重點(diǎn)創(chuàng)建數(shù)據(jù)庫(kù)。刪除數(shù)據(jù)庫(kù)。知識(shí)難點(diǎn)修改數(shù)據(jù)庫(kù)。知識(shí)重點(diǎn)與難點(diǎn)創(chuàng)建數(shù)據(jù)庫(kù)任務(wù)1任務(wù)2管理數(shù)據(jù)庫(kù)學(xué)習(xí)任務(wù)創(chuàng)建數(shù)據(jù)庫(kù)任務(wù)1任務(wù)描述任務(wù)目標(biāo)任務(wù)分析任務(wù)實(shí)施123知識(shí)鏈接45

按要求完成創(chuàng)建數(shù)據(jù)庫(kù)和查看數(shù)據(jù)庫(kù)。具體要求如下:(1)創(chuàng)建三個(gè)數(shù)據(jù)庫(kù),名稱分別為chjgl_db、chjgl_test_db、test_db。其中,數(shù)據(jù)庫(kù)chjgl_test_db指定其默認(rèn)字符集為utf8;創(chuàng)建test_db數(shù)據(jù)庫(kù)時(shí)避免因?yàn)榇嬖谕麛?shù)據(jù)庫(kù),出現(xiàn)錯(cuò)誤提示。(2)查看服務(wù)器主機(jī)上的所有數(shù)據(jù)庫(kù)。(3)查看數(shù)據(jù)庫(kù)“chjgl_test_db”的默認(rèn)字符集。(4)查看與“test_db”完全匹配的數(shù)據(jù)庫(kù)。(5)查看名稱中包含“test”的數(shù)據(jù)庫(kù)。(6)查看名稱中以“chjgl”開(kāi)頭的數(shù)據(jù)庫(kù)。任務(wù)描述(1)會(huì)創(chuàng)建數(shù)據(jù)庫(kù)。(2)會(huì)指定數(shù)據(jù)庫(kù)的默認(rèn)字符集。(3)會(huì)查看數(shù)據(jù)庫(kù)。(4)會(huì)查看與條件匹配的數(shù)據(jù)庫(kù)。(5)通過(guò)學(xué)習(xí)數(shù)據(jù)庫(kù)命名及代碼編寫規(guī)范,讓學(xué)生樹立嚴(yán)謹(jǐn)、認(rèn)真的工作態(tài)度。任務(wù)目標(biāo)依據(jù)創(chuàng)建數(shù)據(jù)庫(kù)和查看數(shù)據(jù)庫(kù)的基本語(yǔ)法格式,選擇相應(yīng)的可選參數(shù)項(xiàng),完成數(shù)據(jù)庫(kù)的創(chuàng)建與查看。任務(wù)分析SQL創(chuàng)建數(shù)據(jù)庫(kù)查看數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)任務(wù)實(shí)施步驟1創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)chjgl_db。mysql>createdatabasechjgl_db;執(zhí)行結(jié)果顯示如所示。結(jié)果信息顯示“QueryOK,1rowaffected(1.37sec)”表示數(shù)據(jù)庫(kù)創(chuàng)建成功。任務(wù)實(shí)施小貼士:在進(jìn)行數(shù)據(jù)庫(kù)操作之前,請(qǐng)確認(rèn)你已經(jīng)連接到MySQL數(shù)據(jù)庫(kù)。步驟2創(chuàng)建數(shù)據(jù)庫(kù),并指定其默認(rèn)字符集創(chuàng)建數(shù)據(jù)庫(kù)chjgl_test_db,并指定其默認(rèn)字符集為utf8(也可在MySQL配置文件中指定)。mysql>createdatabasechjgl_test_dbdefaultcharactersetutf8;執(zhí)行結(jié)果顯示如圖所示。任務(wù)實(shí)施步驟3查看數(shù)據(jù)庫(kù)“chjgl_test_db”的默認(rèn)字符集mysql>showcreatedatabasechjgl_test_db;執(zhí)行結(jié)果顯示如圖所示。從顯示的結(jié)果可以看出,數(shù)據(jù)庫(kù)“chjgl_test_db”的默認(rèn)字符集為指定的utf8。任務(wù)實(shí)施步驟4創(chuàng)建數(shù)據(jù)庫(kù),避免因?yàn)榇嬖谕麛?shù)據(jù)庫(kù)出現(xiàn)錯(cuò)誤提示創(chuàng)建數(shù)據(jù)庫(kù)test_db,避免因?yàn)榇嬖谕麛?shù)據(jù)庫(kù)出現(xiàn)錯(cuò)誤提示。mysql>createdatabaseifnotexiststest_db;執(zhí)行結(jié)果顯示如圖所示。任務(wù)實(shí)施如果服務(wù)器上已經(jīng)存在同名的數(shù)據(jù)庫(kù),并且不用“ifnotexists”選項(xiàng),則會(huì)出現(xiàn)錯(cuò)誤提示。步驟5查看服務(wù)器主機(jī)上的所有數(shù)據(jù)庫(kù)mysql>showdatabases;執(zhí)行結(jié)果顯示如圖所示。從顯示的結(jié)果可以看出,已經(jīng)存在上述步驟創(chuàng)建的三個(gè)數(shù)據(jù)庫(kù),說(shuō)明數(shù)據(jù)庫(kù)創(chuàng)建成功。任務(wù)實(shí)施步驟6查看與“test_db”完全匹配的數(shù)據(jù)庫(kù)mysql>showdatabaseslike'test_db';執(zhí)行結(jié)果顯示如圖所示。結(jié)果顯示只有名稱為“test_db”的數(shù)據(jù)庫(kù)。任務(wù)實(shí)施步驟7查看名稱中包含“test”的數(shù)據(jù)庫(kù)mysql>showdatabaseslike'%test%';執(zhí)行結(jié)果顯示如圖所示。結(jié)果顯示名稱中包含“test”的所有數(shù)據(jù)庫(kù)。任務(wù)實(shí)施步驟8查看名稱中以“chjgl”開(kāi)頭的數(shù)據(jù)庫(kù)mysql>showdatabaseslike'chjgl%';執(zhí)行結(jié)果顯示如圖所示。結(jié)果顯示名稱中以“chjgl”開(kāi)頭的所有數(shù)據(jù)庫(kù)。任務(wù)實(shí)施數(shù)據(jù)庫(kù)是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù)。MySQL自帶四個(gè)默認(rèn)數(shù)據(jù)庫(kù):information_schema:信息數(shù)據(jù)庫(kù),提供了訪問(wèn)數(shù)據(jù)庫(kù)元數(shù)據(jù)的各種視圖,包括數(shù)據(jù)庫(kù)、表、字段類型以及訪問(wèn)權(quán)限等。performance_schema:性能數(shù)據(jù)庫(kù),為MySQL服務(wù)器的運(yùn)行時(shí)狀態(tài)提供了一個(gè)底層的監(jiān)控功能。MySQL默認(rèn)啟動(dòng)了性能數(shù)據(jù)庫(kù)。mysql:存儲(chǔ)了MySQL服務(wù)器正常運(yùn)行所需的各種信息。包含了關(guān)于數(shù)據(jù)庫(kù)對(duì)象元數(shù)據(jù)(metadata)的數(shù)據(jù)字典表和系統(tǒng)表。sys:包含了一系列方便DBA和開(kāi)發(fā)人員利用performance_schema性能數(shù)據(jù)庫(kù)進(jìn)行性能調(diào)優(yōu)和診斷的視圖。知識(shí)鏈接——數(shù)據(jù)庫(kù)SQL(StructuredQueryLanguage,結(jié)構(gòu)化查詢語(yǔ)言),SQL語(yǔ)言是目前廣泛使用的關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言。SQL包括:數(shù)據(jù)定義語(yǔ)言(DataDefinitionLanguage,DDL)定義數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),包括定義數(shù)據(jù)庫(kù)、基本表、視圖和索引4部分。數(shù)據(jù)操作語(yǔ)言(DataManipulationLanguage,DML)包括插入、刪除和更新三種操作。數(shù)據(jù)查詢語(yǔ)言(DataQueryLanguage,DQL)用來(lái)查詢表中的記錄;數(shù)據(jù)控制語(yǔ)言(DataControlLanguage,DCL)對(duì)用戶訪問(wèn)數(shù)據(jù)的控制有基本表和視圖的授權(quán)及回收。知識(shí)鏈接——SQL知識(shí)鏈接——?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)語(yǔ)法分析:CREATEDATABASE:創(chuàng)建具有給定名稱的數(shù)據(jù)庫(kù)命令,CREATESCHEMA是CREATEDATABASE的同義詞。[IFNOTEXISTS]:可選項(xiàng),在創(chuàng)建數(shù)據(jù)庫(kù)之前,對(duì)即將要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)名稱是否已經(jīng)存在進(jìn)行判斷,如果不存在,則創(chuàng)建數(shù)據(jù)庫(kù),如果已經(jīng)存在同名數(shù)據(jù)庫(kù),則不創(chuàng)建數(shù)據(jù)庫(kù)。如果沒(méi)有給出此子句,如果存在同名數(shù)據(jù)庫(kù),則會(huì)報(bào)錯(cuò)。db_name:必選項(xiàng),指定要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)名稱。數(shù)據(jù)庫(kù)名稱必須符合操作系統(tǒng)的文件夾命名規(guī)則,不能全部都是數(shù)字,盡量要有實(shí)際意義。比如my.db、111都是錯(cuò)誤的數(shù)據(jù)庫(kù)名稱。在MySQL中數(shù)據(jù)庫(kù)名稱不區(qū)分大小寫。[DEFAULT]:可選項(xiàng),指定默認(rèn)值。CHARACTERSET[=]charset_name:指定默認(rèn)數(shù)據(jù)庫(kù)字符集。常見(jiàn)的字符集有g(shù)b2312、gbk、utf8等??梢杂肧HOWCHARACTERSET語(yǔ)句顯示可用的字符集。知識(shí)鏈接——?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)COLLATE[=]collation_name:指定數(shù)據(jù)庫(kù)排序規(guī)則。常用的排序規(guī)則有g(shù)b2312_chinese_ci、gbk_chinese_ci、utf8_general_ci等??梢杂肧HOWCOLLATION語(yǔ)句顯示所有可用的排序規(guī)則。DEFAULTENCRYPTION[=]{'Y'|'N'}:定義默認(rèn)數(shù)據(jù)庫(kù)是否加密。知識(shí)鏈接——?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)小貼士:MySQL語(yǔ)句語(yǔ)法中的中括號(hào)“[]”表示可選項(xiàng),大括號(hào)和豎線“{|}”表示“或”的關(guān)系,即豎線兩側(cè)的內(nèi)容選擇一項(xiàng)即可。知識(shí)鏈接——查看數(shù)據(jù)庫(kù)(1)SHOWDATABASES語(yǔ)法語(yǔ)法分析:SHOWDATABASES:列出MySQL服務(wù)器主機(jī)上的數(shù)據(jù)庫(kù)。SHOWSCHEMAS,是SHOWDATABASES的同義詞;LIKE:該LIKE子句(如果存在)指示要匹配的數(shù)據(jù)庫(kù)名稱。LIKE子句可以部分匹配,也可以完全匹配。數(shù)據(jù)庫(kù)名需要用單引號(hào)“''”括起來(lái)。通配符百分號(hào)“%”可以代表任意多個(gè)任意字符,通配符下劃線“_”可以代表任意單個(gè)字符。WHERE:該WHERE子句可以使用更一般的條件來(lái)選擇數(shù)據(jù)庫(kù)知識(shí)鏈接——查看數(shù)據(jù)庫(kù)(2)SHOWCREATEDATABASE語(yǔ)法語(yǔ)法分析:SHOWCREATEDATABASE:顯示CREATEDATABAS創(chuàng)建指定數(shù)據(jù)庫(kù)的語(yǔ)句。SHOWCREATESCHEMA是SHOWCREATEDATABASE的同義詞。db_name:必選項(xiàng),指定CREATEDATABAS創(chuàng)建指定數(shù)據(jù)庫(kù)的名稱。管理數(shù)據(jù)庫(kù)任務(wù)2任務(wù)描述任務(wù)目標(biāo)任務(wù)分析任務(wù)實(shí)施123知識(shí)鏈接45按要求對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理,包括指定當(dāng)前數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)進(jìn)行修改和刪除等操作。具體要求如下:(1)將數(shù)據(jù)庫(kù)test_db指定為當(dāng)前數(shù)據(jù)庫(kù)。(2)將數(shù)據(jù)庫(kù)chjgl_test_db的字符集修改為gb2312,并查看數(shù)據(jù)庫(kù)的字符集。(3)將數(shù)據(jù)庫(kù)chjgl_test_db的排序規(guī)則修改為gb2312_chinese_ci,并查看數(shù)據(jù)庫(kù)的排序規(guī)則。(4)將數(shù)據(jù)庫(kù)test_db從數(shù)據(jù)庫(kù)列表中刪除。消除刪除不存在的數(shù)據(jù)庫(kù)時(shí)產(chǎn)生錯(cuò)誤提示。任務(wù)描述(1)會(huì)指定當(dāng)前數(shù)據(jù)庫(kù)。(2)會(huì)修改數(shù)據(jù)庫(kù)的默認(rèn)字符集。(3)會(huì)刪除數(shù)據(jù)庫(kù)。(4)通過(guò)學(xué)習(xí)數(shù)據(jù)庫(kù)的管理語(yǔ)句,培養(yǎng)學(xué)生科學(xué)嚴(yán)謹(jǐn)?shù)墓ぷ鲬B(tài)度。任務(wù)目標(biāo)學(xué)習(xí)指定當(dāng)前數(shù)據(jù)庫(kù)、修改數(shù)據(jù)庫(kù)和刪除數(shù)據(jù)庫(kù)的基本語(yǔ)法格式,選擇相應(yīng)的可選參數(shù)項(xiàng),完成指定當(dāng)前數(shù)據(jù)庫(kù)、修改數(shù)據(jù)庫(kù)與刪除數(shù)據(jù)庫(kù)等操作。任務(wù)分析查看數(shù)據(jù)庫(kù)字符集查看數(shù)據(jù)庫(kù)排序規(guī)則指定當(dāng)前數(shù)據(jù)庫(kù)任務(wù)實(shí)施字符集和排序規(guī)則修改數(shù)據(jù)庫(kù)刪除數(shù)據(jù)庫(kù)步驟1將數(shù)據(jù)庫(kù)test_db指定為當(dāng)前數(shù)據(jù)庫(kù)mysql>usetest_db;執(zhí)行結(jié)果顯示如圖所示。結(jié)果信息顯示“Databasechanged”表示改變了當(dāng)前的數(shù)據(jù)庫(kù)。任務(wù)實(shí)施更改當(dāng)前數(shù)據(jù)庫(kù)為“chjgl_test_db”,查看數(shù)據(jù)庫(kù)的字符集。mysql>usechjgl_test_db;mysql>showvariableslike'character_set_database';。任務(wù)實(shí)施步驟2修改數(shù)據(jù)庫(kù)chjgl_test_db的默認(rèn)字符集,并查看修改結(jié)果mysql>alterdatabasechjgl_test_dbdefaultcharactersetgb2312;步驟3修改數(shù)據(jù)庫(kù)chjgl_test_db的默認(rèn)排序規(guī)則,并查看修改結(jié)果mysql>alterdatabasechjgl_test_dbdefaultcollategb2312_chinese_ci;任務(wù)實(shí)施更改當(dāng)前數(shù)據(jù)庫(kù)為“chjgl_test_db”,查看數(shù)據(jù)庫(kù)的排序規(guī)則。mysql>usechjgl_test_db;mysql>showvariableslike'collation_database';步驟4將數(shù)據(jù)庫(kù)test_db從數(shù)據(jù)庫(kù)列表中刪除mysql>dropdatabasetest_db;執(zhí)行結(jié)果顯示如圖所示,結(jié)果顯示刪除成功。任務(wù)實(shí)施步驟5消除刪除不存在的數(shù)據(jù)庫(kù)時(shí)產(chǎn)生錯(cuò)誤提示如果數(shù)據(jù)庫(kù)“test_db”不存在。再次執(zhí)行與步驟4相同的命令,直接使用“dropdatabasetest_db”,系統(tǒng)會(huì)報(bào)錯(cuò);如果使用“ifexists”從句,可以防止系統(tǒng)報(bào)此類錯(cuò)誤,如圖所示。mysql>dropdatabaseifexiststest_db;任務(wù)實(shí)施字符集是一組符號(hào)和編碼。排序規(guī)則為在一個(gè)字符集的字符進(jìn)行比較的一組規(guī)則。字符集和排序規(guī)則的默認(rèn)設(shè)置分為四個(gè)級(jí)別:服務(wù)器,數(shù)據(jù)庫(kù),表和列。字符集問(wèn)題不僅影響數(shù)據(jù)存儲(chǔ),還影響客戶端程序和MySQL服務(wù)器之間的通信。MySQLServer服務(wù)器支持多種字符集,包括多個(gè)Unicode字符集?!皊howcharacterset”語(yǔ)句可以顯示可用的字符集。給定的字符集始終至少有一個(gè)排序規(guī)則,大多數(shù)字符集都有幾個(gè)排序規(guī)則。列出字符集的排序規(guī)則的語(yǔ)句是“showcollation”。知識(shí)鏈接——字符集和排序規(guī)則查看MySQL數(shù)據(jù)庫(kù)字符集的語(yǔ)句查看MySQL數(shù)據(jù)庫(kù)排序規(guī)則的語(yǔ)句知識(shí)鏈接——查看MySQL數(shù)據(jù)庫(kù)字符集與排序規(guī)則在MySQL中有很多系統(tǒng)自帶的數(shù)據(jù)庫(kù),在操作數(shù)據(jù)庫(kù)之前就必須要確定是哪一個(gè)數(shù)據(jù)庫(kù)。在MySQL中,use語(yǔ)句用來(lái)完成一個(gè)數(shù)據(jù)庫(kù)到另一個(gè)數(shù)據(jù)庫(kù)的跳轉(zhuǎn)。只有使用use語(yǔ)句來(lái)指定某個(gè)數(shù)據(jù)庫(kù)作為當(dāng)前數(shù)據(jù)庫(kù)之后,才能對(duì)該數(shù)據(jù)庫(kù)及其存儲(chǔ)的數(shù)據(jù)對(duì)象執(zhí)行操作。其基本語(yǔ)法格式為:USEdb_name語(yǔ)法分析:USE:指定某個(gè)數(shù)據(jù)庫(kù)作為當(dāng)前數(shù)據(jù)庫(kù)的命令。db_name:必選項(xiàng),指定要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)名稱。知識(shí)鏈接——指定當(dāng)前數(shù)據(jù)庫(kù)ALTERDATABASE:修改數(shù)據(jù)庫(kù)參數(shù)的命令。ALTERSCHEMA是ALTERDATABASE的同義詞。[db_name]:指定要修改參數(shù)的數(shù)據(jù)庫(kù)名稱,如果沒(méi)有指定,則對(duì)當(dāng)前數(shù)據(jù)庫(kù)進(jìn)行修改。[DEFAULT]:可選項(xiàng),指定默認(rèn)值。CHARACTERSET[=]charset_name:用于修改數(shù)據(jù)庫(kù)的字符集。COLLATE[=]collation_name:用于修改數(shù)據(jù)庫(kù)的排序規(guī)則。DEFAULTENCRYPTION[=]{'Y'|'N'}:定義默認(rèn)數(shù)據(jù)庫(kù)是否加密。知識(shí)鏈接——修改數(shù)據(jù)庫(kù)DROPDATABASE:刪除數(shù)據(jù)庫(kù)中的所有表并刪除數(shù)據(jù)庫(kù)。DROPSCHEMA是DROPDATABASE的同義詞。db_name:必選項(xiàng),指定要?jiǎng)h除的數(shù)據(jù)庫(kù)名稱。[IFEXISTS]:可選項(xiàng),用于防止刪除數(shù)據(jù)庫(kù)時(shí),在數(shù)據(jù)庫(kù)不存在的情況下發(fā)生錯(cuò)誤。知識(shí)鏈接——?jiǎng)h除數(shù)據(jù)庫(kù)《MySQL數(shù)據(jù)庫(kù)項(xiàng)目化教程》感謝聆聽(tīng)項(xiàng)目3創(chuàng)建與管理數(shù)據(jù)庫(kù)《MySQL數(shù)據(jù)庫(kù)項(xiàng)目化教程》項(xiàng)目4創(chuàng)建與管理數(shù)據(jù)表數(shù)據(jù)表是數(shù)據(jù)庫(kù)的重要組成部分,每一個(gè)數(shù)據(jù)庫(kù)主要由若干個(gè)數(shù)據(jù)表組成的。本項(xiàng)目通過(guò)典型任務(wù)了解常用的數(shù)據(jù)類型,會(huì)使用完整性約束條件保證數(shù)據(jù)完整性,學(xué)習(xí)如何創(chuàng)建數(shù)據(jù)表,查看數(shù)據(jù)表,以及對(duì)數(shù)據(jù)表的管理,包括對(duì)數(shù)據(jù)表進(jìn)行更名,修改數(shù)據(jù)表結(jié)構(gòu)和刪除數(shù)據(jù)表等操作。前言了解常用的數(shù)據(jù)類型。了解數(shù)據(jù)表的完整性約束條件。掌握數(shù)據(jù)表的創(chuàng)建、查看、修改與刪除操作。掌握如何為數(shù)據(jù)表添加外鍵約束和刪除外鍵約束。學(xué)習(xí)目標(biāo)知識(shí)重點(diǎn)數(shù)據(jù)表的創(chuàng)建與查看。數(shù)據(jù)表的修改與刪除。知識(shí)難點(diǎn)數(shù)據(jù)表的完整性約束條件。知識(shí)重點(diǎn)與難點(diǎn)創(chuàng)建數(shù)據(jù)表和約束任務(wù)1任務(wù)2維護(hù)數(shù)據(jù)表學(xué)習(xí)任務(wù)外鍵約束任務(wù)3創(chuàng)建數(shù)據(jù)表和約束任務(wù)1任務(wù)描述任務(wù)目標(biāo)任務(wù)分析任務(wù)實(shí)施123知識(shí)鏈接45

按要求在數(shù)據(jù)庫(kù)chjgl_db中創(chuàng)建tb_course(課程表)、tb_student(學(xué)生表)和tb_grade(成績(jī)表)三個(gè)數(shù)據(jù)表。數(shù)據(jù)表結(jié)構(gòu)如表4-1至表4-3所示。任務(wù)描述任務(wù)描述任務(wù)描述(1)了解常用的數(shù)據(jù)類型。(2)會(huì)創(chuàng)建數(shù)據(jù)表。(3)會(huì)查看數(shù)據(jù)表。(4)會(huì)使用完整性約束條件保證數(shù)據(jù)完整性。(5)幫助學(xué)生養(yǎng)成冷靜而有條不紊地完成工作的習(xí)慣。任務(wù)目標(biāo)了解數(shù)據(jù)類型、數(shù)據(jù)完整性約束,依據(jù)創(chuàng)建數(shù)據(jù)表、查看數(shù)據(jù)表的基本語(yǔ)法格式,選擇相應(yīng)的可選參數(shù)項(xiàng),完成各個(gè)數(shù)據(jù)表的創(chuàng)建與查看。任務(wù)分析數(shù)據(jù)類型數(shù)據(jù)表創(chuàng)建數(shù)據(jù)表SQL語(yǔ)句的注釋方法任務(wù)實(shí)施查看數(shù)據(jù)表結(jié)構(gòu)步驟1創(chuàng)建tb_course數(shù)據(jù)表并查看表結(jié)構(gòu)(1)創(chuàng)建數(shù)據(jù)表:tb_course數(shù)據(jù)表mysql>#指定當(dāng)前數(shù)據(jù)庫(kù)為chjgl_dbmysql>usechjgl_db;mysql>/*多行注釋案例/*>以下為創(chuàng)建數(shù)據(jù)表tb_course的語(yǔ)句*/mysql>createtabletb_course->(idintprimarykeyauto_increment,--id字段為主鍵->cnovarchar(20)uniquenotnull,->cnamevarchar(20)notnull->);任務(wù)實(shí)施結(jié)果信息顯示“QueryOK,0rowsaffected(1.79sec)”表示數(shù)據(jù)表創(chuàng)建成功。執(zhí)行結(jié)果顯示如圖所示。任務(wù)實(shí)施小貼士:(1)在創(chuàng)建數(shù)據(jù)表以及對(duì)數(shù)據(jù)表進(jìn)行操作前,需要使用use語(yǔ)句先指定當(dāng)前的數(shù)據(jù)庫(kù)。(2)任何語(yǔ)言都會(huì)有注釋,代碼量越多,注釋的重要性也就越明顯。(2)查看tb_course數(shù)據(jù)表結(jié)構(gòu)mysql>desctb_course;執(zhí)行結(jié)果顯示如所示。執(zhí)行結(jié)果以表格的形式來(lái)展示數(shù)據(jù)表的字段信息,包括字段名(Field)、字段數(shù)據(jù)類型(Type)、是否為空(Null)、是否為主鍵(key)、是否有默認(rèn)值(Default)、獲取到的與給定字段相關(guān)的附加信息(Extra)任務(wù)實(shí)施步驟2創(chuàng)建tb_student數(shù)據(jù)表并查看表結(jié)構(gòu)(1)創(chuàng)建數(shù)據(jù)表:tb_student表mysql>createtabletb_student->(->idintprimarykeyauto_increment,->snovarchar(20)uniquenotnull,->snamevarchar(20)notnull,->spasswordvarchar(10)default'000000',->ssexchar(4)notnulldefault'男',->sspecialtyvarchar(20),->sbirthdaydate,任務(wù)實(shí)施->shomevarchar(50),->semailvarchar(20),->stelenovarchar(20),->smobnovarchar(20),->smemovarchar(50)->);執(zhí)行結(jié)果顯示如圖所示。任務(wù)實(shí)施(2)查看tb_student數(shù)據(jù)表結(jié)構(gòu)mysql>desctb_student;執(zhí)行結(jié)果顯示如圖所示。任務(wù)實(shí)施步驟3創(chuàng)建tb_grade數(shù)據(jù)表并查看數(shù)據(jù)表創(chuàng)建語(yǔ)句的SQL信息(1)創(chuàng)建數(shù)據(jù)表:tb_grade數(shù)據(jù)表mysql>createtabletb_grade->(->idintprimarykeyauto_increment,->snovarchar(20),->cnovarchar(20),->tnovarchar(20),->usualgradefloat,->check(usualgrade>=0andusualgrade<=100),->termgradefloat,

任務(wù)實(shí)施->check(termgrade>=0andtermgrade<=100),->totalgradefloat,->check(totalgrade>=0andtotalgrade<=100)->);執(zhí)行結(jié)果顯示如圖所示。任務(wù)實(shí)施(2)查看tb_grade數(shù)據(jù)表創(chuàng)建語(yǔ)句的SQL信息,SQL語(yǔ)句為:mysql>showcreatetabletb_grade\G;任務(wù)實(shí)施執(zhí)行結(jié)果顯示如圖所示。結(jié)果顯示,tb_grade數(shù)據(jù)表的定義信息顯示了出來(lái),參數(shù)“\G”使顯示結(jié)果整齊美觀注釋在SQL語(yǔ)句中用來(lái)標(biāo)識(shí)說(shuō)明或者注意事項(xiàng)的部分,對(duì)SQL的執(zhí)行沒(méi)有任何影響。注釋內(nèi)容中無(wú)論是英文字母還是漢字都可以隨意使用。MySQL注釋分為單行注釋和多行注釋。(1)單行注釋單行注釋可以使用“#”注釋符,“#”注釋符后直接加注釋內(nèi)容。mysql>#指定當(dāng)前數(shù)據(jù)庫(kù)為mysqlmysql>usemysql;單行注釋也可以使用“--”注釋符,“--”注釋符后需要加一個(gè)空格,再加注釋內(nèi)容。mysql>--指定當(dāng)前數(shù)據(jù)庫(kù)為sysmysql>usesys;知識(shí)鏈接——SQL語(yǔ)句的注釋方法(2)多行注釋多行注釋使用“/**/”注釋符?!?*”用于注釋內(nèi)容的開(kāi)頭,“*/”用于注釋內(nèi)容的結(jié)尾。mysql>/*多行注釋案例/*>指定當(dāng)前數(shù)據(jù)庫(kù)為mysql*/mysql>usemysql;知識(shí)鏈接——SQL語(yǔ)句的注釋方法數(shù)據(jù)類型(data_type)是指系統(tǒng)中所允許的數(shù)據(jù)的類型。MySQL數(shù)據(jù)類型定義了字段中可以存儲(chǔ)什么數(shù)據(jù)以及該數(shù)據(jù)怎樣存儲(chǔ)的規(guī)則。數(shù)據(jù)庫(kù)中的每個(gè)字段都應(yīng)該有適當(dāng)?shù)臄?shù)據(jù)類型,用于限制或允許該字段中存儲(chǔ)的數(shù)據(jù)。例如,列中存儲(chǔ)的為數(shù)字,則相應(yīng)的數(shù)據(jù)類型應(yīng)該為數(shù)值類型。MySQL常用的數(shù)據(jù)類型分為三類,分別是數(shù)字類型、日期/時(shí)間類型、字符串類型。1.數(shù)字類型在MySQL中,數(shù)字類型分為整數(shù)類型和小數(shù)類型。(1)整數(shù)類型在MySQL中,整數(shù)類型包括tinyint、smallint、mediumint、int、bigint,每種整數(shù)類型所需的存儲(chǔ)和范圍見(jiàn)表4-4所示。知識(shí)鏈接——數(shù)據(jù)類型知識(shí)鏈接——數(shù)據(jù)類型(2)小數(shù)類型小數(shù)類型分為浮點(diǎn)數(shù)類型和定點(diǎn)數(shù)類型,浮點(diǎn)數(shù)類型包括float(單精度浮點(diǎn)數(shù))和double(雙精度浮點(diǎn)數(shù))。代表近似數(shù)字?jǐn)?shù)據(jù)值。MySQL對(duì)于float使用四個(gè)字節(jié),對(duì)于double使用八個(gè)字節(jié)。定點(diǎn)數(shù)類型decimal和numeric,用于存儲(chǔ)精確的數(shù)值數(shù)據(jù)。在保持精確精度很重要時(shí)使用這些類型,例如使用貨幣數(shù)據(jù)。在MySQL中,numeric等同于decimal。在decimal聲明中,通常指定精度和小數(shù)位數(shù)。聲明格式為:DECIMAL(M,D)其中,M是精度,表示值存儲(chǔ)的有效位數(shù),D是標(biāo)度,表示小數(shù)點(diǎn)后小數(shù)的位數(shù)。如果不指定精度,默認(rèn)為DECIMAL(10,0)。例如:DECIMAL(5,2)。知識(shí)鏈接——數(shù)據(jù)類型對(duì)于float,MySQL允許在關(guān)鍵字float后面的括號(hào)中的位中選擇性地指定精度,MySQL還支持此可選的精度,但精度值僅用于確定存儲(chǔ)大小,精度在0~23之間會(huì)產(chǎn)生一個(gè)4字節(jié)的單精度f(wàn)loat列;在24~53之間的精度產(chǎn)生8字節(jié)雙精度double列。MySQL還支持非標(biāo)準(zhǔn)語(yǔ)法:FLOAT(M,D),M值是用于指定所有的位數(shù),D值用于指定小數(shù)點(diǎn)后的位數(shù)。知識(shí)鏈接——數(shù)據(jù)類型2.日期/時(shí)間類型日期/時(shí)間類型主要用于表示日期和時(shí)間,MySQL中的日期/時(shí)間類型包括year、time、date、datetime和timestamp。每一種類型都有其合法的取值范圍,當(dāng)指定為不合法的值時(shí),系統(tǒng)將以“0”值替換。日期/時(shí)間類型的介紹見(jiàn)表4-5所示,其中,yyyy表示年,mm表示月,dd表示日,hh表示小時(shí),mm表示分鐘,ss表示秒。知識(shí)鏈接——數(shù)據(jù)類型3.字符串類型字符串類型用來(lái)存儲(chǔ)普通文本、圖像和聲音等的二進(jìn)制數(shù)據(jù)。MySQL中的字符串類型包括char、varchar、binary、varbinary、blob、text、enum和set等。表4-6中列出了MySQL中的字符串類型,括號(hào)中的M表示可以為其指定長(zhǎng)度。知識(shí)鏈接——數(shù)據(jù)類型知識(shí)鏈接——數(shù)據(jù)表數(shù)據(jù)表是數(shù)據(jù)庫(kù)的重要組成部分,每一個(gè)數(shù)據(jù)庫(kù)都是由若干個(gè)數(shù)據(jù)表組成的。一個(gè)數(shù)據(jù)表包含若干個(gè)字段或記錄。創(chuàng)建數(shù)據(jù)表,指的是在已經(jīng)創(chuàng)建的數(shù)據(jù)庫(kù)中建立新數(shù)據(jù)表。創(chuàng)建數(shù)據(jù)表的過(guò)程是規(guī)定數(shù)據(jù)表中字段的屬性過(guò)程,同時(shí)也是實(shí)施數(shù)據(jù)完整性約束的過(guò)程。創(chuàng)建數(shù)據(jù)表的命令語(yǔ)法比較多,其主要是由表創(chuàng)建定義(create-definition)、表選項(xiàng)(table-options)和分區(qū)選項(xiàng)(partition-options)所組成的。創(chuàng)建數(shù)據(jù)表的基本語(yǔ)法格式為:知識(shí)鏈接——?jiǎng)?chuàng)建數(shù)據(jù)表語(yǔ)法分析:CREATETABLE:創(chuàng)建數(shù)據(jù)表的命令。tbl_name:必選項(xiàng),指定要?jiǎng)?chuàng)建的數(shù)據(jù)表的名稱。TEMPORARY:可選項(xiàng),表示創(chuàng)建一個(gè)臨時(shí)表。IFNOTEXISTS:可選項(xiàng),在創(chuàng)建數(shù)據(jù)表前,對(duì)即將要?jiǎng)?chuàng)建的數(shù)據(jù)表名是否已經(jīng)存在進(jìn)行判斷,在沒(méi)有給出此條語(yǔ)句時(shí),如果存在同名數(shù)據(jù)表,則會(huì)報(bào)錯(cuò)。create_definition,...:對(duì)表中的每一字段進(jìn)行定義,基本語(yǔ)法格式如下:知識(shí)鏈接——?jiǎng)?chuàng)建數(shù)據(jù)表語(yǔ)法分析:col_name:必選項(xiàng),數(shù)據(jù)表字段的名稱。column_definition:由字段的數(shù)據(jù)類型,以及可能的空值說(shuō)明、完整性約束或數(shù)據(jù)表索引組成,基本語(yǔ)法格式為:語(yǔ)法分析:data_type:字段的數(shù)據(jù)類型。NOTNULL|NULL:非空約束,指定該字段是否允許空值,如果不允許空值必須使用NOTNULL,如果省略該項(xiàng),默認(rèn)值為NULL,表示允許空值。非空約束用來(lái)約束數(shù)據(jù)表中的字段不能為空。例如,在學(xué)生信息表中,如果不添加學(xué)生姓名,那么這條記錄是沒(méi)有用的。DEFAULT{literal|(expr)}:默認(rèn)值約束,設(shè)置字段的默認(rèn)值。默認(rèn)值約束用來(lái)約束當(dāng)數(shù)據(jù)表中某個(gè)字段不輸入值時(shí),自動(dòng)為其添加一個(gè)已經(jīng)設(shè)置好的值。知識(shí)鏈接——?jiǎng)?chuàng)建數(shù)據(jù)表DEFAULT{literal|(expr)}:默認(rèn)值約束,設(shè)置字段的默認(rèn)值。默認(rèn)值約束用來(lái)約束當(dāng)數(shù)據(jù)表中某個(gè)字段不輸入值時(shí),自動(dòng)為其添加一個(gè)已經(jīng)設(shè)置好的值。例如,在注冊(cè)學(xué)生信息時(shí),如果不輸入學(xué)生的性別,那么會(huì)默認(rèn)設(shè)置一個(gè)性別或者輸入一個(gè)“未知”。默認(rèn)值約束通常用在已經(jīng)設(shè)置了非空約束的列,這樣能夠防止數(shù)據(jù)表在錄入數(shù)據(jù)時(shí)出現(xiàn)錯(cuò)誤。AUTO_INCREMENT:自增長(zhǎng)約束,當(dāng)主鍵定義為自增長(zhǎng)后,這個(gè)主鍵的值就不再需要用戶輸入數(shù)據(jù)了,而由數(shù)據(jù)庫(kù)系統(tǒng)根據(jù)定義自動(dòng)賦值。每增加一條記錄,主鍵會(huì)自動(dòng)以相同的步長(zhǎng)進(jìn)行增長(zhǎng)。知識(shí)鏈接——?jiǎng)?chuàng)建數(shù)據(jù)表UNIQUE[KEY]:唯一約束,與主鍵約束有一個(gè)相似的地方,就是它們都能夠確保列的唯一性。與主鍵約束不同的是,唯一約束在一個(gè)表中可以有多個(gè),并且設(shè)置唯一約束的列是允許有空值的,雖然只能有一個(gè)空值。例如,在用戶信息表中,要避免表中的用戶名重名,就可以把用戶名列設(shè)置為唯一約束。唯一約束可以在創(chuàng)建表時(shí)直接設(shè)置,通常設(shè)置在除了主鍵以外的其它列上。在定義完列之后直接使用UNIQUE關(guān)鍵字指定唯一約束。[PRIMARY]KEY:主鍵約束,是使用最頻繁的約束。在設(shè)計(jì)數(shù)據(jù)表時(shí),一般情況下,都會(huì)要求數(shù)據(jù)表中設(shè)置一個(gè)主鍵。知識(shí)鏈接——?jiǎng)?chuàng)建數(shù)據(jù)表主鍵是數(shù)據(jù)表的一個(gè)特殊字段,該字段能唯一標(biāo)識(shí)該數(shù)據(jù)表中的每條信息。例如,學(xué)生信息表中的學(xué)號(hào)是唯一的。check_constraint_definition:檢查約束,是用來(lái)檢查數(shù)據(jù)表中,字段值是否有效的一個(gè)手段。例如,學(xué)生信息表中的年齡字段是沒(méi)有負(fù)數(shù)的,并且數(shù)值也是有限制的。如果是大學(xué)生,年齡一般應(yīng)該在18~30歲之間。在設(shè)置字段的檢查約束時(shí)要根據(jù)實(shí)際情況進(jìn)行設(shè)置,這樣能夠減少無(wú)效數(shù)據(jù)的輸入。檢查約束使用CHECK關(guān)鍵字,具體的語(yǔ)法格式為CHECK<表達(dá)式>。知識(shí)鏈接——?jiǎng)?chuàng)建數(shù)據(jù)表小貼士:以上幾種數(shù)據(jù)表完整性約束中,一個(gè)數(shù)據(jù)表中只能有一個(gè)主鍵約束,其它約束可以有多個(gè)。查看數(shù)據(jù)表結(jié)構(gòu)是指查看數(shù)據(jù)庫(kù)中已經(jīng)存在的數(shù)據(jù)表的定義。查看數(shù)據(jù)表結(jié)構(gòu)的語(yǔ)句包括“describe”語(yǔ)句和“showcreatetable”語(yǔ)句。1.查看數(shù)據(jù)表的基本結(jié)構(gòu)語(yǔ)句MySQL中,“describe”語(yǔ)句可以查看數(shù)據(jù)表的基本結(jié)構(gòu),具體包括字段名稱(Field)、字段類型(Type)、字段是否為null、字段是否為主鍵(key)、字段的默認(rèn)值(default)和Extra?;菊Z(yǔ)法格式為:語(yǔ)法分析:DESCRIBE:查看數(shù)據(jù)表基本結(jié)構(gòu)的命令,DESCRIBE命令的簡(jiǎn)寫形式是DESC。tbl_name:必選項(xiàng),指定要查看的數(shù)據(jù)表的名稱。知識(shí)鏈接——查看數(shù)據(jù)表結(jié)構(gòu)2.查看數(shù)據(jù)表創(chuàng)建語(yǔ)句的SQL信息“showcreatetable”是以SQL語(yǔ)句的形式來(lái)顯示數(shù)據(jù)表的信息。和“describe”語(yǔ)句相比,“showcreatetable”顯示的內(nèi)容更加豐富,它可以查看數(shù)據(jù)表的存儲(chǔ)引擎和字符編碼;另外,還可以通過(guò)\G參數(shù)來(lái)控制展示格式。查看數(shù)據(jù)表創(chuàng)建語(yǔ)句的SQL信息的基本語(yǔ)法格式為:知識(shí)鏈接——查看數(shù)據(jù)表結(jié)構(gòu)語(yǔ)法分析:SHOWCREATETABLE:查看數(shù)據(jù)表創(chuàng)建語(yǔ)句的SQL信息的命令。tbl_name:必選項(xiàng),指定要查看的數(shù)據(jù)表的名稱。\G:使顯示結(jié)果格式化,如果不使用\G,顯示的結(jié)果會(huì)比較混亂。維護(hù)數(shù)據(jù)表任務(wù)2任務(wù)描述任務(wù)目標(biāo)任務(wù)分析任務(wù)實(shí)施123知識(shí)鏈接45

實(shí)際工作中,在創(chuàng)建好數(shù)據(jù)表以后,經(jīng)常需要對(duì)其進(jìn)行維護(hù)。主要包括修改數(shù)據(jù)表和刪除數(shù)據(jù)表。修改數(shù)據(jù)表指的是修改數(shù)據(jù)庫(kù)中已經(jīng)存在的數(shù)據(jù)表的結(jié)構(gòu),包括對(duì)數(shù)據(jù)表的名稱、字段、字段類型等的修改,以及對(duì)字段進(jìn)行添加和刪除、修改字段的順序,以及修改數(shù)據(jù)表的字符集和排序規(guī)則等,依據(jù)需求完成數(shù)據(jù)表的修改與刪除。任務(wù)描述(1)會(huì)修改數(shù)據(jù)表的名稱、字段和字段類型。(2)會(huì)修改數(shù)據(jù)表的字符集和排序規(guī)則。(3)會(huì)添加和刪除字段。(4)會(huì)修改字段的順序。(5)培養(yǎng)學(xué)生理論聯(lián)系實(shí)際、實(shí)事求是的工作作風(fēng)。任務(wù)目標(biāo)學(xué)習(xí)修改數(shù)據(jù)表、刪除數(shù)據(jù)表的基本語(yǔ)法格式,選擇相應(yīng)的可選參數(shù)項(xiàng),完成數(shù)據(jù)表的的維護(hù)。任務(wù)分析刪除數(shù)據(jù)表任務(wù)實(shí)施修改數(shù)據(jù)表步驟1修改數(shù)據(jù)表名將數(shù)據(jù)表tb_course改名為tb_course_info,SQL語(yǔ)句為:mysql>altertabletb_courserenametotb_course_info;結(jié)果信息顯示“QueryOK,0rowsaffected(0.98sec)”表示數(shù)據(jù)表更名成功。執(zhí)行結(jié)果顯示如圖所示。任務(wù)實(shí)施也可以用“showtables”語(yǔ)句查看更名后的結(jié)果,結(jié)果顯示,數(shù)據(jù)表名稱已經(jīng)修改,如圖所示。任務(wù)實(shí)施步驟2修改字符集和排序規(guī)則將數(shù)據(jù)表tb_course_info的字符集修改為gb2312,排序規(guī)則修改為gb2312_chinese_ci,SQL語(yǔ)句為:mysql>altertabletb_course_infocharactersetgb2312defaultcollategb2312_chinese_ci;步驟3添加字段(1)在數(shù)據(jù)表tb_course_info的末尾添加一個(gè)varchar(50)類型的字段cmemo,SQL語(yǔ)句為:mysql>altertabletb_course_infoaddcmemovarchar(50);任務(wù)實(shí)施(2)在數(shù)據(jù)表tb_course_info的第一列添加一個(gè)int(4)類型的字段cid,SQL語(yǔ)句為:mysql>altertabletb_course_infoaddcidint(4)first;(3)在數(shù)據(jù)表tb_course_info中添加一個(gè)varchar(10)類型的字段ctype,ctype字段位于cname字段的后面,SQL語(yǔ)句為:mysql>altertabletb_course_infoaddctypevarchar(10)aftercname;任務(wù)實(shí)施(4)查看修改后的數(shù)據(jù)表tb_course_info的表結(jié)構(gòu),SQL語(yǔ)句為:mysql>desctb_course_info;步驟4修改字段名稱及字段類型修改數(shù)據(jù)表tb_course_info的結(jié)構(gòu),將ctype字段名稱改為c_type,同時(shí)將數(shù)據(jù)類型修改為char(30),并查看修改結(jié)果,SQL語(yǔ)句為:mysql>altertabletb_course_infochangectypec_typechar(30);mysql>desctb_course_info;任務(wù)實(shí)施步驟5修改字段數(shù)據(jù)類型修改數(shù)據(jù)表tb_course_info的結(jié)構(gòu),將cmemo字段的數(shù)據(jù)類型修改為text,并查看修改結(jié)果,SQL語(yǔ)句為:mysql>altertabletb_course_infomodifycmemotext;mysql>desctb_course_info;任務(wù)實(shí)施步驟6更改字段的順序(1)將數(shù)據(jù)表tb_course_info中的id字段放到第一列,SQL語(yǔ)句為:mysql>altertabletb_course_infomodifyidintfirst;任務(wù)實(shí)施任務(wù)實(shí)施(2)將數(shù)據(jù)表tb_course_info中的cmemo字段放到字段cname之后,并查看修改后的結(jié)果,SQL語(yǔ)句為:mysql>altertabletb_course_infomodifycmemotextaftercname;mysql>desctb_course_info;步驟7刪除字段刪除數(shù)據(jù)表tb_course_info中的cid字段、c_type字段和cmemo字段,并查看刪除后的結(jié)果,SQL語(yǔ)句為:mysql>altertabletb_course_infodropcid;mysql>altertabletb_course_infodropc_type;mysql>altertabletb_course_infodropcmemo;mysql>desctb_course_info;任務(wù)實(shí)施步驟8刪除數(shù)據(jù)表(1)創(chuàng)建一個(gè)數(shù)據(jù)表tb_tmp,并列出當(dāng)前數(shù)據(jù)庫(kù)下的所有數(shù)據(jù)表,SQL語(yǔ)句為:mysql>createtabletb_tmp(tmp1char(10));mysql>showtables;任務(wù)實(shí)施(2)刪除數(shù)據(jù)表tb_tmp,并列出當(dāng)前數(shù)據(jù)庫(kù)下的所有數(shù)據(jù)表,SQL語(yǔ)句為:mysql>droptableifexiststb_tmp;mysql>showtables;任務(wù)實(shí)施小貼士:數(shù)據(jù)表被刪除后,數(shù)據(jù)表的結(jié)構(gòu)和表中的數(shù)據(jù)都會(huì)被刪除。在刪除數(shù)據(jù)表時(shí)需要特別謹(jǐn)慎。語(yǔ)法分析:ALTERTABLE:修改數(shù)據(jù)表結(jié)構(gòu)的命令。知識(shí)鏈接——修改數(shù)據(jù)表的基本語(yǔ)法tbl_name:指定要修改的數(shù)據(jù)表的名稱。alter_specification:修改選項(xiàng),是對(duì)表要進(jìn)行的具體修改。ADD[COLUMN]col_namecolumn_definition[FIRST|AFTERcol_name]:添加字段,其中FIRST是指在數(shù)據(jù)表的第一列添加一個(gè)字段,AFTER是指在某一個(gè)字段后添加一個(gè)字段,col_name是字段名,column_definition是字段的定義。ADD[COLUMN](col_namecolumn_definition,...):在數(shù)據(jù)表的末尾添加字段。CHANGE[COLUMN]old_col_namenew_col_namecolumn_definition[FIRST|AFTERcol_name]:修改字段名及字段類型,更改字段的順序。[DEFAULT]CHARACTERSET[=]charset_name[COLLATE[=]collation_name]:修改數(shù)據(jù)表的字符集和排序規(guī)則。知識(shí)鏈接——修改數(shù)據(jù)表的基本語(yǔ)法DROP[COLUMN]col_name:刪除字段。MODIFY[COLUMN]col_namecolumn_definition[FIRST|AFTERcol_name]:修改字段數(shù)據(jù)類型,更改字段的順序。RENAME[TO|AS]new_tbl_name:修改表名。知識(shí)鏈接——修改數(shù)據(jù)表的基本語(yǔ)法DROPTABLE:刪除數(shù)據(jù)表關(guān)鍵字。IFEXISTS:可選項(xiàng),用于防止刪除數(shù)據(jù)表時(shí),在數(shù)據(jù)表不存在的情況下發(fā)生錯(cuò)誤。tbl_name:必選項(xiàng),指定要?jiǎng)h除的數(shù)據(jù)表的名稱。知識(shí)鏈接——?jiǎng)h除數(shù)據(jù)表的基本語(yǔ)法外鍵約束任務(wù)3任務(wù)描述任務(wù)目標(biāo)任務(wù)分析任務(wù)實(shí)施123知識(shí)鏈接45

外鍵是數(shù)據(jù)表的一個(gè)特殊字段。主要用來(lái)建立主表與從表的關(guān)聯(lián)關(guān)系,為兩個(gè)數(shù)據(jù)表建立連接,約束兩個(gè)數(shù)據(jù)表中數(shù)據(jù)的一致性和完整性。根據(jù)需求,完成在數(shù)據(jù)表上創(chuàng)建外鍵約束、刪除外鍵約束操作。任務(wù)描述(1)會(huì)在創(chuàng)建數(shù)據(jù)表時(shí)設(shè)置外鍵約束。(2)會(huì)修改數(shù)據(jù)表時(shí)添加外鍵約束。(3)會(huì)刪除外鍵約束。(4)通過(guò)學(xué)習(xí)外鍵約束,讓學(xué)生樹立規(guī)范意識(shí)。任務(wù)目標(biāo)學(xué)習(xí)創(chuàng)建外鍵約束、刪除外鍵約束的語(yǔ)句,理解外鍵約束的作用,根據(jù)具體的需求完成添加外鍵約束,查看外鍵名稱以及刪除外鍵約束。任務(wù)分析在創(chuàng)建數(shù)據(jù)表時(shí)設(shè)置外鍵約束在修改數(shù)據(jù)表時(shí)添加外鍵約束刪除外鍵約束外鍵任務(wù)實(shí)施步驟1在創(chuàng)建數(shù)據(jù)表時(shí)設(shè)置外鍵約束(1)在數(shù)據(jù)庫(kù)chjgl_db中創(chuàng)建數(shù)據(jù)表tb_department(系部),數(shù)據(jù)表結(jié)構(gòu)如表4-7。任務(wù)實(shí)施mysql>usechjgl_db;mysql>createtabletb_department->(idintprimarykeyauto_increment,->d_novarchar(20)uniquenotnull,->d_namevarchar(20)notnull);(2)在數(shù)據(jù)庫(kù)chjgl_db中創(chuàng)建數(shù)據(jù)表tb_class(班級(jí)),數(shù)據(jù)表結(jié)構(gòu)如表4-8。并創(chuàng)建外鍵約束,讓字段dno作為外鍵,關(guān)聯(lián)到數(shù)據(jù)表tb_department的字段d_no。。任務(wù)實(shí)施任務(wù)實(shí)施mysql>createtabletb_class->(idintprimarykeyauto_increment,->c_novarchar(20)uniquenotnull,->c_namevarchar(20)notnull,->dnovarchar(20),->constraintfk_dep_idforeignkey(dno)referencestb_department(d_no));步驟2查看外鍵約束名稱mysql>showcreatetabletb_class\G;執(zhí)行結(jié)果顯示如圖所示。結(jié)果顯示,數(shù)據(jù)表tb_class的外鍵約束名稱為“fk_dep_id”。任務(wù)實(shí)施步驟3刪除外鍵約束刪除數(shù)據(jù)表tb_class中的外鍵約束fk_dep_id。mysql>altertabletb_classdropforeignkeyfk_dep_id;任務(wù)實(shí)施步驟4在修改數(shù)據(jù)表時(shí)添加外鍵約束修改數(shù)據(jù)表tb_class,將字段dno設(shè)置為外鍵,與數(shù)據(jù)表tb_department的字段d_no進(jìn)行關(guān)聯(lián),在數(shù)據(jù)表tb_department上刪除記錄時(shí),同步刪除數(shù)據(jù)表tb_class的匹配記錄;在數(shù)據(jù)表tb_department上更新數(shù)據(jù)時(shí),如果數(shù)據(jù)表tb_class中有匹配的記錄,則不允許主表對(duì)外鍵進(jìn)行任何更新操作。mysql>altertabletb_classaddconstraintfk_dep_id1foreignkey(dno)referencestb_department(d_no)ondeletecascadeonupdaterestrict;任務(wù)實(shí)施外鍵是數(shù)據(jù)表的一個(gè)特殊字段,經(jīng)常與主鍵約束一起使用。對(duì)于兩個(gè)具有關(guān)聯(lián)關(guān)系的數(shù)據(jù)表而言,相關(guān)聯(lián)字段中主鍵所在的數(shù)據(jù)表就是主表,外鍵所在的數(shù)據(jù)表就是從表。外鍵用來(lái)建立主表與從表的關(guān)聯(lián)關(guān)系,為兩個(gè)表的數(shù)據(jù)建立連接,約束兩個(gè)表中數(shù)據(jù)的一致性和完整性。知識(shí)鏈接——外鍵在createtable語(yǔ)句中,通過(guò)foreignkey關(guān)鍵字來(lái)指定外鍵,基本語(yǔ)法格式為:知識(shí)鏈接——在創(chuàng)建數(shù)據(jù)表時(shí)設(shè)置外鍵約束語(yǔ)法分析:[CONSTRAINT[symbol]]:用來(lái)指定外鍵約束的名稱,如果省略,系統(tǒng)會(huì)自動(dòng)分配一個(gè)名稱。FOREIGNKEY(col_name,...):將從表中的字段作為外鍵的字段。REFERENCEStbl_name(col_name,...):映射到主表的字段。知識(shí)鏈接——在創(chuàng)建數(shù)據(jù)表時(shí)設(shè)置外鍵約束[ONDELETEreference_option]和[ONUPDATEreference_option]:指定當(dāng)刪除或修改主表任何子表中存在或匹配的外鍵值時(shí),最終動(dòng)作取決于外鍵約束定義中的和ONDELETE和ONUPDATE選項(xiàng)。支持5種不同的動(dòng)作,如果沒(méi)有指定ONDELETE或者ONUPDATE,默認(rèn)的動(dòng)作為RESTRICT。其中各選項(xiàng)參數(shù)的含義為:(1)RESTRICT:同NOACTION。(2)CASCADE:在主表上刪除或更新記錄時(shí),同步刪除或更新子表的匹配記錄。(3)SETNULL:在主表中刪除或更新記錄時(shí),將子表上匹配記錄的外鍵值設(shè)置為null。(4)NOACTION:如果子表中有匹配的記錄,則不允許主表對(duì)外鍵進(jìn)行任何更新或者刪除操作。(5)SETDEFAULT:在主表上刪除或更新記錄時(shí),子表將外鍵值設(shè)置成一個(gè)默認(rèn)值。。在altertable語(yǔ)句中,通過(guò)addforeignkey關(guān)鍵字來(lái)指定外鍵,基本語(yǔ)法格式為:知識(shí)鏈接——在修改數(shù)據(jù)表時(shí)添加外鍵約束語(yǔ)法分析同“二、在創(chuàng)建數(shù)據(jù)表時(shí)設(shè)置外鍵約束”。知識(shí)鏈接——?jiǎng)h除外鍵約束可以使用altertable語(yǔ)句刪除外鍵,具體語(yǔ)法格式為:語(yǔ)法分析:tbl_name:要?jiǎng)h除外鍵約束的數(shù)據(jù)表名。symbol:要?jiǎng)h除外鍵約束的外鍵名?!禡ySQL數(shù)據(jù)庫(kù)項(xiàng)目化教程》感謝聆聽(tīng)再見(jiàn)!《MySQL數(shù)據(jù)庫(kù)項(xiàng)目化教程》項(xiàng)目5更新數(shù)據(jù)表數(shù)據(jù)數(shù)據(jù)表結(jié)構(gòu)創(chuàng)建完成后就可以向數(shù)據(jù)表中插入新的數(shù)據(jù)了,還可以及對(duì)已存在的數(shù)據(jù)進(jìn)行修改與刪除,即更新數(shù)據(jù)表中的數(shù)據(jù)。本項(xiàng)目通過(guò)典型任務(wù)學(xué)習(xí)如何按照需求向數(shù)據(jù)庫(kù)中已有的數(shù)據(jù)表中插入數(shù)據(jù),并查看數(shù)據(jù)表中的數(shù)據(jù)、以及對(duì)數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行修改,或者將錯(cuò)誤無(wú)效的數(shù)據(jù)進(jìn)行刪除等操作。前言掌握如何向數(shù)據(jù)表中插入數(shù)據(jù)。掌握如何修改數(shù)據(jù)表中的數(shù)據(jù)。掌握如何刪除數(shù)據(jù)表中的數(shù)據(jù)。掌握如何清空數(shù)據(jù)表。。學(xué)習(xí)目標(biāo)知識(shí)重點(diǎn)插入數(shù)據(jù)。修改數(shù)據(jù)。知識(shí)難點(diǎn)刪除數(shù)據(jù)。知識(shí)重點(diǎn)與難點(diǎn)插入數(shù)據(jù)任務(wù)1任務(wù)2修改與刪除數(shù)據(jù)學(xué)習(xí)任務(wù)插入數(shù)據(jù)任務(wù)1任務(wù)描述任務(wù)目標(biāo)任務(wù)分析任務(wù)實(shí)施123知識(shí)鏈接45數(shù)據(jù)庫(kù)與數(shù)據(jù)表創(chuàng)建完成之后,數(shù)據(jù)庫(kù)中是沒(méi)有數(shù)據(jù)的,請(qǐng)按照需求向數(shù)據(jù)庫(kù)已有的數(shù)據(jù)表中插入數(shù)據(jù),并查看插入數(shù)據(jù)后數(shù)據(jù)表中的數(shù)據(jù),需求主要分為以下幾種情況:(1)向數(shù)據(jù)表中所有字段插入數(shù)據(jù)。(2)向數(shù)據(jù)表中部分字段插入數(shù)據(jù)。(3)向數(shù)據(jù)表中插入多條數(shù)據(jù)。(4)給數(shù)據(jù)表中指定字段賦值。(5)向數(shù)據(jù)表中插入其他數(shù)據(jù)表中的數(shù)據(jù)。任務(wù)描述(1)會(huì)向數(shù)據(jù)表中插入數(shù)據(jù)。(2)會(huì)向數(shù)據(jù)表中插入多條數(shù)據(jù)。(3)會(huì)給數(shù)據(jù)表中指定字段賦值。(4)會(huì)向數(shù)據(jù)表中插入其他數(shù)據(jù)表中的數(shù)據(jù)。(5)會(huì)查看數(shù)據(jù)表中的數(shù)據(jù)。(6)依據(jù)需求選擇不同的語(yǔ)句格式,培養(yǎng)學(xué)生迅速地發(fā)現(xiàn)問(wèn)題和解決問(wèn)題的思維敏捷性。任務(wù)目標(biāo)學(xué)習(xí)向數(shù)據(jù)表插入數(shù)據(jù)的三個(gè)基本語(yǔ)句格式,根據(jù)具體的需求選擇合適的語(yǔ)句,完成向數(shù)據(jù)表中所有字段插入數(shù)據(jù),向數(shù)據(jù)表中部分字段插入數(shù)據(jù),向數(shù)據(jù)表中插入多條數(shù)據(jù),給數(shù)據(jù)表中指定字段賦值,向數(shù)據(jù)表中插入其他數(shù)據(jù)表中的數(shù)據(jù),并查看數(shù)據(jù)表中的數(shù)據(jù)。任務(wù)分析insert...values語(yǔ)句insert...set語(yǔ)句insert...select語(yǔ)句插入數(shù)據(jù)任務(wù)實(shí)施查看數(shù)據(jù)表中所有數(shù)據(jù)步驟1向數(shù)據(jù)表中所有字段插入數(shù)據(jù)(1)向數(shù)據(jù)表tb_student中所有字段插入一條數(shù)據(jù),插入時(shí)指定所有字段名。插入數(shù)據(jù)為(1,'202115010201','劉嘉寧','111111','女','計(jì)算機(jī)應(yīng)用','2000

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論