MySQL數(shù)據(jù)庫(kù)項(xiàng)目化教程(第2版)(微課版)課件 項(xiàng)目四 數(shù)據(jù)表的管理_第1頁(yè)
MySQL數(shù)據(jù)庫(kù)項(xiàng)目化教程(第2版)(微課版)課件 項(xiàng)目四 數(shù)據(jù)表的管理_第2頁(yè)
MySQL數(shù)據(jù)庫(kù)項(xiàng)目化教程(第2版)(微課版)課件 項(xiàng)目四 數(shù)據(jù)表的管理_第3頁(yè)
MySQL數(shù)據(jù)庫(kù)項(xiàng)目化教程(第2版)(微課版)課件 項(xiàng)目四 數(shù)據(jù)表的管理_第4頁(yè)
MySQL數(shù)據(jù)庫(kù)項(xiàng)目化教程(第2版)(微課版)課件 項(xiàng)目四 數(shù)據(jù)表的管理_第5頁(yè)
已閱讀5頁(yè),還剩78頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

MySQL數(shù)據(jù)庫(kù)項(xiàng)目化教程V1項(xiàng)目四數(shù)據(jù)表的管理項(xiàng)目任務(wù)知識(shí)目標(biāo)學(xué)習(xí)目標(biāo)任務(wù)1:數(shù)據(jù)類(lèi)型任務(wù)2:數(shù)據(jù)表的創(chuàng)建與管理任務(wù)3:數(shù)據(jù)的管理任務(wù)4:數(shù)據(jù)完整性(1)了解各種數(shù)據(jù)類(lèi)型(2)了解數(shù)據(jù)表的創(chuàng)建(3)理解使用SQL語(yǔ)句修改表結(jié)構(gòu)(4)掌握刪除數(shù)據(jù)表(5)掌握對(duì)數(shù)據(jù)實(shí)現(xiàn)增刪改操作(6)掌握對(duì)數(shù)據(jù)建立約束能力目標(biāo)素質(zhì)目標(biāo)學(xué)習(xí)目標(biāo)(1)能夠區(qū)分各種數(shù)據(jù)類(lèi)型(2)能夠完成數(shù)據(jù)表的創(chuàng)建(3)能夠?qū)?shù)據(jù)表進(jìn)行管理(4)能夠完成對(duì)數(shù)據(jù)的增、刪、改操作(5)能夠完成對(duì)數(shù)據(jù)的各種約束(1)培養(yǎng)學(xué)生的編程能力和業(yè)務(wù)素質(zhì)(2)培養(yǎng)學(xué)生自我學(xué)習(xí)的習(xí)慣、愛(ài)好和能力(3)培養(yǎng)學(xué)生的科學(xué)精神和態(tài)度課程思政(素養(yǎng)提示)學(xué)習(xí)目標(biāo)(1)數(shù)據(jù)庫(kù)中的表之間是存在聯(lián)系的,理解事物的聯(lián)系是普遍存在的,培養(yǎng)學(xué)生處理好人際關(guān)系的方法與技巧。(2)理解數(shù)據(jù)表管理的作用,具備管理意識(shí),培養(yǎng)學(xué)生的管理能力。思維導(dǎo)圖學(xué)習(xí)目標(biāo)任務(wù)分析任務(wù)完成任務(wù)描述Part

2Part

3Part

1任務(wù)一數(shù)據(jù)類(lèi)型任務(wù)分析任務(wù)完成Part

1Part

2Part

3任務(wù)描述在MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)中,數(shù)據(jù)類(lèi)型決定了存儲(chǔ)數(shù)據(jù)的類(lèi)型。MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)提供了整數(shù)類(lèi)型、浮點(diǎn)數(shù)類(lèi)型、定點(diǎn)數(shù)類(lèi)型和位類(lèi)型、日期和時(shí)間類(lèi)型、字符串類(lèi)型。在創(chuàng)建數(shù)據(jù)表之前,要先掌握數(shù)據(jù)類(lèi)型。任務(wù)描述任務(wù)分析任務(wù)完成Part

1Part

2Part

3任務(wù)描述數(shù)據(jù)庫(kù)表由多列字段構(gòu)成,每一個(gè)字段指定了不同的數(shù)據(jù)類(lèi)型。指定字段的數(shù)據(jù)類(lèi)型之后,也就決定了向字段插入的數(shù)據(jù)內(nèi)容。例如,當(dāng)要插入數(shù)值的時(shí)候,可以將它們存儲(chǔ)為整數(shù)類(lèi)型,也可以將它們存儲(chǔ)為字符串類(lèi)型;不同的數(shù)據(jù)類(lèi)型也決定了MySQL在存儲(chǔ)它們的時(shí)候使用的方式,以及在使用它們的時(shí)候選擇什么運(yùn)算符號(hào)進(jìn)行運(yùn)算。任務(wù)分析任務(wù)分析任務(wù)完成Part

1Part

2Part

