MySQL數(shù)據(jù)庫項目化教程(微課版)-教案 項目3、4 創(chuàng)建和管理數(shù)據(jù)表、數(shù)據(jù)_第1頁
MySQL數(shù)據(jù)庫項目化教程(微課版)-教案 項目3、4 創(chuàng)建和管理數(shù)據(jù)表、數(shù)據(jù)_第2頁
MySQL數(shù)據(jù)庫項目化教程(微課版)-教案 項目3、4 創(chuàng)建和管理數(shù)據(jù)表、數(shù)據(jù)_第3頁
MySQL數(shù)據(jù)庫項目化教程(微課版)-教案 項目3、4 創(chuàng)建和管理數(shù)據(jù)表、數(shù)據(jù)_第4頁
MySQL數(shù)據(jù)庫項目化教程(微課版)-教案 項目3、4 創(chuàng)建和管理數(shù)據(jù)表、數(shù)據(jù)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

項目3創(chuàng)建和管理數(shù)據(jù)表

課題任務3.1數(shù)據(jù)表的基礎知識理論/實驗課時2/2學時

(1)數(shù)據(jù)表的概念;

教學內容(2)數(shù)據(jù)類型;

(3)查看數(shù)據(jù)表的語法。

知識目標

(1)了解數(shù)據(jù)表的概念;

(2)了解數(shù)據(jù)類型,學會SQL語句中不同類型數(shù)據(jù)的表示方式;

(3)了解查看數(shù)據(jù)表的兩種語法格式。

技能目標

教學目標(1)掌握查看數(shù)據(jù)類型的方法;

(2)會查看數(shù)據(jù)表的結構及定義腳本。

素質目標

(1)培養(yǎng)學生具有良好的職業(yè)素養(yǎng);

(2)培養(yǎng)學生具備認真做事的態(tài)度。

教學重點常用數(shù)據(jù)類型;查看系統(tǒng)數(shù)據(jù)庫表的方法。

教學難點數(shù)據(jù)類型名稱、長度;查看數(shù)據(jù)表的兩種語法。

通過項目一與項目二的學習,學生已經(jīng)知道了如何創(chuàng)建與管理數(shù)據(jù)

庫,但對數(shù)據(jù)庫的用途不是很清楚,對于“為什么所有的數(shù)據(jù)都存儲在數(shù)

據(jù)表中“不是特別理解,希望能好好學習數(shù)據(jù)表的相關知識。

學情分析

教學設計與實施課堂活動

環(huán)節(jié)一:課前準備(2分鐘)回顧上次課

內容,引導

學習通或智慧職教簽到、教學資料準備。出本次課要

環(huán)節(jié)二:作業(yè)點評(5分鐘)學習的內容

1.上次課實踐任務完成情況總結及通報;

2.優(yōu)秀作品展示,對問題較多的操作點回顧。

環(huán)節(jié)三:講授新知識(80分鐘)

任務3.1數(shù)據(jù)表的基礎知識

3.1.1查看數(shù)據(jù)表(30分鐘)

1.查看當前數(shù)據(jù)庫包含的表

SHOWTABLES

上面的語句是查看當前數(shù)據(jù)庫中的數(shù)據(jù)表,注意需要先選擇當前數(shù)據(jù)

庫,再通過查看語句查看數(shù)據(jù)庫中的表。

2.查看表結構

DESCCRIBE]表名

語句功能是查看指定表的結構,其中DESCRIBE]可縮寫為DESC,[]中

的字符可省略,表名為查看的數(shù)據(jù)表名稱。

【提示】教師現(xiàn)場講

解與操作演

(1)Field表示表的字段名稱;

(2)Type表示字段值的數(shù)據(jù)類型;

(3)Null表示字段值是否為空值;

(4)Key表示字段是否為鍵,例如主鍵、外鍵、唯一鍵;

(5)Default表示默認值;

(6)Extra表示其他信息,例如自增字段標識等。

3.查看表定義腳本

SHOWCREATETABLE表名

語句功能是查看指定表的定義語句,包括使用字符集和字符排序規(guī)則。

4.查看MySQL的數(shù)據(jù)類型

查看MySQl的數(shù)據(jù)類型的語法格式如下所示。

HELPDATATYPES或HELP數(shù)據(jù)類型名

3.1.2數(shù)據(jù)類型(50分鐘)

1.整數(shù)類型

表3-1列舉了MySQL不同整數(shù)類型所對應的字節(jié)大小和取值范圍。

表3-1MySQL整數(shù)類型

數(shù)據(jù)類型字節(jié)數(shù)無符號數(shù)的取值范圍有符號數(shù)的取值范圍

TINYINT10-255128?127

SMALLINT20-6553532768-32767

MEDIUMINT30-167772158388608-8388607

INT40-42949672952147483648-2147483647

教師現(xiàn)場講

BIGINT80-184467440737095516159223372036854775808-9223372036854775807

