MySQL數(shù)據(jù)庫(kù)管理與應(yīng)用 單元4 創(chuàng)建與管理表教案_第1頁(yè)
MySQL數(shù)據(jù)庫(kù)管理與應(yīng)用 單元4 創(chuàng)建與管理表教案_第2頁(yè)
MySQL數(shù)據(jù)庫(kù)管理與應(yīng)用 單元4 創(chuàng)建與管理表教案_第3頁(yè)
MySQL數(shù)據(jù)庫(kù)管理與應(yīng)用 單元4 創(chuàng)建與管理表教案_第4頁(yè)
MySQL數(shù)據(jù)庫(kù)管理與應(yīng)用 單元4 創(chuàng)建與管理表教案_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

教案授課教師部門課程名稱MySQL數(shù)據(jù)庫(kù)管理與應(yīng)用課次10,11,12,13單元標(biāo)題單元4創(chuàng)建與管理表授課學(xué)時(shí)8學(xué)時(shí)授課班級(jí)授課時(shí)間上課地點(diǎn)合作教師日期節(jié)次教學(xué)目標(biāo)知識(shí)目標(biāo)1.熟練掌握用命令方式創(chuàng)建和管理數(shù)據(jù)表的方法。2.熟練掌握用命令方式插入、修改、刪除記錄的方法。3.理解索引的作用、類型。4.熟練掌握創(chuàng)建、修改和刪除索引的方法。5.熟練掌握使用檢查約束、默認(rèn)約束等實(shí)現(xiàn)域完整性的方法。6.熟練掌握使用主鍵約束、唯一性約束實(shí)現(xiàn)實(shí)體完整性的方法。7.熟練掌握使用主鍵約束、外鍵約束實(shí)現(xiàn)表與表之間的參照完整性的方法。能力目標(biāo)1.會(huì)創(chuàng)建數(shù)據(jù)表。2.會(huì)修改已創(chuàng)建的數(shù)據(jù)表。3.會(huì)查看表的結(jié)構(gòu)和表中的數(shù)據(jù)等。4.會(huì)刪除數(shù)據(jù)表。5.會(huì)向數(shù)據(jù)表中插入數(shù)據(jù)。6.會(huì)修改、刪除數(shù)據(jù)表中的數(shù)據(jù)。7.會(huì)創(chuàng)建、修改和刪除索引。8.會(huì)使用主鍵約束、唯一性約束實(shí)現(xiàn)實(shí)體完整性。9.會(huì)使用檢查約束、默認(rèn)約束等實(shí)現(xiàn)域完整性。10.會(huì)使用主鍵約束、外鍵約束實(shí)現(xiàn)表與表之間的參照完整性。素質(zhì)目標(biāo)1.使學(xué)生熟練掌握各種操作命令的用法,培養(yǎng)學(xué)生吃苦耐勞的品質(zhì)和精益求精的工匠精神。2.培養(yǎng)學(xué)生自主學(xué)習(xí)能力和自我提高能力。3.通過以小組為單位學(xué)習(xí),培養(yǎng)學(xué)生的人際溝通能力和團(tuán)隊(duì)協(xié)作意識(shí)。教學(xué)重點(diǎn)1.用命令方式和圖形工具創(chuàng)建和管理數(shù)據(jù)表。2.用命令方式和圖形工具插入、修改、刪除記錄。3.創(chuàng)建、修改和刪除索引。4.實(shí)現(xiàn)數(shù)據(jù)完整性的方法。教學(xué)難點(diǎn)1.用命令方式創(chuàng)建和管理數(shù)據(jù)表。2.用命令方式修改記錄。3.用主鍵約束、外鍵約束實(shí)現(xiàn)表與表之間的參照完整性的方法。教學(xué)方法線上自學(xué),課堂理實(shí)一體化教學(xué)、項(xiàng)目式教學(xué),第二課堂拓展學(xué)習(xí)等。教學(xué)資源教材數(shù)字資源教材配套微課、PPT、數(shù)據(jù)庫(kù)建庫(kù)建表腳本、習(xí)題解答等;智慧職教平臺(tái):學(xué)習(xí)通平臺(tái):其他:教學(xué)環(huán)境配備有電腦、電子教室或投影儀、有線或無線網(wǎng)絡(luò)環(huán)境、黑板或白板等教學(xué)工具的計(jì)算機(jī)房或多媒體教室。MySQL、MySQLWorkbench或NavicatforMySQL等軟件。教學(xué)過程第10次課(任務(wù)1操作學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)的表)教學(xué)環(huán)節(jié)教學(xué)活動(dòng)主要內(nèi)容學(xué)生活動(dòng)說明課前預(yù)習(xí)學(xué)生通過在線課程平臺(tái)預(yù)習(xí)本單元內(nèi)容。課中講練一、導(dǎo)入新課教師提問學(xué)生:創(chuàng)建好數(shù)據(jù)庫(kù)之后,接下來應(yīng)該做什么?創(chuàng)建好數(shù)據(jù)庫(kù)之后,接下來要確定在數(shù)據(jù)庫(kù)中創(chuàng)建哪些數(shù)據(jù)表。數(shù)據(jù)表是用于存儲(chǔ)數(shù)據(jù)庫(kù)中數(shù)據(jù)的數(shù)據(jù)庫(kù)對(duì)象。創(chuàng)建數(shù)據(jù)表的過程是定義表中數(shù)據(jù)列的過程,也是實(shí)施數(shù)據(jù)完整性(包括域完整性、實(shí)體完整性和參照完整性)約束的過程。本單元將分別用命令方式和MySQLWorkbench圖形化工具創(chuàng)建、查看、修改、復(fù)制、刪除cjgl數(shù)據(jù)庫(kù)中的表以及操作表中數(shù)據(jù),創(chuàng)建索引和實(shí)現(xiàn)數(shù)據(jù)的完整性約束。二、新課講解任務(wù)1操作學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)的表教師演示講解操作過程,介紹相關(guān)命令的用法。在cjgl數(shù)據(jù)庫(kù)中有3張表:學(xué)生表xs、課程表kc和成績(jī)表cj,這些表的結(jié)構(gòu)分別如表4-1~表4-3所示,表的初始數(shù)據(jù)分別如表4-4~表4-6所示。4.1.1用命令方式創(chuàng)建和管理數(shù)據(jù)表1.查看表在MySQL中,可以用SHOWTABLES語(yǔ)句查看當(dāng)前數(shù)據(jù)庫(kù)中有哪些表。其語(yǔ)法格式如下。SHOWTABLES[LIKE匹配模式];【例題4.1】查看示例數(shù)據(jù)庫(kù)world中的表。在MySQL中,可以用SHOWTABLESTATUS語(yǔ)句查看數(shù)據(jù)庫(kù)中數(shù)據(jù)表的狀態(tài)信息,如數(shù)據(jù)表的名稱、存儲(chǔ)引擎、結(jié)構(gòu)文件版本號(hào)、記錄的存儲(chǔ)格式、創(chuàng)建時(shí)間等。其語(yǔ)法格式如下。SHOWTABLESTATUS[FROM數(shù)據(jù)庫(kù)名][LIKE匹配模式];【例題4.2】查看示例數(shù)據(jù)庫(kù)world中表city的狀態(tài)信息。2.創(chuàng)建表在MySQL中,可以使用CREATETABLE語(yǔ)句創(chuàng)建表,該語(yǔ)句完整的語(yǔ)法比較復(fù)雜,主要由表創(chuàng)建定義(create_definition)、表選項(xiàng)(table_options)和分區(qū)選項(xiàng)(partition_options)等部分組成。其基本語(yǔ)法格式如下。CREATE[TEMPORARY]TABLE[IFNOTEXISTS]表名[(create_definition,...)] --表創(chuàng)建定義[table_options] --表選項(xiàng)[partition_options] --分區(qū)選項(xiàng)[IGNORE|REPLACE][AS]query_expression【例題4.3】在學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)cjgl中,用命令方式創(chuàng)建學(xué)生表xs1。在創(chuàng)建數(shù)據(jù)表之前,應(yīng)先指定當(dāng)前數(shù)據(jù)庫(kù)。默認(rèn)的情況下,表被創(chuàng)建在當(dāng)前數(shù)據(jù)庫(kù)中。若沒有當(dāng)前數(shù)據(jù)庫(kù)、指定數(shù)據(jù)庫(kù)不存在或表已存在,則數(shù)據(jù)庫(kù)系統(tǒng)會(huì)報(bào)錯(cuò)。以上語(yǔ)句執(zhí)行后,可查看數(shù)據(jù)表是否創(chuàng)建成功。3.實(shí)現(xiàn)主鍵約束、空值約束、唯一性約束、默認(rèn)約束和檢查約束教師演示講解操作過程,介紹相關(guān)命令的用法。完整性約束是MySQL提供的自動(dòng)保持?jǐn)?shù)據(jù)完整性的一種方法。它通過限制列中數(shù)據(jù)、記錄中的數(shù)據(jù)和表之間的數(shù)據(jù)來保證數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確性和有效性。在MySQL中有6種約束:主鍵約束、空值約束、唯一性約束、默認(rèn)約束、外鍵約束和檢查約束。完整性約束的基本語(yǔ)法格式如下。[CONSTRAINT<約束名>]<約束類型>在MySQL中,對(duì)于基本表的約束分為列約束和表約束。列約束是對(duì)某一個(gè)特定列的約束,包含在列定義中,直接跟在列的其他定義之后,用空格分隔,不必指定列名。表約束與列定義相互獨(dú)立,不包括在列定義中,通常用于對(duì)多個(gè)列一起進(jìn)行約束,與列定義之間用“,”分隔,定義表約束時(shí)必須指出要約束的列的名稱。此處僅介紹主鍵約束、空值約束、唯一性約束、默認(rèn)約束和檢查約束,外鍵約束將在任務(wù)4中介紹。(1)主鍵約束。主鍵(PrimaryKey)是數(shù)據(jù)表中的一列或多列的組合,能夠唯一地確定表中的每一條記錄。在設(shè)計(jì)數(shù)據(jù)表時(shí),一般情況下都會(huì)在表中設(shè)置一個(gè)主鍵。例如,學(xué)號(hào)是學(xué)生表的主鍵,學(xué)號(hào)和課程號(hào)是成績(jī)表的主鍵。主鍵約束的基本語(yǔ)法格式如下。列名數(shù)據(jù)類型PRIMARYKEY --列級(jí)約束或[CONSTRAINT約束名]PRIMARYKEY(列名1,…,列名n) --表級(jí)約束主鍵約束用于定義基本表的主鍵,要求主鍵列的數(shù)據(jù)唯一,并且不允許為空。主鍵既可用于列約束,也可用于表約束。主鍵可以結(jié)合外鍵來定義不同數(shù)據(jù)表之間的關(guān)系,并且可以加快數(shù)據(jù)庫(kù)查詢的速度。【例題4.4】在學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)cjgl中,用命令方式創(chuàng)建課程表kc,主鍵為課程號(hào)。單字段組成的主鍵可以在定義列的同時(shí)指定。多字段聯(lián)合組成的主鍵只能在定義完所有列之后指定?!纠}4.5】在學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)cjgl中,用命令方式創(chuàng)建成績(jī)表cj,主鍵為(學(xué)號(hào),課程號(hào))。(2)非空約束。非空約束(NOTNULL)用來控制是否允許某列的值為NULL。列的值默認(rèn)為NULL。當(dāng)某一列的值一定要不為NULL才有意義的時(shí)候,應(yīng)為其設(shè)置非空約束。非空約束的基本語(yǔ)法格式如下。列名數(shù)據(jù)類型NOTNULL非空約束只能用于定義列約束。創(chuàng)建非空約束的方法如例題4.4所示。對(duì)于使用了非空約束的字段,如果在添加數(shù)據(jù)時(shí)沒有指定值,數(shù)據(jù)庫(kù)系統(tǒng)會(huì)報(bào)錯(cuò)。(3)唯一性約束。唯一性約束(UNIQUE)是指一個(gè)或者多個(gè)列的組合值具有唯一性,用于防止在列中輸入重復(fù)的值。定義了唯一性約束的列稱為唯一鍵,系統(tǒng)自動(dòng)為唯一鍵創(chuàng)建唯一索引,從而保證了唯一鍵的唯一性。唯一性約束的基本語(yǔ)法格式如下。列名數(shù)據(jù)類型UNIQUE --列級(jí)約束或[CONSTRAINT<約束名>]UNIQUE(列名1,…,列名n) --表級(jí)約束例如,在學(xué)生表中,如果要避免表中的學(xué)生姓名重復(fù),就可以為姓名列設(shè)置唯一性約束。(4)默認(rèn)值約束。默認(rèn)值約束(DEFAULT)用來指定某列的默認(rèn)值。當(dāng)數(shù)據(jù)表中的某個(gè)列未輸入值時(shí),系統(tǒng)自動(dòng)為其添加一個(gè)已經(jīng)設(shè)置好的值。默認(rèn)值約束的基本語(yǔ)法格式如下。列名數(shù)據(jù)類型DEFAULT默認(rèn)值約束只能用于定義列約束。(5)檢查約束。檢查約束(CHECK)用來檢查數(shù)據(jù)表中的字段值是否有效。檢查約束在創(chuàng)建表時(shí)定義,可以定義成列級(jí)約束,也可以定義成表級(jí)約束。其基本語(yǔ)法格式如下。列名數(shù)據(jù)類型CHECK(表達(dá)式)【例題4.6】在學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)cjgl中,用命令方式創(chuàng)建學(xué)生表xs,表的結(jié)構(gòu)見表4-1。創(chuàng)建一個(gè)結(jié)構(gòu)與學(xué)生表xs相同的表xs2。課堂小結(jié):教師針對(duì)學(xué)生實(shí)驗(yàn)中出現(xiàn)的典型問題進(jìn)行點(diǎn)評(píng),學(xué)生討論、查漏補(bǔ)缺。教師總結(jié)本次課學(xué)習(xí)的主要內(nèi)容。學(xué)生小組練習(xí),教師巡視指導(dǎo)。學(xué)生小組練習(xí)學(xué)生小組練習(xí)課后拓展提升學(xué)生利用某種國(guó)產(chǎn)數(shù)據(jù)庫(kù)平臺(tái)(如達(dá)夢(mèng)數(shù)據(jù)庫(kù)等)創(chuàng)建cjgl數(shù)據(jù)庫(kù)中的表。課后作業(yè)實(shí)驗(yàn)4創(chuàng)建人力資源管理數(shù)據(jù)庫(kù)中的表和操作表數(shù)據(jù)教材習(xí)題4教學(xué)總結(jié)第11次課(任務(wù)2操作學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)中表的數(shù)據(jù))教學(xué)環(huán)節(jié)教學(xué)活動(dòng)主要內(nèi)容說明課前預(yù)習(xí)學(xué)生通過在線課程平臺(tái)預(yù)習(xí)本單元內(nèi)容。課中講練一、復(fù)習(xí)鞏固教師檢查學(xué)生對(duì)前次上課內(nèi)容的掌握情況,對(duì)學(xué)生吸收不好的知識(shí)點(diǎn)進(jìn)行再次鞏固講解。二、導(dǎo)入新課表創(chuàng)建成功以后,需要先向表中插入數(shù)據(jù),及時(shí)修改錯(cuò)誤數(shù)據(jù),當(dāng)數(shù)據(jù)不再使用時(shí),要?jiǎng)h除數(shù)據(jù)。對(duì)表中數(shù)據(jù)的增、刪、改、查是數(shù)據(jù)庫(kù)中最常見的數(shù)據(jù)操作,在MySQL中可以分別使用INSERT語(yǔ)句、UPDATE語(yǔ)句和DELETE語(yǔ)句實(shí)現(xiàn)對(duì)表中記錄的插入、更新和刪除操作。本任務(wù)將介紹在MySQL中如何使用命令方式和圖形化工具操作數(shù)據(jù)表中的記錄。三、新課講解任務(wù)2操作學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)中表的數(shù)據(jù)4.2.1用命令方式向數(shù)據(jù)表中插入數(shù)據(jù)教師演示講解操作過程,介紹相關(guān)命令的用法。在MySQL中,可以使用INSERT語(yǔ)句向數(shù)據(jù)表中插入一條或多條記錄,也可以向數(shù)據(jù)表中的指定列插入數(shù)據(jù),還可以將一個(gè)表的查詢結(jié)果插入另一個(gè)表中。INSERT語(yǔ)句的基本語(yǔ)法格式如下。INSERTINTO表名[(<列名1>[,…,<列名n>])]VALUES(值1)[,…,(值n)];1.向數(shù)據(jù)表中插入一條記錄向表中的所有列插入數(shù)據(jù)時(shí)有如下兩種方法。①指定全部列名。此時(shí)列名的順序可以不是表中列定義時(shí)的順序,但要保證值的順序與列的順序相同。②省略全部列名。此時(shí)需要為表的每一個(gè)列指定值,并且值的順序必須和數(shù)據(jù)表中列定義時(shí)的順序相同?!纠}4.18】在學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)cjgl中創(chuàng)建一個(gè)與學(xué)生表xs結(jié)構(gòu)相同的表student,向表student中插入如下的一行記錄。(001112,劉國(guó)梁,計(jì)算機(jī)應(yīng)用,男,1/30/20000:0:0,46)2.向數(shù)據(jù)表中插入多條記錄當(dāng)使用單條INSERT語(yǔ)句插入多條記錄時(shí),只需將每條記錄用圓括號(hào)括起來即可,即一個(gè)列名對(duì)應(yīng)多個(gè)列值。這樣處理比使用多條INSERT語(yǔ)句更快?!纠}4.19】向?qū)W生成績(jī)管理數(shù)據(jù)庫(kù)cjgl的表student中插入如下兩行記錄。(001113,劉國(guó)梁,計(jì)算機(jī)應(yīng)用,男,01/30/20000:0:0,46)(001114,馬龍,計(jì)算機(jī)應(yīng)用,男,06/12/20000:0:0,46)3.向數(shù)據(jù)表中的指定列插入數(shù)據(jù)可以使用INSERT語(yǔ)句向表的指定列中插入數(shù)據(jù),其他列的值為表定義時(shí)的默認(rèn)值。【例題4.20】向?qū)W生成績(jī)管理數(shù)據(jù)庫(kù)cjgl的表student中插入如下記錄。(001115,樊振東,男,2/12/20010:0:0)4.向數(shù)據(jù)表中插入查詢得到的記錄集基本語(yǔ)法格式如下。INSERTINTO表名1(列名1)SELECT列名2FROM表名2WHERE<條件表達(dá)式>LIMIT0,n;此語(yǔ)句的功能為將從表2中查詢到的符合條件的記錄插入表1中,表2中原來的記錄保持不變。其中,“LIMIT0,n”用于指定查詢出多少條記錄,即從第幾條記錄開始返回?!纠}4.21】向?qū)W生成績(jī)管理數(shù)據(jù)庫(kù)cjgl的表student中插入學(xué)生表xs的所有記錄。4.2.2用命令方式更新數(shù)據(jù)表中的數(shù)據(jù)教師演示講解操作過程,介紹相關(guān)命令的用法。在MySQL中,使用UPDATE語(yǔ)句可以更新表中的所有記錄,也可以更新表中滿足更新條件的記錄,其基本語(yǔ)法格式如下。UPDATE表名SET<列名1>=值1[,<列名2>=值2,…][WHERE子句]1.更新數(shù)據(jù)表中的所有記錄如果忽略WHERE子句,MySQL將更新表中所有的行?!纠}4.22】在學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)cjgl中,將student表中的所有學(xué)生的總學(xué)分都增加10。2.更新數(shù)據(jù)表中的特定記錄根據(jù)WHERE子句的條件確定要更新的記錄?!纠}4.23】在學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)cjgl中,將student表中學(xué)號(hào)為001221的同學(xué)的專業(yè)改為“軟件技術(shù)”。4.2.3用命令方式刪除數(shù)據(jù)表中的數(shù)據(jù)教師演示講解操作過程,介紹相關(guān)命令的用法。在MySQL中,可以使用DELETE語(yǔ)句或TRUNCATETABLE語(yǔ)句來刪除表數(shù)據(jù)。(1)使用DELETE語(yǔ)句刪除數(shù)據(jù)。使用DELETE語(yǔ)句可以刪除表的一行或者多行數(shù)據(jù),其語(yǔ)法格式如下。DELETEFROM表名[WHERE子句]其中,WHERE子句用于指定刪除條件。如果沒有WHERE子句,將刪除表中的所有記錄?!纠}4.24】在學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)cjgl中,刪除student表中學(xué)號(hào)為001112的記錄。刪除student表中所有網(wǎng)絡(luò)技術(shù)專業(yè)的學(xué)生記錄。(2)使用TRUNCATETABLE語(yǔ)句刪除表。使用TRUNCATETABLE語(yǔ)句可以刪除表中的所有數(shù)據(jù),其語(yǔ)法格式如下。TRUNCATE[TABLE]表名【例題4.25】在學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)cjgl中,刪除student表中的所有記錄。(3)DELETE語(yǔ)句和TRUNCATE語(yǔ)句的區(qū)別。4.2.4使用MySQLWorkbench圖形化工具管理數(shù)據(jù)表中的數(shù)據(jù)教師演示講解操作過程。打開MySQLWorkbench圖形化工具,在SCHEMAS欄中展開當(dāng)前默認(rèn)的cjgl數(shù)據(jù)庫(kù),展開Tables,右擊xs表,在圖4-5所示的彈出式菜單中選擇SelectRows–Limit1000,打開圖4-10所示的編輯數(shù)據(jù)表的界面,即可對(duì)xs表中的數(shù)據(jù)進(jìn)行編輯操作,其中,Edit欄中包含3個(gè)按鈕,分別為“修改”“插入”“刪除”按鈕。圖4-10編輯數(shù)據(jù)表課堂小結(jié):教師針對(duì)學(xué)生實(shí)驗(yàn)中出現(xiàn)的典型問題進(jìn)行點(diǎn)評(píng),學(xué)生討論、查漏補(bǔ)缺。教師總結(jié)本次課學(xué)習(xí)的主要內(nèi)容。學(xué)生小組練習(xí),教師巡視指導(dǎo)。學(xué)生小組練習(xí)學(xué)生小組練習(xí)學(xué)生小組練習(xí)課后拓展提升學(xué)生利用某種國(guó)產(chǎn)數(shù)據(jù)庫(kù)平臺(tái)(如達(dá)夢(mèng)數(shù)據(jù)庫(kù)等)操作cjgl數(shù)據(jù)庫(kù)中的表數(shù)據(jù)。課后作業(yè)教材習(xí)題4實(shí)驗(yàn)4創(chuàng)建人力資源管理數(shù)據(jù)庫(kù)中的表和操作表數(shù)據(jù)教學(xué)總結(jié)第12次課(任務(wù)3操作學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)中的索引)教學(xué)環(huán)節(jié)教學(xué)活動(dòng)主要內(nèi)容學(xué)生活動(dòng)說明課前預(yù)習(xí)學(xué)生通過在線課程平臺(tái)預(yù)習(xí)本單元內(nèi)容。課中講練一、復(fù)習(xí)鞏固教師檢查學(xué)生對(duì)前次上課內(nèi)容的掌握情況,對(duì)學(xué)生吸收不好的知識(shí)點(diǎn)進(jìn)行再次鞏固講解。二、導(dǎo)入新課教師提問學(xué)生:如何使用新華字典快速查單字?索引是MySQL中十分重要的數(shù)據(jù)庫(kù)對(duì)象,常用于實(shí)現(xiàn)數(shù)據(jù)的快速查詢,是數(shù)據(jù)庫(kù)性能調(diào)優(yōu)技術(shù)的基礎(chǔ)。三、新課講解任務(wù)3操作學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)中的索引教師結(jié)合PPT演示講解。4.3.1認(rèn)識(shí)索引1.索引的概念在MySQL中,訪問數(shù)據(jù)表的行數(shù)據(jù)有如下兩種方式。①順序訪問,即在表中從頭到尾逐行掃描,直到找到符合條件的所有行。順序訪問的實(shí)現(xiàn)比較簡(jiǎn)單,但是當(dāng)表中有大量數(shù)據(jù)的時(shí)候,效率非常低。②索引訪問,即通過遍歷索引來直接訪問表中的行。使用這種方式的前提是為表創(chuàng)建一個(gè)索引。所謂索引就是根據(jù)數(shù)據(jù)表中的一列或若干列,按照一定順序創(chuàng)建的列值與記錄行之間的對(duì)應(yīng)關(guān)系表,類似于書籍的目錄,可以快速定位需要的信息,而無須從頭到尾查閱整本書。2.索引的類型按照索引結(jié)構(gòu)的特點(diǎn),MySQL中支持的索引主要分為B-Tree索引和Hash索引兩種類型。按照索引值的特點(diǎn),可以將索引分為以下幾類。(1)普通索引。(2)唯一索引。(3)單列索引和組合索引。(4)全文索引。(5)空間索引。3.索引的優(yōu)缺點(diǎn)4.索引的創(chuàng)建原則4.3.2用命令方式創(chuàng)建索引教師演示講解操作過程,介紹相關(guān)命令的用法。1.查看索引可以使用SHOWINDEX語(yǔ)句查看指定數(shù)據(jù)庫(kù)的表中已經(jīng)存在的索引,其語(yǔ)法格式如下。SHOWINDEXFROM表名[FROM<數(shù)據(jù)庫(kù)名>]【例題4.26】查看成績(jī)管理數(shù)據(jù)庫(kù)cjgl的學(xué)生表xs中已定義的索引。2.使用CREATEINDEX語(yǔ)句在已有表上創(chuàng)建索引可以使用CREATEINDEX語(yǔ)句為指定的表按照指定的列創(chuàng)建索引,其語(yǔ)法格式如下。CREATE[UNIQUE|FULLTEXT|SPATIAL]INDEX|KEY[索引名]ON表名(列名[(length)][ASC|DESC][,…]);【例題4.27】在成績(jī)管理數(shù)據(jù)庫(kù)cjgl中,為學(xué)生表xs的“姓名”列創(chuàng)建名為idx_xs_xm的普通索引?!纠}4.28】在成績(jī)管理數(shù)據(jù)庫(kù)cjgl中,在成績(jī)表cj的“學(xué)號(hào)”列和“課程號(hào)”列上創(chuàng)建組合索引。3.在創(chuàng)建表時(shí)創(chuàng)建索引在使用CREATETABLE語(yǔ)句創(chuàng)建索引時(shí),可以采用直接在某個(gè)列定義后面添加INDEX的方式。其語(yǔ)法格式如下。CREATETABLE表名(列名數(shù)據(jù)類型[完整性約束條件],UNIQUE|FULLTEXT|SPATIAL]INDEX|KEY索引名(列名[(length)][ASC|DESC]),)【例題4.29】在成績(jī)管理數(shù)據(jù)庫(kù)cjgl中,在課程表kc的“課程名”列上創(chuàng)建唯一索引idx_kc。4.3.3用命令方式管理索引教師演示講解操作過程,介紹相關(guān)命令的用法。1.修改索引在MySQL中沒有修改索引的語(yǔ)句,可以通過刪除原索引,再根據(jù)需要?jiǎng)?chuàng)建一個(gè)同名的索引來實(shí)現(xiàn)修改索引的操作。2.刪除索引不再需要的索引會(huì)降低表的更新速度,影響數(shù)據(jù)庫(kù)的性能,可以使用DROPINDEX或ALTERTABLE語(yǔ)句將其刪除。DROPINDEX語(yǔ)句在內(nèi)部被映射到ALTERTABLE語(yǔ)句中,其語(yǔ)法格式如下。DROPINDEX索引名ON表名【例題4.30】在成績(jī)管理數(shù)據(jù)庫(kù)cjgl中,刪除xs表的索引idx_xs_xm。4.3.4使用MySQLWorkbench圖形化工具創(chuàng)建和管理索引教師演示講解操作過程。1.創(chuàng)建索引在MySQLWorkbench圖形化工具中,打開修改數(shù)據(jù)表的窗口,單擊下方的Indexes選項(xiàng)卡,打開圖4-12所示的創(chuàng)建和管理索引對(duì)話框。2.管理索引(1)修改索引。利用MySQLWorkbench圖形化工具修改索引,可以修改索引的名字、類型、索引引用列和索引參數(shù)等,操作方法與創(chuàng)建索引基本相同。(2)刪除索引。在圖4-13所示的界面中,右擊要?jiǎng)h除的索引idx_xs_xm,在彈出式菜單中選擇DeleteSelected,如圖4-15所示。課堂小結(jié):教師針對(duì)學(xué)生實(shí)驗(yàn)中出現(xiàn)的典型問題進(jìn)行點(diǎn)評(píng),學(xué)生討論、查漏補(bǔ)缺。教師總結(jié)本次課學(xué)習(xí)的主要內(nèi)容。學(xué)生小組練習(xí),教師巡視指導(dǎo)。學(xué)生小組練習(xí)學(xué)生小組練習(xí)課后拓展提升學(xué)生利用某種國(guó)產(chǎn)數(shù)據(jù)庫(kù)平臺(tái)(如達(dá)夢(mèng)數(shù)據(jù)庫(kù)等)創(chuàng)建cjgl數(shù)據(jù)庫(kù)中的表。課后作業(yè)實(shí)驗(yàn)5創(chuàng)建和管理人力資源管理數(shù)據(jù)庫(kù)中的索引教材習(xí)題4教學(xué)總結(jié)第13次課(任務(wù)4實(shí)現(xiàn)學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)中表的數(shù)據(jù)完整性)教學(xué)環(huán)節(jié)教學(xué)活動(dòng)主要內(nèi)容說明課前預(yù)習(xí)學(xué)生通過在線課程平臺(tái)預(yù)習(xí)本單元內(nèi)容。課中講練一、復(fù)習(xí)鞏固教師檢查學(xué)生對(duì)前次上課內(nèi)容的掌握情況,對(duì)學(xué)生吸收不好的知識(shí)點(diǎn)進(jìn)行再次鞏固講解。二、導(dǎo)入新課對(duì)兩個(gè)關(guān)聯(lián)的表進(jìn)行數(shù)據(jù)插入和刪除操作時(shí),如何保持它們之間的數(shù)據(jù)是一致的?三、新課講解任務(wù)4實(shí)現(xiàn)學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)中表的數(shù)據(jù)完整性4.4.1認(rèn)識(shí)數(shù)據(jù)完整性教師結(jié)合PPT演示講解。數(shù)據(jù)完整性是指數(shù)據(jù)庫(kù)中的數(shù)據(jù)在邏輯上的一致性和準(zhǔn)確性。使用完整性約束的目的是防止不合法的數(shù)據(jù)進(jìn)入基表中。數(shù)據(jù)庫(kù)的完整性是通過數(shù)據(jù)庫(kù)內(nèi)容的完整性約束來實(shí)現(xiàn)的,用來表明數(shù)據(jù)庫(kù)的存在狀態(tài)是否合理。在MySQL中,數(shù)據(jù)完整性包括實(shí)體完整性、域完整性和參照完整性。每一種數(shù)據(jù)完整性,都可以由不同的約束類型來實(shí)現(xiàn)。對(duì)于數(shù)據(jù)庫(kù)的每個(gè)操作都要判定其是否符合完整性約束,只有當(dāng)全部判定為符合時(shí)才可以執(zhí)行。4.4.2用命令方式實(shí)現(xiàn)數(shù)據(jù)完整性教師結(jié)合PPT演示講解。1.實(shí)施實(shí)體完整性實(shí)體完整性又稱行完整性,它要求表中的每一行必須是唯一的??梢酝ㄟ^主鍵約束、唯一約束、索引或標(biāo)識(shí)屬性來實(shí)現(xiàn)實(shí)體完整性。2.實(shí)施域完整性域完整性又稱列完整性,用于判斷某一個(gè)列的輸入是否有效,以保證數(shù)據(jù)庫(kù)中的數(shù)據(jù)取值的合理性。域完整性的實(shí)現(xiàn)方法有:通過定義列的數(shù)據(jù)類型來實(shí)現(xiàn);通過定義CHECK約束、默認(rèn)值和非空屬性等來限定數(shù)據(jù)的格式及取值范圍,以確保有效的數(shù)據(jù)輸入列中。3.實(shí)施參照完整性(1)參照完整性的概念。參照完整性又稱引用完整性,要求對(duì)兩個(gè)關(guān)聯(lián)的表進(jìn)行數(shù)據(jù)插入和刪除操作時(shí),它們之間的數(shù)據(jù)是一致的。這兩個(gè)表中一個(gè)稱為主表,另一個(gè)稱為從表。所謂主表也稱父表或引用表(ReferencedTable),即對(duì)于兩個(gè)具有關(guān)聯(lián)關(guān)系的表而言,關(guān)聯(lián)字段中主鍵所在的那個(gè)表,而關(guān)聯(lián)字段中外鍵所在的那個(gè)表稱為從表也稱子表或被引用表。例如,對(duì)于cjgl數(shù)據(jù)庫(kù)中的學(xué)生表和成績(jī)表而言,學(xué)號(hào)是學(xué)生表的主鍵、成績(jī)表的外鍵,所以學(xué)生表是主表,成績(jī)表是從表。主表和從表間的參照完整性是通過定義主鍵和外鍵之間的對(duì)應(yīng)關(guān)系來實(shí)現(xiàn)的。外鍵用來建立主表與從表的關(guān)聯(lián)關(guān)系,為兩個(gè)表的數(shù)據(jù)建立連接。它可以由一列或多列組成。外鍵可以不是從表的主鍵,但必須關(guān)聯(lián)主表的主鍵,且關(guān)聯(lián)字段的個(gè)數(shù)必須相同、數(shù)據(jù)類型必須匹配,否則系統(tǒng)會(huì)報(bào)錯(cuò)。外鍵可以為空值,若不為空值,則每一個(gè)外鍵值必須等于主表中主鍵的某個(gè)值。從表定義外鍵后,不允許刪除主表中具有關(guān)聯(lián)關(guān)系的行,從而保持兩個(gè)表數(shù)據(jù)的一致性、完整性。一個(gè)表可以有一個(gè)或多個(gè)外鍵。例如,對(duì)于cjgl數(shù)據(jù)庫(kù)中的課程表和成績(jī)表來說,將課程號(hào)定義為課程表的主鍵、成績(jī)表的外鍵,從而建立主表和從表之間的聯(lián)系,實(shí)現(xiàn)了參照完整性。此時(shí),成績(jī)表有學(xué)號(hào)和課程號(hào)兩個(gè)外鍵。(2)實(shí)現(xiàn)參照完整性的方法。教師演示講解操作過程,介紹相關(guān)命令的用法??赏ㄟ^創(chuàng)建外鍵約束的方法來實(shí)現(xiàn)表的參照完整性。①創(chuàng)建表時(shí)定義外鍵約束。在CREATETABLE語(yǔ)句中,通過FOREIGNKEY關(guān)鍵字來指定外鍵,其語(yǔ)法

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論