3任務(wù)描述1.整數(shù)類(lèi)型MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)除了支持標(biāo)準(zhǔn)SQL中的所有整數(shù)類(lèi)型(SMALLINT和INT)外,還進(jìn)行了相應(yīng)擴(kuò)展。擴(kuò)展后增加了TINYINT、MEDIUMINT和BIGINT這三個(gè)整數(shù)類(lèi)型?!纠?-1】創(chuàng)建表tmp1,其中字段x、y、z、m、n數(shù)據(jù)類(lèi)型依次為T(mén)INYINT、SMALLINT、MEDIUMINT、INT、BIGINT,SQL語(yǔ)句如下:例題代碼運(yùn)行結(jié)果CREATETABLEtmp1(xTINYINT,ySMALLINT,zMEDIUMINT,mINT,nBIGINT);類(lèi)型名稱(chēng)所占字節(jié)數(shù)有符號(hào)數(shù)取值范圍無(wú)符號(hào)數(shù)取值范圍TINYINT1?128~1270~255SMALLINT2?32768~327670~65535MEDIUMINT3?8388608~83886070~16777215INT(INTEGER)4?2147483648~21474836470~4294967295BIGINT8?9223372036854775808~92233720368547758070~18446744073709551615MySQL中使用浮點(diǎn)數(shù)和定點(diǎn)數(shù)來(lái)表示小數(shù)。浮點(diǎn)類(lèi)型有兩種:?jiǎn)尉雀↑c(diǎn)類(lèi)型(FLOAT)和雙精度浮點(diǎn)類(lèi)型(DOUBLE)。定點(diǎn)類(lèi)型只有一種:DECIMAL。浮點(diǎn)類(lèi)型和定點(diǎn)類(lèi)型都可以用(M,N)來(lái)表示,其中M稱(chēng)為精度,表示總共的位數(shù);N成為標(biāo)度,是表示小數(shù)的位數(shù)?!纠?-2】分別為tmp2表創(chuàng)建val1(FLOAT)字段、val2(DOUBULE)字段及val3(DEC(18,3))字段,然后分別插入數(shù)值123456789012345.6789,查看表數(shù)據(jù)。類(lèi)型名稱(chēng)存儲(chǔ)需求說(shuō)明FLOAT單精度浮點(diǎn)數(shù)4個(gè)字節(jié)DOUBLE雙精度浮點(diǎn)數(shù)8個(gè)字節(jié)DECIMAL(M,D),DEC壓縮的“嚴(yán)格”定點(diǎn)數(shù)M+2個(gè)字節(jié)CREATETABLEtmp2(val1FLOAT,val2DOUBLE,val3DEC(18,3));INSERTINTOtmp2VALUES(123456789012345.6789,123456789012345.6789,123456789012345.6789);SELECT*FROMtmp2;2.浮點(diǎn)數(shù)類(lèi)型和定點(diǎn)數(shù)類(lèi)型【例4-2】MySQL中有多種表示日期的數(shù)據(jù)類(lèi)型,主要有:DATETIME、DATE、TIMESTAMP、TIME和YEAR。類(lèi)型名稱(chēng)日期格式日期范圍存儲(chǔ)需求YEARYYYY1901~21551字節(jié)TIMEHH:MM:SS-838:59:59~838:59:593字符DATEYYYY-MM-DD1000-01-01~9999-12-313字符DATETIMEYYYY-MM-DDHH:MM:SS1000-01-0100:00:00~9999-12-3123:59:598字符TIMESTAMPYYYY-MM-DDHH:MM:SS1970-01-0100:00:01UTC~2038-01-1903:14:07UTC4字符3.日期與時(shí)間類(lèi)型【例4-3】日期和時(shí)間類(lèi)型的使用方法。CREATETABLEd_test(f_dateDATE,f_datetimeDATETIME,f_timestampTIMESTAMP,f_timeTIME,f_yearYEAR);INSERTINTOd_testVALUES(curdate(),NOW(),NOW(),TIME(NOW()),YEAR(NOW()));SELECT*FROMd_test;【例4-3】4.字符串類(lèi)型字符串類(lèi)型用來(lái)存儲(chǔ)字符串?dāng)?shù)據(jù),除了可以存儲(chǔ)字符串?dāng)?shù)據(jù)之外,還可以存儲(chǔ)其他數(shù)據(jù),比如圖片和聲音的二進(jìn)制數(shù)據(jù)。字符串可以進(jìn)行區(qū)分或者不區(qū)分大小寫(xiě)的串比較,另外,還可以進(jìn)行模式匹配查找。CHAR系列字符串類(lèi)型字節(jié)描述CHAR(M)MM為0~255之間的整數(shù)VARCHAR(M)MM為0~65535之間的整數(shù)TEXT系列字符串類(lèi)型字節(jié)描述TINYTEXT0~255值的長(zhǎng)度為+1個(gè)字節(jié)TEXT0~65535值的長(zhǎng)度為+2個(gè)字節(jié)MEDIUMTEXT0~16777215值的長(zhǎng)度為+3個(gè)字節(jié)LONGTEXT0~4294967295值的長(zhǎng)度為+4個(gè)字節(jié)BINARY系列字符串類(lèi)型字節(jié)描述BINARY(M)M允許長(zhǎng)度為0~MVARBINARY(M)M允許長(zhǎng)度為0~MBLOB系列字符串類(lèi)型字節(jié)描述TINYBLOB0~255最大255BLOB0~216最大64KMEDIUMBLOB0~224最大16MLONGGLOB0~232最大4G任務(wù)總結(jié)本任務(wù)主要介紹在MySQL軟件中創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象表之前,需要掌握的一些概念。數(shù)據(jù)類(lèi)型決定了數(shù)據(jù)庫(kù)對(duì)象表中存儲(chǔ)數(shù)據(jù)類(lèi)型,主要介紹了整數(shù)類(lèi)型、浮點(diǎn)數(shù)類(lèi)型、定點(diǎn)數(shù)類(lèi)型、日期和時(shí)間類(lèi)型、字符串類(lèi)型。MySQL提供了大量的數(shù)據(jù)類(lèi)型,為了優(yōu)化存儲(chǔ),提高數(shù)據(jù)庫(kù)性能,在任何情況下均應(yīng)使用最精確的類(lèi)型。即在所有可以表示該列值的類(lèi)型中,該類(lèi)型使用的存儲(chǔ)最少。任務(wù)分析任務(wù)完成任務(wù)描述Part