解與操作演

2.浮點數(shù)類型和定點數(shù)類型

表3-2列舉了MySQL中浮點數(shù)和定點數(shù)類型所對應的字節(jié)大小及其取

值范圍。

表3-2MySQL浮點數(shù)和定點數(shù)類型

數(shù)據(jù)類型字節(jié)數(shù)有符號的取值范圍無符號的取值范圍

-3.402823466E+38-0和1.175494351E-38-

FLOAT4

-1.175494351E-383.402823466E+38

-1.7976931348623157E+308-0和2.2250738585072014E-308-

DOUBLE8

2.2250738585072014E-3081.7976931348623157E+308

-1.7976931348623157E+308-0和2.2250738585072014E-308-

DECIMAL(M,D)M+2

2.2250738585072014E-3081.7976931348623157E+308

3.日期與時間類型

表3-3列舉了這些MySQL中日期和時間數(shù)據(jù)類型所對應的字節(jié)數(shù)、取

值范圍、日期格式以及零值。

表3-3MySQL日期和時間類型

數(shù)據(jù)類型字節(jié)數(shù)取值范圍日期格式零值

YEAR11901-2155YYYY0000

DATE41000-01-01-9999-12-3YYYY-MM-DD0000-00-00

TIME3-838:59:59-838:59:59HH:MM:SS00:00:00

1000-01-0100:00:00-YYYY-MM-DD

DATETIME80000-00-0000:00:00

9999-12-3123:59:59HH:MM:SS

1970-01-0100:00:01-YYYY-MM-DD

TIMESTAMP40000-00-0000:00:00

2038-01-1903:14:07

4.字符串和二進制類型

表3-4列舉了MySQL中的字符串和二進制類型。

表3-4MySQL字符串和二進制類型

數(shù)據(jù)類型類型說明

CHAR用于表示固定長度的字符串

VARCHAR用于表示可變長度的字符串

BINARY用于表示固定長度的二進制數(shù)據(jù)

VARBINARY用于表示可變長度的二進制數(shù)據(jù)

BOLB用于表示二進制大數(shù)據(jù)

TEXT用于表示大文本數(shù)據(jù)

ENUM表示枚舉類型,只能存儲一個枚舉字符串值

SET表示字符串對象,可以有零或多個值

BIT表示位字段類型

(1)CHAR和VARCHAR類型

CHAR和VARCHAR類型都用來表示字符串數(shù)據(jù),不同的是,VARCHAR可以

存儲可變長度的字符串。

(2)BINARY和VARBINARY類型

BINARY和VARBINARY類型類似于CHAR和VARCHAR,不同的是,它們所

表示的是二進制數(shù)據(jù)。

(3)TEXT類型

TEXT類型用于表示大文本數(shù)據(jù),例如,文章內容、評論等。教師現(xiàn)場講

(4)BLOB類型解與操作演

BLOB類型是一種特殊的二進制類型,它用于表示數(shù)據(jù)量很大的二進制示

數(shù)據(jù),例如圖片、PDF文檔等。

(5)ENUM類型

ENUM('值1','值2','值3'...'值n')

ENUM類型的數(shù)據(jù)只能從枚舉列表中取,并且只能取一個。需要注意的

是,枚舉列舉中的每個值都有一個順序編號,MySQL中存入的就是這個順序

編號,而不是列表中的值。

(6)SET類型

SET('值1','值2','值3'...'值n')