2Part

3Part

1任務(wù)二數(shù)據(jù)表的創(chuàng)建與管理任務(wù)分析任務(wù)完成Part

1Part

2Part

3任務(wù)描述表是最重要的數(shù)據(jù)庫(kù)對(duì)象,它用來(lái)存儲(chǔ)數(shù)據(jù)。數(shù)據(jù)表包括行和列,列決定了表中數(shù)據(jù)的類(lèi)型,行包含了實(shí)際的數(shù)據(jù)。要想把數(shù)據(jù)錄入到數(shù)據(jù)表中,必須先按照學(xué)生技能競(jìng)賽管理系統(tǒng)關(guān)系模式創(chuàng)建表結(jié)構(gòu)。任務(wù)描述任務(wù)分析任務(wù)完成Part

1Part

2Part

3任務(wù)描述在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí),我們已經(jīng)確定學(xué)生技能競(jìng)賽管理系統(tǒng)需要?jiǎng)?chuàng)建八張表?,F(xiàn)在需要設(shè)計(jì)表結(jié)構(gòu),主要包括表的名稱(chēng)、表中每列的名稱(chēng),數(shù)據(jù)類(lèi)型和長(zhǎng)度、表中的列是否為空值,是否唯一,是否有默認(rèn)值或約束、表的哪些列是主鍵以及哪些列是外鍵等。任務(wù)分析任務(wù)分析任務(wù)完成Part

1Part

2Part

3任務(wù)描述創(chuàng)建數(shù)據(jù)表1.使用SQL語(yǔ)句創(chuàng)建表創(chuàng)建數(shù)據(jù)表需要用到CREATETABLE語(yǔ)句,其語(yǔ)法形式如下:CREATETABLEtable_name(列名1數(shù)據(jù)類(lèi)型1列級(jí)完整性約束條件1,列名2數(shù)據(jù)類(lèi)型2列級(jí)完整性約束條件2,列名3數(shù)據(jù)類(lèi)型3列級(jí)完整性約束條件3);創(chuàng)建學(xué)生和教師表創(chuàng)建學(xué)生表1.使用SQL語(yǔ)句創(chuàng)建表CREATETABLEstudent(st_idINTPRIMARYKEYAUTO_INCREMENT,st_noCHAR(10)NOTNULLUNIQUE,st_passwordVARCHAR(12)NOTNULL,st_nameVARCHAR(20)NOTNULL,st_sexCHAR(2)DEFAULT'男',class_idINT,dp_idINT)ENGINE=InnoDBDEFAULTCHARSET=utf8;創(chuàng)建學(xué)生表【例4-4】創(chuàng)建student表。在數(shù)據(jù)庫(kù)competition中創(chuàng)建一個(gè)表student,它由7個(gè)字段組成,分別為:st_id,st_no,st_password,st_name,st_sex,class_id,dp_id。

創(chuàng)建教師表1.使用SQL語(yǔ)句創(chuàng)建表創(chuàng)建教師表CREATETABLETEACHER(tc_idINTNOTNULLPRIMARYKEYAUTO_INCREMENT,tc_noCHAR(10)NOTNULLUNIQUE,tc_passwordVARCHAR(12)NOTNULL,tc_nameVARCHAR(20)NOTNULL,tc_sexCHAR(2)DEFAULT'男',dp_idINT,tc_infoTEXT)ENGINE=InnoDBDEFAULTCHARSET=utf8;【例4-5】創(chuàng)建teacher表。在數(shù)據(jù)庫(kù)competition中創(chuàng)建一個(gè)表teacher,它由7個(gè)字段組成,分別為tc_id,tc_no,tc_password,tc_name,tc_sex,dp_id,tc_info。DESCRIBE語(yǔ)句查看表定義2.查看表結(jié)構(gòu)創(chuàng)建完表,如果需要查看一下表的定義,可以通過(guò)執(zhí)行SQL語(yǔ)句DESCRIBE來(lái)實(shí)現(xiàn),其語(yǔ)法形式如下:DESCRIBE表名;SHOWCREATETABLE

創(chuàng)建完表,如果需要查看表結(jié)構(gòu)的詳細(xì)定義,可以通過(guò)執(zhí)行SQL語(yǔ)句SHOWCREATETABLE來(lái)實(shí)現(xiàn),其語(yǔ)法形式如下:SHOWCREATETABLEtable_name;【例4-6】查看數(shù)據(jù)庫(kù)competition中學(xué)生表student的定義。USEcompetition;DESCRIBEstudent;【例4-7】執(zhí)行SQL語(yǔ)句SHOWCREATETABLE,查看competition中教師表teacher的詳細(xì)信息。USEcompetition;SHOWCREATETABLEteacher;2.查看表結(jié)構(gòu)【例4-7】運(yùn)行結(jié)果修改表名3.使用SQL語(yǔ)句修改表結(jié)構(gòu)在數(shù)據(jù)庫(kù)中,可以通過(guò)表名來(lái)區(qū)分不同的表,因?yàn)楸砻跀?shù)據(jù)庫(kù)中是唯一的,不能重復(fù)的。在MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)中修改表名可以通過(guò)SQL語(yǔ)句ALTER來(lái)實(shí)現(xiàn)。其語(yǔ)法形式如下:ALTERTABLE old_table_nameRENAME[TO]new_table_name;增加字段

在MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)中增加字段通過(guò)SQL語(yǔ)句ALTERTABLE來(lái)實(shí)現(xiàn),其語(yǔ)法形式如下:ALTERTABLEtable_nameADD屬性名屬性類(lèi)型【例4-8】將數(shù)據(jù)庫(kù)competition中的student表改名為stu表。ALTERTABLEstudentRENAMETOstu;【例4-9】為例4-5中創(chuàng)建的表teacher增加“入職時(shí)間”jobtime列,其數(shù)據(jù)類(lèi)型為日期型。ALTERTABLEteacherADD

COLUMNjobtimeDATETIME;【例4-9】運(yùn)行結(jié)果3.使用SQL語(yǔ)句修改表結(jié)構(gòu)增加字段3.使用SQL語(yǔ)句修改表結(jié)構(gòu)增加字段

通過(guò)SQL語(yǔ)句ALTERTABLE來(lái)實(shí)現(xiàn)增加字段時(shí),如果不想讓所增加的字段在所有字段的最后一個(gè)位置,可以通過(guò)FIRST關(guān)鍵字使所增加的字段在表中所有字段的第一個(gè)位置,具體的語(yǔ)法格式如下:ALTERTABLEtable_nameADD屬性名屬性類(lèi)型FIRST;【例4-10】在teacher表的第一個(gè)位置增加tc_type(教師類(lèi)別)字段,其數(shù)據(jù)類(lèi)型為字符型,長(zhǎng)度為10。ALTERTABLEteacherADDtc_typeVARCHAR(10)FIRST;通過(guò)SQL語(yǔ)句ALTERTABLE實(shí)現(xiàn)增加字段時(shí),除可以在表的第一個(gè)位置或最后一個(gè)位置增加字段外,還可以通過(guò)關(guān)鍵字AFTER在指定的字段之后添加字段,具體的語(yǔ)法格式如下:ALTERTABLEtable_nameALTERTABLEtable_nameADD屬性名屬性類(lèi)型AFTER屬性名;【例4-11】在teacher表中tc_name字段后增加tc_title(職稱(chēng))字段,其數(shù)據(jù)類(lèi)型為字符型,長(zhǎng)度為20。ALTERTABLEteacherADDtc_titleVARCHAR(20)AFTERtc_name;【例4-10】運(yùn)行結(jié)果3.使用SQL語(yǔ)句修改表結(jié)構(gòu)【例4-11】運(yùn)行結(jié)果修改字段3.使用SQL語(yǔ)句修改表結(jié)構(gòu)根據(jù)創(chuàng)建表的語(yǔ)法可以發(fā)現(xiàn),字段是由字段名和數(shù)據(jù)類(lèi)型來(lái)進(jìn)行定義的,如果要實(shí)現(xiàn)修改字段,除了可以修改字段名外,還可以實(shí)現(xiàn)修改字段所能存儲(chǔ)的數(shù)據(jù)類(lèi)型。由于一個(gè)表中會(huì)擁有許多字段,因此還可以實(shí)現(xiàn)修改字段的順序。本節(jié)將詳細(xì)介紹如何修改字段。修改字段的數(shù)據(jù)類(lèi)型,具體的語(yǔ)法格式如下:ALTERTABLEtable_nameMODIFY屬性名數(shù)據(jù)類(lèi)型;修改字段