與ENUM類型相同,('值1與'值2','值3'……'值n')列表中的每個

值都有一個順序編號,MySQL中存入的也是順序編號。它們的區(qū)別是:ENUM

類型允許重復對象,,SET類型不允許重復對象。

(7)BIT類型

BIT類型用于表示二進制數(shù)據(jù)。定義BIT類型的基本語法格式如下所示。

教師現(xiàn)場講

BIT(M)

解與操作演

在上述格式中,M用于表示每個值的位數(shù),范圍為廣64。需要注意的是,示

如果分配的BIT(M)類型的數(shù)據(jù)長度小于M,將在數(shù)據(jù)的左邊用0補齊。例

如,為BIT(6)分配值b'101'的效果與分配b'000101)相同。

課堂小結(3分鐘)

本次課主要講解了如何查看數(shù)據(jù)表的結構及定義腳本,數(shù)據(jù)類型的名稱及定義。其

中,數(shù)據(jù)類型是本次課的重要點,需要大家通過實踐練習加以透徹了解。

課后作業(yè)

(1)完成與本講內容相關的課后練習;教師布置課

后作業(yè),學

(2)完成學習通課程平臺上相應的作業(yè);

生完成

(3)通過學習通課程平臺預習項目3.2數(shù)據(jù)表操作的相關知識。

實驗任務(90分鐘)

學生實操,

完成教材3.L3的任務實施

教師指導

教學反思

項目3創(chuàng)建和管理數(shù)據(jù)表

課題任務3.2數(shù)據(jù)表的基本操作理論/實瞼課時2/2學時

(1)創(chuàng)建數(shù)據(jù)表;

(2)查看數(shù)據(jù)表;

教學內容(3)修改數(shù)據(jù)表;

(4)復制數(shù)據(jù)表;

(5)刪除數(shù)據(jù)表。

知識目標

(1)了解創(chuàng)建數(shù)據(jù)表的語法;

(2)了解修改數(shù)據(jù)表的幾種語法格式;

(3)了解復制數(shù)據(jù)表記錄與結構的語法格式。

技能目標

教學目標(1)掌握創(chuàng)建數(shù)據(jù)表;

(2)會查看數(shù)據(jù)表的結構及定義腳本;

(3)會根據(jù)需要修改與刪除數(shù)據(jù)表。

素質目標

(1)培養(yǎng)學生具有良好的職業(yè)素養(yǎng);

(2)培養(yǎng)學生做任何事要講究方法,提高效率的能力。

教學重點創(chuàng)建數(shù)據(jù)表;修改數(shù)據(jù)表;復制數(shù)據(jù)表。

教學難點創(chuàng)建數(shù)據(jù)表;復制數(shù)據(jù)表記錄及結構的語法區(qū)別;修改數(shù)據(jù)表的多種格式。

學生已經(jīng)掌握了數(shù)據(jù)表的基本知識,如果要將數(shù)據(jù)存入數(shù)據(jù)表中,需要

動手實踐才能掌握,讓學生從易到難一步一步掌握知識,這樣同學們學起

學情分析來比較輕松,興趣也很濃厚。

教學設計與實施課堂活動

環(huán)節(jié)一:課前準備(2分鐘)回顧上次課

內容,引導

學習通或智慧職教簽到、教學資料準備。出本次課要

環(huán)節(jié)二:作業(yè)點評(5分鐘)學習的內容

1.上次課實踐任務完成情況總結及通報;

2.優(yōu)秀作品展示,對問題較多的操作點回顧。

環(huán)節(jié)三:講授新知識(80分鐘)

任務3.2數(shù)據(jù)表的基本操作

3.2.1創(chuàng)建數(shù)據(jù)表(25分鐘)

基本語法格式如下:

CREATETABLE表名

字段名1,數(shù)據(jù)類型[完整性約束條件],

字段名2,數(shù)據(jù)類型[完整性約束條件],

字段名n,數(shù)據(jù)類型[完整性約束條件],

【實例3-6】創(chuàng)建學生表xuesheng的結構,其結構如表3-8所示。2.教師現(xiàn)場講

解與操作演

查看表結構。

表3-5xuesheng表結構

字段名稱數(shù)據(jù)類型備注說明

xhCHAR(3)學號

xmVARCHAR(4)姓名

xbENUM('M','F)例別

csrqDATE出生日期

jgVARCHAR(4)籍貫

IxfsCHAR(ll)聯(lián)系方式

zydmCHAR(2)專業(yè)代碼

xqSETCmusi^/art'/sport','technology')興趣

SQL語句如下所示。

mysql>CREATEDATABASEIFNOTEXISTxsgl;

mysql>USExsgl;

mysql>CREATETABLExuesheng(

xhCHAR(3),

xmVARCHAR(4),

xbENUM('M','F'),

csrqDATE,

jgVARCHAR(4),

IxfsCHAR(ll),

zydmCHAR(2),

xqSET('music','art','sport','technology')教師現(xiàn)場講

解與操作演

);

3.2.2查看數(shù)據(jù)表(15分鐘)

1.使用SHOWCREATETABLE查看數(shù)據(jù)表的定義腳本

[實例3-7]使用SHOWCREATETABLE語句查看xuesheng表,SQL語句

如下所示。

mysql>SHOWCREATETABLExuesheng;

2.使用DESCRIBE語句查看數(shù)據(jù)表結構

【實例3-81使用DESCRIBE語句查看xuesheng表結構的定義,SQL語

句如下所示。

mysql>DESCRIBExuesheng;

3.2.3修改數(shù)據(jù)表(20分鐘)

L修改表名

基本語法格式如下所示。

ALTERTABLE舊表名RENAME[TO]新表名;

【實例3-9)復制數(shù)據(jù)庫xsgl中的xuesheng表為xuesheng_copy,然

后將xuesheng_copy改名為tb_xuesheng表。SQL語句如下所示。

mysql>CREATETABLExuesheng_copyLIKExuesheng;

mysql>ALTERTABLExuesheng_copyRENAMETOtb_xuesheng;

2.修改字段名及其類型

基本語法格式如下所示。

ALTERTABLE表名CHANGE舊字段名新字段名新數(shù)據(jù)類型;

【實例3-10]將數(shù)據(jù)表tb_xuesheng中的xm字段改為username,數(shù)