【例4-13】將teacher表的tc_id字段的數(shù)據(jù)類(lèi)型改為SMALLINT。ALTERTABLEteacherMODIFYCOLUMNtc_idSMALLINT;【例4-12】將表teacher的tc_name列長(zhǎng)度改為25。ALTERTABLEteacherMODIFYCOLUMNtc_nameVARCHAR(25);【例4-14】把teacher表中的tc_password字段改為tc_pwd。ALTERTABLEteacherCHANGEtc_passwordtc_pwdVARCHAR(12);修改字段名稱(chēng),具體的語(yǔ)法格式如下:ALTERTABLEtable_nameCHANGE舊屬性名新屬性名舊數(shù)據(jù)類(lèi)型;修改字段3.使用SQL語(yǔ)句修改表結(jié)構(gòu)【例4-12】運(yùn)行結(jié)果【例4-13】運(yùn)行結(jié)果【例4-14】運(yùn)行結(jié)果刪除字段3.使用SQL語(yǔ)句修改表結(jié)構(gòu)對(duì)于表,既然可以在修改表時(shí)進(jìn)行字段的增加操作,那么也可以在修改表時(shí)進(jìn)行字段的刪除。所謂刪除字段是指刪除已經(jīng)在表中定義好的某個(gè)字段。即在創(chuàng)建好的表格中,發(fā)現(xiàn)某個(gè)字段需要?jiǎng)h除,在MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)中刪除字段通過(guò)SQL語(yǔ)句ALTERTABLE來(lái)實(shí)現(xiàn),其語(yǔ)法形式如下:ALTERTABLEtable_nameDROP屬性名;刪除表表的操作包括創(chuàng)建表、查看表、刪除表和修改表。所謂刪除表就是指刪除數(shù)據(jù)庫(kù)中已經(jīng)存在的表。在具體刪除表時(shí),會(huì)直接刪除表中所保存的所有數(shù)據(jù),因此在刪除表時(shí)應(yīng)該非常小心。刪除表需要用到DROPTABLE語(yǔ)句,基本語(yǔ)法如下:DROPTABLE表名;【例4-15】刪除teacher表中的tc_title。ALTERTABLEteacherDROPtc_title;【例4-16】刪除teacher表。DROPTABLEteacher;【例4-15】運(yùn)行結(jié)果3.使用SQL語(yǔ)句修改表結(jié)構(gòu)【例4-16】運(yùn)行結(jié)果

任務(wù)總結(jié)通過(guò)學(xué)習(xí),我們了解到在MySQL中,表是一種重要的數(shù)據(jù)庫(kù)對(duì)象,存儲(chǔ)數(shù)據(jù)庫(kù)中所有的數(shù)據(jù)。一個(gè)表就是一個(gè)關(guān)系,表實(shí)質(zhì)上就是行列的集合,每一行代表一條記錄(元組),每一列代表記錄的一個(gè)字段(屬性)。每個(gè)表由若干行組成,表的第一行為各列標(biāo)題,其余行都是數(shù)據(jù)。而本任務(wù)分為3個(gè)子任務(wù),分別為創(chuàng)建表、修改表和刪除表。創(chuàng)建數(shù)據(jù)表需要用到CREATETABLE語(yǔ)句;創(chuàng)建表后可以通過(guò)DESCRIBE、SHOWCREATETABLE查看表信息;然后,通過(guò)使用ALTERTABLE語(yǔ)句實(shí)現(xiàn)修改表結(jié)構(gòu),可以添加新列、修改列長(zhǎng)度、修改列數(shù)據(jù)類(lèi)型、添加約束、刪除約束和刪除列;最后通過(guò)使用DROPTABLE語(yǔ)句來(lái)刪除表。從而,掌握關(guān)于數(shù)據(jù)表的創(chuàng)建和管理。任務(wù)分析任務(wù)完成任務(wù)描述Part

2Part

3Part

1任務(wù)三數(shù)據(jù)的管理任務(wù)分析任務(wù)完成Part

1Part

2Part

3任務(wù)描述創(chuàng)建數(shù)據(jù)表之后,為了能夠?qū)崿F(xiàn)對(duì)數(shù)據(jù)的處理,我們還需要管理數(shù)據(jù)。任務(wù)描述任務(wù)分析任務(wù)完成Part

1Part

2Part

3任務(wù)描述管理數(shù)據(jù)主要包括數(shù)據(jù)的增加、刪除和修改等操作。我們可以通過(guò)SQL語(yǔ)句向?qū)W生技能競(jìng)賽管理數(shù)據(jù)庫(kù)的數(shù)據(jù)表中添加新記錄、修改或刪除記錄。同時(shí),通過(guò)設(shè)置數(shù)據(jù)完整性約束,如建立主鍵來(lái)保證錄入數(shù)據(jù)的唯一性;設(shè)定數(shù)據(jù)范圍,可以避免一些低級(jí)錯(cuò)誤等。任務(wù)分析任務(wù)分析任務(wù)完成Part

1Part

2Part

3任務(wù)描述為表的所有字段插入數(shù)據(jù)1.向表中添加數(shù)據(jù)在使用數(shù)據(jù)庫(kù)之前,數(shù)據(jù)庫(kù)中必須要有數(shù)據(jù),MySQL中使用INSERT語(yǔ)句向數(shù)據(jù)庫(kù)表中插入新的數(shù)據(jù)記錄。該SQL語(yǔ)句可以通過(guò)如下四種方式使用:插入完整數(shù)據(jù)記錄插入數(shù)據(jù)記錄的一部分插入多條數(shù)據(jù)記錄插入另一個(gè)查詢(xún)的結(jié)果使用基本的INSERT語(yǔ)句插入數(shù)據(jù)要求指定表名稱(chēng)和插入到新記錄中的值?;菊Z(yǔ)法如下:INSERTINTOtable_name(column_list)VALUES(value_list);為表的所有字段插入數(shù)據(jù)table_name指定要插入數(shù)據(jù)的表名,column_list指定要插入數(shù)據(jù)的那些列,value_list指定每個(gè)列應(yīng)對(duì)應(yīng)插入的數(shù)據(jù)。注意,使用該語(yǔ)句時(shí)字段列和數(shù)據(jù)值的數(shù)量必須相同?!纠?-17】在student表中插入一行新記錄,學(xué)號(hào)為2201050907,密碼為x123456,姓名為“王宏豪”,性別為“男”,班別為09,系別為02。INSERTINTOstudentVALUES('1','2201050907','x123456','王宏豪','男','09','02');運(yùn)行結(jié)果【例4-17】1.向表中添加數(shù)據(jù)為表的指定字段插入數(shù)據(jù),就是在INSERT語(yǔ)句中只向部分字段中插入值,而其他字段的值為表定義時(shí)的默認(rèn)值?!纠?-18】在student表中插入一行新記錄,學(xué)號(hào)為2201050908,姓名為“張可可”,密碼為z123456,性別為“女”。INSERTINTOstudent(st_no,st_name,st_password,st_sex)VALUES('2201050908','張可可','z123456','女');同時(shí)插入多條記錄INSERT語(yǔ)句可以同時(shí)向數(shù)據(jù)表中插入多條記錄,插入時(shí)指定多個(gè)值列表,每個(gè)值列表之間用逗號(hào)分隔開(kāi)?!纠?-19】在teacher表中,為tc_id,tc_no,tc_password和tc_name字段插入指定值,同時(shí)插入3條新記錄。INSERTINTOteacher(tc_id,tc_no,tc_password,tc_name)VALUES(11,'1001','t123456','趙亮'),(12,'1002','t123456','李文楚'),(13,'1003','t123456','全輝俊');為表的指定字段插入數(shù)據(jù)運(yùn)行結(jié)果【例4-18】【例4-19】1.向表中添加數(shù)據(jù)INSERT語(yǔ)句用來(lái)給數(shù)據(jù)表插入記錄時(shí),指定插入記錄的列值。INSERT還可以將SELECT語(yǔ)句查詢(xún)的結(jié)果插入到表中,如果想要從另外一個(gè)表中合并個(gè)人信息到teacher表,不需要把每一條記錄的值一個(gè)一個(gè)輸入,只需要使用一條INSERT語(yǔ)句和一條SELECT語(yǔ)句組成的組合語(yǔ)句,即可快速地從一個(gè)或多個(gè)表中向一個(gè)表中插入多個(gè)行。其語(yǔ)法形式如下:INSERTINTOtable_name1(column_list)SELECT(column_list2)FROMtable_name2WHERE(condition);將查詢(xún)結(jié)果插入表中【例4-20】創(chuàng)建一個(gè)名為teacher_copy的數(shù)據(jù)表,其表結(jié)構(gòu)與teacher表相同,然后把teacher表中tc_no為1001的信息賦給teacher_copy表。CREATETABLEteacher_copy(tc_idINTNOTNULLPRIMARYKEYAUTO_INCREMENT,tc_noCHAR(10)NOTNULLUNIQUE,tc_passwordVARCHAR(12)NOTNULL,tc_nameVARCHAR(20)NOTNULL,tc_sexCHAR(2)DEFAULT'男',dp_idINT,tc_infoTEXT)ENGINE=InnoDBDEFAULTCHARSET=utf8;INSERTINTOteacher_copy(tc_no,tc_password,tc_name)SELECTtc_no,tc_password,tc_nameFROMteacherWHEREtc_no='1001';將查詢(xún)結(jié)果插入表中運(yùn)行結(jié)果【例4-20】修改數(shù)據(jù)2.修改數(shù)據(jù)表中有數(shù)據(jù)之后,接下來(lái)可以對(duì)數(shù)據(jù)進(jìn)行更新操作,MySQL中使用UPDATE語(yǔ)句更新表中的記錄。修改數(shù)據(jù)可以只修改單條記錄,也可修改多條記錄甚至是全部記錄。修改數(shù)據(jù)使用UPDATE語(yǔ)句,基本語(yǔ)法如下:UPDATEtable_nameSETcolumn_name1=value1,column_name2=value1,……,column_namen=valuenWHERE(condition);修改單條記錄table_name指定要插入數(shù)據(jù)的表名,column_list指定要插入數(shù)據(jù)的那些列,value_list指定每個(gè)列應(yīng)對(duì)應(yīng)插入的數(shù)據(jù)。注意,使用該語(yǔ)句時(shí)字段列和數(shù)據(jù)值的數(shù)量必須相同。【例4-21】將student表中張可可的班級(jí)修改為2班。UPDATEstudentSETclass_id='02'WHEREst_name='張可可';運(yùn)行結(jié)果【例4-21】修改多條記錄2.修改數(shù)據(jù)【例4-22】將department表中的院系名信息工程學(xué)院改為計(jì)算機(jī)系。UPDATEdepartmentSETdp_name='計(jì)算機(jī)系'WHEREdp_name='信息工程學(xué)院';修改全部記錄【例4-23】將project表中的培訓(xùn)天數(shù)全部加3天。UPDATEprojectSETpr_days=pr_days+3;運(yùn)行結(jié)果【例4-22】【例4-23】刪除單條記錄3.刪除數(shù)據(jù)從數(shù)據(jù)表中刪除數(shù)據(jù)使用DELETE語(yǔ)句,DELETE語(yǔ)句允許WHERE子句指定刪除條件。刪除數(shù)據(jù)可以只刪除單條記錄,也可刪除多條記錄甚至是全部記錄。DELETE語(yǔ)句基本語(yǔ)法形式如下:DELETEFROMtable_name[WHERE<condition>];刪除多條記錄刪除全部記錄【例4-25】刪除student表中院系編號(hào)為2的所有學(xué)生信息。DELETEFROMstudentWHEREdp_id=2;【例4-26】刪除student表的所有信息。DELETEFROMstudent;【例4-24】刪除student表中姓名為“梁炳林”的學(xué)生。DELETEFROMstudentWHEREst_name='梁炳林';運(yùn)行結(jié)果【例4-24】【例4-25】【例4-26】任務(wù)總結(jié)在本任務(wù)中表的數(shù)據(jù)管理包括添加數(shù)據(jù)、修改數(shù)據(jù)和刪除數(shù)據(jù)。首先向表中添加數(shù)據(jù),可以使用INSERT語(yǔ)句。本任務(wù)中通過(guò)為表的所有字段插入數(shù)據(jù)、為表的指定字段插入數(shù)據(jù)、同時(shí)插入多條記錄和將查詢(xún)結(jié)果插入到表中等方式掌握各種添加數(shù)據(jù)的方式。接著當(dāng)添加數(shù)據(jù)發(fā)生錯(cuò)誤或者事務(wù)發(fā)生變化時(shí),數(shù)據(jù)需要進(jìn)行修改??梢允褂肬PDATE語(yǔ)句。依次通過(guò)修改單條記錄、修改多條記錄和修改全部記錄逐步掌握對(duì)數(shù)據(jù)的修改。最后如果表中的某些記錄不需要了,可以使用DELETE語(yǔ)句刪除。依次通過(guò)刪除單條記錄、刪除多條記錄和刪除全部記錄逐步掌握對(duì)數(shù)據(jù)的刪除。任務(wù)分析任務(wù)完成任務(wù)描述Part