據(jù)類型改為char(4),SQL語句如下所示。

mysql>ALTERTABLEtb_xueshengCHANGExmusernameCHAR(4);

3.修改字段的數(shù)據(jù)類型

基本語法格式如下所示。

ALTERTABLE表名MODIFY字段名數(shù)據(jù)類型;

【實例3T1】將數(shù)據(jù)表tbxuesheng中的xh字段的數(shù)據(jù)類型由char(3)

修改為INT(ll)。SQL語句如下所示。

mysql>ALTERTABLEtb_xueshengMODIFYxhINT(ll);

4.添加字段

基本語法格式如下所示。

ALTERTABLE表名ADD新字段名數(shù)據(jù)類型

[約束條件][FIRST〔AFTER已存在字段名]

在上述格式中,“新字段名”為添加字段的名稱,“FIRST”為可選參數(shù),

用于將新添加的字段設置為表的第一個字段,“AFTER”也為可選參數(shù),用于

將新添加的字段添加到指定的“已存在字段名”的后面。

教師現(xiàn)場講

【實例3T2]在數(shù)據(jù)表tb_xuesheng中添加一個沒有約束條件的INT類

解與操作演

型的字段age,SQL語句如下所示。

mysql>ALTERTABLEtb_xueshengADDageINT(10);

5.刪除字段

基本語法格式如下所示。

ALTERTABLE表名DROP字段名;

在上述格式中,“字段名”指的是要刪除的字段的名稱。

【實例3T3[刪除tb_xuesheng表中的age字段,SQL語句如下所示。

mysql>ALTERTABLEtb_xueshengDROPage;

3.2.4復制數(shù)據(jù)表(10分鐘)

1.復制表結構及記錄到新表

CREATETABLE新表名[AS]SELECT語句

【實例3-16]復制數(shù)據(jù)表tb_xuesheng到tb_xuesheng1中,SQL語句

如下所示。

mysqDCREATETABLEtb_xuesheng_lASSELECT*FROMtb_xuesheng;

2.只復制表結構

CREATETABLE新表名[AS]SELECT*FROM源表名WHEREFALSE

或者

CREATETABLE新表名LIKE源表名

上述語句的功能是復制表結構字段定義,包括主鍵、索引、自動編號,

不復制記錄。源表名是被復制的表名。教師現(xiàn)場講

【實例3-17]用兩種方法復制數(shù)據(jù)表tb_xuesheng到tb_xuesheng_2,解與操作演

tb_xuesheng_3中,SQL語句如下所示。

mysql>CREATETABLEtb_xuesheng_2LIKEtb_xuesheng;

mysql>CREATETABLEtb_xuesheng_3SELECT*FROMtb_xuesheng

WHEREFALSE;

3.2.5刪除數(shù)據(jù)表(10分鐘)

基本的語法格式如下所示。

DROPTABLE[IFEXISTS]表名1[,表名2]…[,表名n];

在上述格式中,表名1[,表名2]…[,表名n]指的是要刪除的數(shù)據(jù)表,IF

EXISTS為可選項,判斷表名是存在,如果存在就刪除表,如果不存在不做任

何操作。

【實例3-18]刪除tb_xuesheng,tb_xuesheng_l,tb_xuesheng_2,現(xiàn)場講解與

tb_xuesheng_3四個數(shù)據(jù)表,SQL語句如下。操作演示

mysql>DROPTABLEtb_xuesheng,tb_xuesheng_l,tb_xuesheng_2,

tb_xuesheng_3;

課堂小結(3分鐘)

本次課主要講解了如何創(chuàng)建、查看、修改、復制、刪除數(shù)據(jù)表的語法,操作演示了

其操作方法。其中,創(chuàng)建與修改數(shù)據(jù)表是本次課的重要點,需要大家通過實踐練習加以

透徹了解。

課后作業(yè)

(1)完成與本講內容相關的課后練習;教師布置課

后作業(yè),學

(2)完成學習通課程平臺上相應的作業(yè);

生完成

(3)通過學習通課程平臺預習項目3.3的數(shù)據(jù)完整性約束的相關知識。

實驗任務(90分鐘)

學生實操,

完成教材3.2.6的任務實施

教師指導

教學反思

項目3創(chuàng)建和管理數(shù)據(jù)表

課題任務3.3數(shù)據(jù)完整性約束理論/實驗課時2/2學時

(1)數(shù)據(jù)完整性約束的概念;

(2)主鍵、非空、唯一約束;

教學內容(3)默認約束與設置表的字段值自動增加;

(4)設置表的檢查約束與FORGIGNKEY約束;

(5)刪除約束。

知識目標

(1)了解數(shù)據(jù)完整性約束的概念;

(2)了解主鍵、非空、唯一約束的作用;

(3)了解如何使用默認約束、自動增長;

(4)了解FORGIGNKEY約束的概念及設置方法;

(5)掌握刪除約束的方法。

教學目標技能目標

(1)掌握創(chuàng)建主鍵、非空、唯一約束的方法;

(2)會設置默認約束、自動增長;

(3)會根據(jù)需要設置表的FORGIGNKEY約束及刪除約束。

素質目標

(1)培養(yǎng)學生做任何事要講究方法,提高效率的能力;

(2)培養(yǎng)學生能夠遵守規(guī)則,強化制度約束,學會責任擔當。

教學重點約束的概念;如何創(chuàng)建約束。

教學難點主鍵約束、外鍵約束的創(chuàng)建方法及如何使用主鍵、外鍵約束。

通過本項目前面2個任務的學習,學生掌握了數(shù)據(jù)表的概念及如何創(chuàng)

學情分析建數(shù)據(jù)庫,掌握了基本的操作方法,數(shù)據(jù)完整性約束是項目二的重點,也是

難點,需要教師耐心、詳細地進行講解,學生認真聽講并操作。

教學設計與實施課堂活動

環(huán)節(jié)一:課前準備(2分鐘)回顧上次課

內容,引導

學習通或智慧職教簽到、教學資料準備。出本次課要

學習的內容

環(huán)節(jié)二:作業(yè)點評(5分鐘)

1.上次課實踐任務完成情況總結及通報;

2.優(yōu)秀作品展示,對問題較多的操作點回顧。

環(huán)節(jié)三:講授新知識(80分鐘)

任務3.3數(shù)據(jù)完整性約束

3.3.1數(shù)據(jù)完整性約束的概念(10分鐘)

關系數(shù)據(jù)庫具有下面四種完整性約束。

1.域完整性

域完整性要求輸入的值應為指定的數(shù)據(jù)類型、取值范圍,確定是否允許

空等。

2.實體完整性

實體完整性是一個關系表內的約束,它要求每個實體記錄都具有唯一標

識,且不能為空,即表的所有主鍵不能取空。

3.參照完整性

參照完整性是兩個關系表屬性之間的引用參照的約束。若一個關系表的教師現(xiàn)場講

解與操作演

屬性值(外鍵)對應依賴于另一個關系表的主鍵,則這兩個表具有參照依賴

關系。

4.用戶定義的完整性

用戶定義的完整性是針對某一具體應用而定義的約束條件,它反映了在

某具體應用業(yè)務中必須滿足的條件。

表3-6表的約束

約束條件說明

PRIMARYKEY主鍵約束,用于唯一標識對應的記錄

FOREIGNKEY外鍵約束

NOTNULL非空約束

UNIQUE唯一■約束

DEFAULT默認值約束,用于設置字段的默認值

3.3.2主鍵約束(15分鐘)

1.單字段主鍵

字段名數(shù)據(jù)類型PRIMARYKEY

【實例3-19】在xsgl數(shù)據(jù)庫中創(chuàng)建一個學生表,如果存在學生表,先

刪除再創(chuàng)建,并設置xh作為主鍵。SQL語句如下所示。

mysql>CREATEDATABASEIFNOTEXISTSxsgl;

mysql>USExsgl;

mysql>DROPTABLEIFEXISTSxuesheng;

mysql>CREATETABLExuesheng(

xhCHAR(3)PRIMARYKEYCOMMENT'學號',教師現(xiàn)場講

xmVARCHAR(4)COMMENT'姓名',解與操作演

xbENUM('M','F')COMMENT'性別',示

csrqDATECOMMENT'出生日期',

jgVARCHAR(4)COMMENT'籍貫

IxfsCHAR(11)COMMENT'聯(lián)系方式

zydmCHAR(2)COMMENT'專業(yè)代碼',

xqSET('music','art','sport','technology')COMMENT'興趣'

)COMMENT='學生基本情況表';

2.多字段主鍵

PRIMARYKEY(字段名1,字段名2,……字段名n)

【實例3-20]在xsgl數(shù)據(jù)庫中創(chuàng)建一個數(shù)據(jù)表chengji表,將xh和

kcdm兩個字段共同作為主鍵,SQL語句如下。

mysql>DROPTABLEIFEXISTSchengji;

mysql>CREATETABLEchengji(

xhCHAR(3)COMMENT'學號',

kcdmCHAR(3)COMMENT'課程代碼',

pscjTINYINT(3)COMMENT'平時成績',

sycjTINYINT(3)COMMENT'實驗成績',

kscjTINYINT(3)COMMENT'考試成績',

zhcjDECIMAL(5,1)COMMENT'綜合成績',

PRIMARYKEY(xh.kcdm)

)COMMENT='學生成績表';

3.3.3非空約束(10分鐘)

基本的語法格式如下所示。

字段名數(shù)據(jù)類型NOTNULL;

【實例3-21】在xsgl數(shù)據(jù)庫創(chuàng)建一個課程表kecheng,將表中的kcdm