2Part

3Part

1任務(wù)四數(shù)據(jù)完整性任務(wù)分析任務(wù)完成Part

1Part

2Part

3任務(wù)描述在管理數(shù)據(jù)的過(guò)程中,有的列必須要有值,不能為空;有的列數(shù)據(jù)值只能在某個(gè)范圍內(nèi);還有的列值必須取自其他的表。數(shù)據(jù)的這種規(guī)律,使我們管理數(shù)據(jù)便有章可循。如我們可以在表結(jié)構(gòu)上增加一些約束,以確保該列不能為空,或者輸入數(shù)據(jù)不在范圍內(nèi)則提示等,這就是數(shù)據(jù)完整性約束機(jī)制。任務(wù)描述任務(wù)分析任務(wù)完成Part

1Part

2Part

3任務(wù)描述數(shù)據(jù)完整性約束,可以在建立表結(jié)構(gòu)時(shí)設(shè)置,也可以在建好的表上進(jìn)行添加。在學(xué)生競(jìng)賽項(xiàng)目管理系統(tǒng)中,student表中可以設(shè)置姓名、密碼不能為空,學(xué)生編號(hào)為主鍵,性別只能取值為“男”或“女”,并且默認(rèn)為“男”;project表中可以設(shè)置學(xué)生編號(hào)、項(xiàng)目號(hào)、教師編號(hào)為外鍵。這樣設(shè)置后,數(shù)據(jù)的準(zhǔn)確性與一致性就得到了保障。任務(wù)分析任務(wù)分析任務(wù)完成Part

1Part

2Part