設置為主鍵,kcmc設置為非空約束,SQL語句如下。

mysql>DROPTABLEIFEXISTSkecheng;

mysql>CREATETABLEkecheng(

kcdmCHAR(3)PRIMARYKEYCOMMENT'課程代碼',

kcmcVARCHAR(8)NOTNULLCOMMENT'課程名稱',

xfDECIMAL(3,1)COMMENT'學分'

)COMMENT='課程表';

3.3.4唯一約束(10分鐘)

基本的語法格式如下所示。

字段名數(shù)據(jù)類型UNIQUE;

【實例3-22]在xsgl數(shù)據(jù)庫創(chuàng)建一個專業(yè)表zhuanye,將表中的zydm

教師現(xiàn)場講

設置為主鍵,zymc字段設置為唯一約束,SQL語句如下所示。解與操作演

mysql>DROPTABLEIFEXISTSzhuanye;示

mysql>CREATETABLEzhuanye(

zydmCHAR(2)PRIMARYKEYCOMMENT'專業(yè)代碼',

zymcVARCHAR(8)UNIQUECOMMENT'專業(yè)名稱',

ssyxVARCHAR(8)COMMENT'所屬院系'

)COMMENTS專業(yè)表';

3.3.5默認約束(10分鐘)

基本的語法格式如下所示。

字段名數(shù)據(jù)類型DEFAULT默認值;

【實例3-23】修改課程表kecheng,將表中的xf字段設置默認值為0。

SQL語句如下所示。

mysql>ALTERTABLEkechengMODIFYxfDECIMAL(3,1)DEFAULT0

COMMENT'學分';

3.3.6設置表的字段值自動增加(10分鐘)

基本語法格式如下所示。

字段名數(shù)據(jù)類型AUTO_INCREMENT;

【實例3-24】修改課程表kecheng,先刪除原有的主鍵,再為表增加一

個字段id,將id字段設置為自動增加。SQL語句如下所示。

教師現(xiàn)場講

mysql>ALTERTABLEkechengDROPPRIMARYKEY;解與操作演

mysql>ALTERTABLEkechengADDidINTPRIMARYKEY示

AUTO_INCREMENTCOMMENT'課程編號';

3.3.7設置表的檢查約束

基本語法格式如下所示。

字段名數(shù)據(jù)類型CHECK(條件);

【實例3-25】修改課程表kecheng,設置xf字段設置默認值為0,CHECK

約束為xf的值必須大于等于0。SQL語句如下所示。

mysql>ALTERTABLEkechengMODIFYxfDECIMAL(3,1)

DEFAULT0CHECK(xf>=0)COMMENT'學分';

3.3.8設置表的FORGIGNKEY約束(15分鐘)

1.創(chuàng)建表時設置外鍵

使用FORGIGNKEY設置表外鍵的基本語法格式如下所示。

FORGIGNKEY(外鍵字段名)REFERENCES主鍵表(主鍵字段名)

【實例3-26]在xsgl數(shù)據(jù)庫創(chuàng)建chengji表,如果存在chengji表先

刪除再創(chuàng)建。在表中將xh和kcdm兩個字段共同作為主鍵,同時xh是外鍵,

其值依賴于主鍵表xuesheng中的xh值。SQL語句如下所示。

mysql>DROPTABLEIFEXISTSchengji;

mysql>CREATETABLEchengji(

xhCHAR(3)COMMENT'學號',

kcdmCHAR(3)COMMENT'課程代碼',

pscjTINYINT(3)DEFAULT0COMMENT'平時成績',

sycjTINYINT(3)DEFAULT0COMMENT'實驗成績',

kscjTINYINT(3)DEFAULT0COMMENT'考試成績

zhcjDECIMAL(5,1)DEFAULT0.0COMMENT'綜合成績',

PRIMARYKEY(xh,kcdm),

FOREIGNKEY(xh)REFERENCESxuesheng(xh)教師現(xiàn)場講

)COMMENT='學生成績表';解與操作演

2.修改表添加FORGIGNKEY約束

添加FORGIGNKEY約束的基本語法格式如下所示。

ADDCONSTRAINT約束名FORGIGNKEY(外鍵字段名)

REFERENCES主鍵表(主鍵字段名)

【實例3-27]修改xsgl數(shù)據(jù)庫中的kecheng表,添加名稱為PK_kcdm

的外鍵約束,修改chengji表,添加名chengji_fk_kcdm的外鍵約束。成績

表的kcdm值依賴于主鍵表kecheng中的kcdm值。SQL語句如下所示。

mysql>ALTERTABLEkechengDROPid;

mysql>ALTERTABLEkechengADDCONSTRAINTPK_kcdmPRIMARY

KEY(kcdm);

mysql>ALTERTABLEchengji

ADDCONSTRAINTchengji_fk_kcdm

FOREIGNKEY(kcdm)REFERENCESkecheng(kcdm);

3.FORGIGNKEY約束的級聯(lián)更新和刪除

其語法格式如下:

CONSTRAINT約束名FORGIGNKEY(外鍵字段名)

REFERENCES主鍵表(主鍵字段名)

[ONUPDATE{CASCADE|SETNULLNOACTION;RESTRICT}]

[ONDELETE{CASCADE|SETNULLNOACTIONRESTRICT)]

[實例3-28]刪除chengji表中的約束,再創(chuàng)建與kecheng表的FORGIGN

KEY約束,進行級聯(lián)更新和刪除。。SQL語句如下所示。

mysql>ALTERTABLEchengji

DROPFOREIGNKEYchengji_fk_kcdm;

mysql>ALTERTABLEchengji

ADDCONSTRAINTchengji_fk_kcdm

FOREIGNKEY(kcdm)REFERENCESkecheng(kcdm)

ONUPDATECASCADEONDELETECASCADE;

3.3.9刪除約束(5分鐘)

語法格式如下。

教師現(xiàn)場講

ALTERTABLE表名DROP約束類型[約束名]

解與操作演

其中,約束類型的取值為PRIMARYKEY、CHECK.FOREIGNKEY等。示

【實例3-29]刪除chengji表的PRIMARYKEY、chengji_fk_kcdm與

chengji_ibfk_l外鍵約束。SQL語句如下所示。

mysql>ALTERTABLEchengjiDROPFOREIGNKEYchengji_fk_kcdm;

mysqDALTERTABLEchengjiDROPFOREIGNKEYchengji_ibfk_l;

mysqDALTERTABLEchengjiDROPPRIMARYKEY;

課堂小結(3分鐘)

本次課主要講解了數(shù)據(jù)完整性約束的概念及作用,以及如何創(chuàng)建各種數(shù)據(jù)完整性約

束。其中,創(chuàng)建主鍵與外鍵約束是本次課的重要點,希望同學們多加練習以鞏固本次內

容,要靈活地運用數(shù)據(jù)完整性約束解決實際問題。

課后作業(yè)

(1)完成與本講內容相關的課后練習;教師布置課

后作業(yè),學

(2)完成學習通課程平臺上相應的作業(yè);

生完成

(3)通過學習通課程平臺預習項目3.4索引的相關知識。

實瞼任務(90分鐘)

學生實操,

完成教材3.3.10的任務實施

教師指導

教學反思

項目3創(chuàng)建和管理數(shù)據(jù)表

課題任務3.4索引理論/實驗課時2/2學時

(1)索引的基本概念;

(2)索引的種類;

教學內容

(3)創(chuàng)建索引的基本語法;

(4)刪除索引的方法。

知識目標

(1)了解索引的基本概念;

(2)了解索引的種類;

(3)了解創(chuàng)建索引的基本語法;

(4)了解如何刪除索引。

技能目標

教學目標(1)掌握各種索引的作用;

(2)學會創(chuàng)建各種索引;

(3)能根據(jù)需要刪除索引。

素質目標

(1)培養(yǎng)學生做任何事要講究方法,提高效率的能力;

(2)培養(yǎng)學生能夠遵守規(guī)則,強化制度約束,學會責任擔當。

教學重點索引的概念;如何創(chuàng)建與刪除索引。

教學難點創(chuàng)建索引的方法。

學生已經(jīng)掌握了數(shù)據(jù)表的創(chuàng)建及完整性約束的使用,單元測試成績比

較理想,此任務要求學生掌握索引的各種方法,如何快速查找數(shù)據(jù),學生學

學情分析

習欲望比較強烈,學習興趣高。

教學設計與實施課堂活動

環(huán)節(jié)一:課前準備(2分鐘)回顧上次課

內容,引導

學習通或智慧職教簽到、教學資料準備。出本次課要

環(huán)節(jié)二:作業(yè)點評(5分鐘)學習的內容

1.上次課實踐任務完成情況總結及通報;

2.優(yōu)秀作品展示,對問題較多的操作點回顧。

環(huán)節(jié)三:講授新知識(80分鐘)

任務3.4索引

3.4.1基本概念(10分鐘)

常用的索引具體如下:

1.普通索引

普遍索引是由KEY或INDEX定義的索引,它是MySQL中的基本索引類

型,可以創(chuàng)建在任何數(shù)據(jù)類型中,其值是否唯一和非空由字段本身的約束條

件所決定。

2.唯一索引

唯一性索引是由UNIQUE定義的索引,該索引所在字段的值必須是唯一

的。

3.全文索引教師現(xiàn)場講

解與操作演

全文索引是由FULLTEXT定義的索引,它只能創(chuàng)建在CHAR、VARCHAR或

TEXT類型的字段上。在早期的MySQL中,只有MylSAM存儲引擎支持全文

索引,InnoDB并不支持全文檢索技術,從MySQL5.6開始,InnoDB開始