3任務(wù)描述1.主鍵約束主鍵,又稱(chēng)主碼,是表中一列或多列的組合。主鍵約束要求主鍵列的數(shù)據(jù)唯一,并且不允許為空。主鍵能夠唯一地標(biāo)識(shí)表中的一條記錄,可以結(jié)合外鍵來(lái)定義不同數(shù)據(jù)表之間的關(guān)系,并且可以加快數(shù)據(jù)庫(kù)查詢(xún)的速度。主鍵和記錄主鍵的關(guān)系如同身份證和人之間的關(guān)系,它們是一一對(duì)應(yīng)的。主鍵分為兩種類(lèi)型:?jiǎn)巫侄沃麈I和多字段聯(lián)合主鍵。建表時(shí)設(shè)置單列主鍵約束CREATETABLEstudent(st_idINTPRIMARYKEY,st_noCHAR(10)NOTNULL,st_passwordCHAR(12)NOTNULL,st_nameVARCHAR(20)NOTNULL,st_sexCHAR(2),class_idINT,dp_idCHAR(10));【例4-27】在competition數(shù)據(jù)庫(kù)中創(chuàng)建student表,結(jié)構(gòu)為st_id,st_no,st_password,st_name,st_sex,class_id,dp_id,其中,st_id為主鍵。建表時(shí)設(shè)置單列主鍵約束運(yùn)行結(jié)果【例4-27】1.主鍵約束【例4-28】在competition數(shù)據(jù)庫(kù)中創(chuàng)建學(xué)生參賽表st_project,其結(jié)構(gòu)為st_project(st_pid,st_id,pr_id,tc_id),其中主鍵為st_pid和st_id。ALTERTABLEteacherADDCONSTRAINTPK_idPRIMARYKEY(tc_id);【例4-29】為competition數(shù)據(jù)庫(kù)中的teacher表添加主鍵約束tc_id,約束名為PK_id。CREATETABLEst_project(st_pidINT,st_idINT,pr_idINT,tc_idINT,PRIMARYKEY(st_pid,st_id));建表時(shí)設(shè)置多列組合主鍵約束修改表時(shí)添加主鍵約束運(yùn)行結(jié)果【例4-28】【例4-29】2.外鍵約束外鍵用于與另一張表的關(guān)聯(lián)。是能確定另一張表記錄的字段,用于保持?jǐn)?shù)據(jù)的一致性。比如,A表中的一個(gè)字段,是B表的主鍵,那它就可以是A表的外鍵。建表建表時(shí)設(shè)置外鍵約束CREATETABLEtc_project(tc_pidINTPRIMARYKEY,tc_idINT,pr_idINT,CONSTRAINTfor_idFOREIGNKEY(tc_id)REFERENCESteacher(tc_id));【例4-30】在competition數(shù)據(jù)庫(kù)中創(chuàng)建教師指導(dǎo)表tc_project,其結(jié)構(gòu)為tc_project(tc_pid,tc_id,pr_id),其中,外鍵為tc_id。建表建表時(shí)設(shè)置外鍵約束運(yùn)行結(jié)果【例4-30】2.外鍵約束【例4-31】為competition數(shù)據(jù)庫(kù)中的tc_project表中的項(xiàng)目號(hào)pr_id建立外鍵約束,該列值參照project表中的項(xiàng)目號(hào)pr_id。修改表時(shí)添加外鍵約束ALTERTABLEtc_projectADDCONSTRAINTfor_pidFOREIGNKEY(pr_id)REFERENCESproject(pr_id);修改表時(shí)添加外鍵約束3.唯一約束唯一約束保證在一個(gè)字段或者一組字段里的數(shù)據(jù)與表中其它行的數(shù)據(jù)相比是唯一的。建表時(shí)設(shè)置唯一約束CREATETABLEstudent(st_idINTPRIMARYKEY,st_noCHAR(10)NOTNULLUNIQUE,st_passwordCHAR(12)NOTNULL,st_nameVARCHAR(20)NOTNULL,st_sexCHAR(2),class_idINT,dp_idCHAR(10));【例4-32】在competition數(shù)據(jù)庫(kù)中創(chuàng)建student表,結(jié)構(gòu)為student(st_id,st_no,st_password,st_name,st_sex,class_id,dp_id),其中,st_no為唯一約束。建表時(shí)設(shè)置唯一約束運(yùn)行結(jié)果【例4-32】3.唯一約束【例4-33】為competition數(shù)據(jù)庫(kù)中的teacher表中的教師工號(hào)tc_no建立唯一約束。ALTERTABLEteacherADDCONSTRAINTUNIQUE(tc_no);修改表時(shí)添加唯一約束4.非空約束非空約束保護(hù)的數(shù)據(jù)列必須要要有數(shù)據(jù)值。建表時(shí)設(shè)置非空約束CREATETABLEclass(class_idINT,class_noCHAR(10)NOTNULL,class_nameCHAR(20)NOTNULL,class_gradeCHAR(10)NOTNULL,dp_idCHAR(10));【例4-34】在competition數(shù)據(jù)庫(kù)中創(chuàng)建class表,其結(jié)構(gòu)為class(class_id,class_id,class_name,class_grade,dp_id),其中,非空約束為class_no、class_name和class_grade。建表時(shí)設(shè)置非空約束運(yùn)行結(jié)果【例4-34】4.非空約束【例4

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論