支持全文檢索。

4.單列索引

單列索引指的是在表中單個字段上創(chuàng)建索引,它可以是普通索引、唯一

索引或者全文索引。

5.多列索引

多列索引指的是在表中多個字段上創(chuàng)建索引,只有在查詢條件中使用了

這些字段中的第一個字段時,該索引才會被使用。

6.空間索引

MySQL中的空間數(shù)據(jù)類型有4種,分別是GEOMETRY.POINT.LINESTRING

和POLYGONo

3.4.2創(chuàng)建索引(60分鐘)

1.創(chuàng)建表的時候創(chuàng)建索引

其基本的語法格式如下所示。

CREATETABLE表名(字段名1數(shù)據(jù)類型[完整性約束條件],

字段名2數(shù)據(jù)類型[完整性約束條件],

教師現(xiàn)場講

字段名n數(shù)據(jù)類型

解與操作演

[UNIQUE|FULLTEXTSPATIAL]INDEX1KEY

[索引名](字段名1[(長度)])[ASCDESC])

);

關于上述語法的相關解釋具體如下:

(1)UNIQUE:可選參數(shù),表示唯一性約束;

(2)FULLTEXT:可選參數(shù),表示全文約束;

(3)SPATIAL:可選參數(shù),表示空間約束;

(4)INDEX和KEY:用來表示字段的索引,二者選一即可;

(5)字段名:指定索引對應字段的名稱;

(6)長度:可選參數(shù),用于表示索引的長度;

(7)ASC和DESC:可選參數(shù),其中,ASC表示升序排列,DESC表示

降序排列。

(1)創(chuàng)建普通索引

【實例3-30]在tl表中id字段上建立索引,SQL語句如下。

mysql>CREATETABLEtl(

idINT,

nameVARCHAR(20),

scoreFLOAT,

INDEX(id)

);

(2)創(chuàng)建唯一性索引

【實例3-31】創(chuàng)建一個表名為t2的表,在表中的id字段上建立索引名

為unique_id的唯一性索引,并且按照升序排列,SQL語句如下:

mysql>CREATETABLEt2(

idINTNOTNULL,

nameVARCHAR(20)NOTNULL,

scoreFLOAT,

UNIQUEINDEXunique_id(idASC)

);

(3)創(chuàng)建全文索引

【實例3-32]創(chuàng)建一個表名為t3的表,在表中的name字段上建立索引

名為fulltext_name的全文索引,SQL語句如下:

mysql>CREATETABLEt3(

idINTNOTNULL,

nameVARCHAR(20)NOTNULL,

scoreFLOAT,

FULLTEXTINDEXfulltext_name(name)教師現(xiàn)場講

)ENGINE=MyISAM;解與操作演

(4)創(chuàng)建多列索引

【實例3-33]創(chuàng)建一個表名為t4的表,在表中的id和name字段上建

立索引名為multi的多列索引,SQL語句如下:

mysql>CREATETABLEt4(

idINTNOTNULL,

nameVARCHAR(20)NOTNULL,

scoreFLOAT,

INDEXmulti(id,name(20))

);

2.使用CREATEINDEX語句在已經(jīng)存在的表上創(chuàng)建索引

其語法格式如下所示。

CREATE[UNIQUE|FULLTEXTSPATIAL]INDEX索引名

ON表名(字段名[(長度)][ASCDESC]);

(1)創(chuàng)建普通索引

【實例3-34]在xuesheng表中的xm字段上建立一個名稱為index_xm

的普通索引,SQL語句如下所示。

mysql>CREATEINDEXindex_xmONxuesheng(xm);

(2)創(chuàng)建唯一性索引教師現(xiàn)場講

【實例3-35】在xuesheng表的xh字段上建立一個名稱為unique_xh的解與操作演

唯一性索引,SQL語句如下所示。

mysql>CREATEINDEXunique_xhONxuesheng(xh);

(3)創(chuàng)建全文索引

【實例3-36】在xuesheng表中的jg字段上建立一個名稱為full_jg的

全文索引,SQL語句如下所示。

mysql>CREATEINDEXfull_jgONxuesheng(jg);

(4)創(chuàng)建多列索引

【實例3-37]在xuesheng表中的jg和Ixfs字段上建立一個名稱為

muliti_jg_lxfs的多列索引,SQL語句如下所示。

mysql>CREATEINDEXmuliti_jg_lxfsONxuesheng(jg,Ixfs);

3.使用ALTERTABLE語句在已經(jīng)存在表上創(chuàng)建索引

ALTERTABLE表名ADD[UNIQUE:FULLTEXT|SPATIAL]INDEXKEY

索引名(字段名[(長度)]LASCIDESC])

(1)創(chuàng)建普通索引

【實例3-38】在zhuanye表中的ssyx字段上建立一個名稱為index_

溫馨提示

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

最新文檔

評論

0/150

提交評論