MySQL數(shù)據(jù)庫(kù)設(shè)計(jì)與應(yīng)用項(xiàng)目化教程(微課版) 課件 項(xiàng)目2 創(chuàng)建與維護(hù)教學(xué)管理數(shù)據(jù)表_第1頁(yè)
MySQL數(shù)據(jù)庫(kù)設(shè)計(jì)與應(yīng)用項(xiàng)目化教程(微課版) 課件 項(xiàng)目2 創(chuàng)建與維護(hù)教學(xué)管理數(shù)據(jù)表_第2頁(yè)
MySQL數(shù)據(jù)庫(kù)設(shè)計(jì)與應(yīng)用項(xiàng)目化教程(微課版) 課件 項(xiàng)目2 創(chuàng)建與維護(hù)教學(xué)管理數(shù)據(jù)表_第3頁(yè)
MySQL數(shù)據(jù)庫(kù)設(shè)計(jì)與應(yīng)用項(xiàng)目化教程(微課版) 課件 項(xiàng)目2 創(chuàng)建與維護(hù)教學(xué)管理數(shù)據(jù)表_第4頁(yè)
MySQL數(shù)據(jù)庫(kù)設(shè)計(jì)與應(yīng)用項(xiàng)目化教程(微課版) 課件 項(xiàng)目2 創(chuàng)建與維護(hù)教學(xué)管理數(shù)據(jù)表_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

項(xiàng)目2創(chuàng)建與維護(hù)教學(xué)管理

數(shù)據(jù)表建表、對(duì)表數(shù)據(jù)的增刪改查操作

創(chuàng)建教學(xué)管理數(shù)據(jù)庫(kù)2.1解讀MySQL的數(shù)據(jù)類型2.2創(chuàng)建數(shù)據(jù)表2.3操作表數(shù)據(jù)庫(kù)2.4使用Navicat管理表2.5添加表的約束

2.1解讀MySQL的數(shù)據(jù)類型學(xué)號(hào)sno姓名sname性別ssex出生日期birthday專業(yè)spec20231012101李偉男2002-09-06計(jì)算機(jī)應(yīng)用20231012102張?zhí)m女2003-03-09軟件技術(shù)20231012103王芳女2003-05-06通信技術(shù)20231012104劉勇男2003-06-16軟件技術(shù)課程號(hào)cno課程名cname學(xué)分credit開課學(xué)期termc06101高等數(shù)學(xué)41c06102大學(xué)英語(yǔ)21c06103C語(yǔ)言52c05101軟件工程44學(xué)號(hào)sno課程號(hào)cno成績(jī)grade20231012101c061019020231012101c061028920231012102c061018520231012103c0610375字符串類型數(shù)值類型日期時(shí)間類型三大類型:學(xué)生表課程表成績(jī)表1

字符串類型char類型:定長(zhǎng)的字符串。varchar類型:不定長(zhǎng)的字段串。2.1解讀MySQL的數(shù)據(jù)類型插入值char(4)char(4)存儲(chǔ)需求varchar(4)varchar(4)存儲(chǔ)需求‘’‘‘4字節(jié)‘’1字節(jié)‘a(chǎn)b’‘a(chǎn)b‘4字節(jié)‘a(chǎn)b’3字節(jié)‘a(chǎn)bc’‘a(chǎn)bc‘4字節(jié)‘a(chǎn)bc’4字節(jié)‘a(chǎn)bcd’‘a(chǎn)bcd’4字節(jié)‘a(chǎn)bcd’5字節(jié)1

字符串類型text類型:用于保存大文本數(shù)據(jù),例如,文章內(nèi)容、評(píng)論等比較長(zhǎng)的文本。binary和varbinary類型:binary和varbinary類型類似于char和varchar,不同的是,它們所表示的是二進(jìn)制數(shù)據(jù)。blob類型:是一種特殊的二進(jìn)制類型,它用于表示數(shù)據(jù)量很大的二進(jìn)制數(shù)據(jù),例如圖片、PDF文檔等。2.1解讀MySQL的數(shù)據(jù)類型1

字符串類型enum類型:也稱為枚舉類型,只能從枚舉列表中取,并且只能取一個(gè)。set類型:集合類型,用于表示字符串對(duì)象,它的值可以有零個(gè)或多個(gè)。與enum不同的是,enum只允許向一條記錄中插入一個(gè)值,而set可以向一條記錄中插入多個(gè)值。2.1解讀MySQL的數(shù)據(jù)類型2

數(shù)字類型1.整數(shù)類型數(shù)據(jù)類型字節(jié)數(shù)有符號(hào)數(shù)的取值范圍無符號(hào)數(shù)的取值范圍tinyint1-128~1270~255smallint2-32768~327670~65535mediumint3-8388608~83886070~16777215int4-2147483648~21474836470~4294967295bigint8-9223372036854775808~92233720368547758070~18446744073709551615intunsigned2.1解讀MySQL的數(shù)據(jù)類型2

數(shù)字類型2.小數(shù)類型數(shù)據(jù)類型精度取值范圍字節(jié)數(shù)

float(p[,s])8位精度,p表示數(shù)據(jù)長(zhǎng)度,s表示小數(shù)位數(shù),若不指定精度,則默認(rèn)保存實(shí)際精度+(-)3.402823466E+384

double(p[,s])16位精度,p表示數(shù)據(jù)長(zhǎng)度,s表示小數(shù)位數(shù),若不指定精度,則默認(rèn)保存實(shí)際精度+(-)1.7976931348623157E+308+(-)2.2250738585072014E-3088

decimal(p[,s])p表示數(shù)據(jù)長(zhǎng)度,s表示小數(shù)位數(shù),默認(rèn)的精度為10,小數(shù)位數(shù)為0可變自定義浮點(diǎn)數(shù)定點(diǎn)數(shù)--2.1解讀MySQL的數(shù)據(jù)類型3

日期和時(shí)間類型類型取值范圍說明year1901~2155年份,格式Y(jié)YYY或YYdate1000-01-01~1999-12-31日期,格式Y(jié)YYY-MM-DDtime-838:59:59~838:59:59時(shí)間,格式HH:MM:SSdatetime1000-01-0100:0:0~9999-12-3123:59:59日期和時(shí)間,格式Y(jié)YYY-MM-DDHH:MM:SStimestamp1970-01-0100:00:01~2038-01-1903:14:07時(shí)間標(biāo)簽,在處理報(bào)告時(shí)使用顯示格式取決于M的值2.1解讀MySQL的數(shù)據(jù)類型

創(chuàng)建教學(xué)管理數(shù)據(jù)庫(kù)2.1解讀MySQL的數(shù)據(jù)類型2.2創(chuàng)建數(shù)據(jù)表2.3操作表數(shù)據(jù)庫(kù)2.4使用Navicat管理表2.5添加表的約束

1

表的基本概念2.2創(chuàng)建數(shù)據(jù)表學(xué)號(hào)sno姓名sname性別ssex出生日期birthday專業(yè)spec20231012101李偉男2002-09-06計(jì)算機(jī)應(yīng)用20231012102張?zhí)m女2003-03-09軟件技術(shù)20231012103王芳女2003-05-06通信技術(shù)20231012104劉勇男2003-06-16軟件技術(shù)表名、表結(jié)構(gòu)、字段名、字段長(zhǎng)度和小數(shù)位數(shù)student表1

表的基本概念2.2創(chuàng)建數(shù)據(jù)表說明:(1)字符串類型。對(duì)于字符串類型來說,長(zhǎng)度代表字段所能容納字符的數(shù)目,因此它會(huì)限制用戶所能輸入的文本長(zhǎng)度。(2)整數(shù)類型。對(duì)于整數(shù)類型來說,長(zhǎng)度代表該數(shù)據(jù)類型指定的顯示寬度。顯示寬度是指能夠顯示的最大數(shù)據(jù)的長(zhǎng)度。在不指定寬度的情況下,每個(gè)整數(shù)類型都有默認(rèn)的顯示寬度。(3)二進(jìn)制類型。對(duì)于二進(jìn)制類型來說,長(zhǎng)度代表字段所能容納的最大字節(jié)數(shù)。(4)浮點(diǎn)數(shù)類型和定點(diǎn)數(shù)類型。對(duì)于浮點(diǎn)數(shù)類型和定點(diǎn)數(shù)類型來說,長(zhǎng)度代表數(shù)據(jù)的總長(zhǎng)度,也就是精度。精度是指數(shù)據(jù)中數(shù)字的位數(shù)(包括小數(shù)點(diǎn)左側(cè)的整數(shù)部分和小數(shù)點(diǎn)右側(cè)的小數(shù)部分),而小數(shù)位數(shù)是指數(shù)字中小數(shù)點(diǎn)右側(cè)的位數(shù)。例如,數(shù)字12345.678的精度是8,小數(shù)位數(shù)是3。1

表的基本概念2.2創(chuàng)建數(shù)據(jù)表確定數(shù)據(jù)類型的原則:(1)數(shù)據(jù)內(nèi)容是數(shù)值。

如果數(shù)據(jù)內(nèi)容是數(shù)值,則數(shù)據(jù)類型應(yīng)為整型、浮點(diǎn)型和定點(diǎn)型中的一種。其遵循的原則如下。①選擇最小的可用類型,如果值永遠(yuǎn)不超過127,則使用tinyint。②對(duì)于沒有小數(shù)部分的數(shù),可以選擇整數(shù)類型。③浮點(diǎn)類型用于可能具有小數(shù)部分的數(shù),如貨物單價(jià)、網(wǎng)上購(gòu)物支付金額等。(2)數(shù)據(jù)內(nèi)容是文本。

如果數(shù)據(jù)內(nèi)容是文本,則數(shù)據(jù)類型應(yīng)為字符串類型,具體選擇哪一種字符串類型,可以遵循以下原則。①?gòu)乃俣确矫婵紤],要選擇固定長(zhǎng)度的列,可以使用char類型。②要節(jié)省空間,使用長(zhǎng)度可變的列,可以使用varchar類型。③要將列中的內(nèi)容限制在一種選擇,可以使用enum類型。④允許在一列中有多于一個(gè)的條目,可以使用set類型。⑤對(duì)于長(zhǎng)文本數(shù)據(jù),如果要搜索的內(nèi)容不區(qū)分大小寫,可以使用text類型。⑥對(duì)于長(zhǎng)文本數(shù)據(jù),如果要搜索的內(nèi)容區(qū)分大小寫,可以使用blob類型。2

建表2.2創(chuàng)建數(shù)據(jù)表學(xué)號(hào)sno姓名sname性別ssex出生日期birthday專業(yè)spec20231012101李偉男2002-09-06計(jì)算機(jī)應(yīng)用20231012102張?zhí)m女2003-03-09軟件技術(shù)20231012103王芳女2003-05-06通信技術(shù)20231012104劉勇男2003-06-16軟件技術(shù)student表2

建表2.2創(chuàng)建數(shù)據(jù)表mysql>createtablestudent(->snochar(11)comment'學(xué)號(hào)'primarykey,->snamechar(8)comment'姓名',->sexenum('男','女')comment'性別',->birthdaydatecomment'出生日期',->specvarchar(20)comment'專業(yè)'->);CREATETABLE[IFNOTEXISTS]表名(字段名字段類型[字段屬性]…)[表選項(xiàng)]語(yǔ)法格式:3

查看表結(jié)構(gòu)2.2創(chuàng)建數(shù)據(jù)表1.SHOWCREATETABLE表名;2.DESCRIBE表名;3.使用SHOWTABLES語(yǔ)句查看庫(kù)中所有表;mysql>showcreatetablestudent;mysql>descstudent;mysql>showtables;4修改表結(jié)構(gòu)2.2創(chuàng)建數(shù)據(jù)表

ALTERTABLE

命令1.修改表名2.修改字段名ALTERTABLE舊表名RENAME[TO]新表名;ALTERTABLE表名CHANGE舊屬性名

新屬性名

新數(shù)據(jù)類型

[字段屬性];3.增加字段ALTERTABLE表名ADD[COLUMN]新字段名字段類型[FIRST|AFTER字段名]mysql>altertablestudentrenametostudents;mysql>altertablestudentaddemailvarchar(30)afterspec;4修改表結(jié)構(gòu)2.2創(chuàng)建數(shù)據(jù)表

ALTERTABLE

命令4.修改字段的數(shù)據(jù)類型ALTERTABLE表名MODIFY[COLUMN]字段名

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

[字段屬性];5.刪除字段ALTERTABLE表名DROP[COLUMN]字段名;mysql>altertablecoursemodifytermenum('1','2','3','4','5','6');mysql>altertablestudentdropemail;5

刪除數(shù)據(jù)表2.2創(chuàng)建數(shù)據(jù)表DROP

TABLE表名;

刪除數(shù)據(jù)表是指刪除數(shù)據(jù)庫(kù)中已存在的表,在刪除數(shù)據(jù)表的同時(shí),數(shù)據(jù)表中存儲(chǔ)的數(shù)據(jù)都將被刪除。

創(chuàng)建教學(xué)管理數(shù)據(jù)庫(kù)2.1解讀MySQL的數(shù)據(jù)類型2.2創(chuàng)建數(shù)據(jù)表2.3操作表數(shù)據(jù)庫(kù)2.4使用Navicat管理表2.5添加表的約束

1添加數(shù)據(jù)2.3操作表數(shù)據(jù)INSERT[INTO]表名[字段名,…]VALUES(值1,[值2]…);1.為所有字段添加數(shù)據(jù)2.為部分字段添加數(shù)據(jù)mysql>insertintostudent->values('20231012101','李偉','男','2004-09-06','計(jì)算機(jī)應(yīng)用');mysql>insertintostudent(sno,sname)values('20231012102','張?zhí)m');3.一次添加多行數(shù)據(jù)mysql>insertintostudentvalues->('20231012103','王芳','女','2005-05-06','通信技術(shù)'),->('20231012104','劉勇','男','2005-06-16','軟件技術(shù)'),->('20231012105','高興','男',null,null);2查詢數(shù)據(jù)2.3操作表數(shù)據(jù)2.查詢表中部分字段SELECT*FROM數(shù)據(jù)表名;1.查詢表中全部數(shù)據(jù)SELECT{字段名1,字段名2,字段名3,…}FROM數(shù)據(jù)表名;3.簡(jiǎn)單條件查詢SELECT*|{字段名1,字段名2,字段名3,…}FROM數(shù)據(jù)表名WHERE字段名=值;mysql>select*fromstudent;mysql>selectsno,snamefromstudent;mysql>select*fromstudentwherespec='軟件技術(shù)';3修改數(shù)據(jù)2.3操作表數(shù)據(jù)UPDATE表名SET字段名1=值1[,字段名2=值2,…][WHERE條件=表達(dá)式];4刪除數(shù)據(jù)1.使用DELETE語(yǔ)句刪除數(shù)據(jù)DELETEFROM表名[WHETE條件表達(dá)式];2.使用TRUNCATE語(yǔ)句刪除數(shù)據(jù)TRUNCATE[TABLE]表名mysql>updatecoursesetterm='1'wherecname='C語(yǔ)言';mysql>deletefromstudentwheresno='20231012105';

創(chuàng)建教學(xué)管理數(shù)據(jù)庫(kù)2.1解讀MySQL的數(shù)據(jù)類型2.2創(chuàng)建數(shù)據(jù)表2.3操作表數(shù)據(jù)庫(kù)2.4使用Navicat管理表2.5添加表的約束

1建表2.4使用Navicat管理表打開連接--->打開數(shù)據(jù)庫(kù)--->用鼠標(biāo)右鍵單擊“表”節(jié)點(diǎn)--->快捷菜單中選擇“新建表”--->在打開的設(shè)計(jì)表窗口中輸入列名、數(shù)據(jù)類型等等列屬性--->保存并輸入表名2.4使用Navicat管理表2編輯表數(shù)據(jù)左側(cè)窗口中展開數(shù)據(jù)庫(kù)中的表--->選中要編輯的表--->鼠標(biāo)右鍵快捷菜單中選擇“打開表”命令--->打開該表的數(shù)據(jù)窗口--->利用窗口底部的“+”、“—”按鈕進(jìn)行添加、刪除數(shù)據(jù)--->“√”按鈕保存編輯結(jié)果

創(chuàng)建教學(xué)管理數(shù)據(jù)庫(kù)2.1解讀MySQL的數(shù)據(jù)類型2.2創(chuàng)建數(shù)據(jù)表2.3操作表數(shù)據(jù)庫(kù)2.4使用Navicat管理表2.5添加表的約束

1非空約束2.5添加表的約束NOTNULL字段名

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

NOTNULL;

非空約束指的是數(shù)據(jù)列不能為NULL,非空表示數(shù)據(jù)列不允許有空值出現(xiàn),空值表示數(shù)值未確定,并不是數(shù)字“0”或字符“空格”。非空約束可以確保數(shù)據(jù)列中必須是有意義的值。語(yǔ)法格式:2.5添加表的約束2主鍵約束PRIMARYKEY1.創(chuàng)建表時(shí)定義主鍵約束2.修改表的主鍵修改表結(jié)構(gòu)ALTERTABLE

設(shè)置主鍵的目的是幫助MySQL以最快的速度查找到表中的指定信息。主鍵的值能唯一標(biāo)識(shí)表中的記錄,類似指紋、身份證用于標(biāo)識(shí)人的身份一樣。#列級(jí)約束mysql>createtablecourse01(->cnochar(6)primarykey,->cnamevarchar(20)notnull,->credittinyintnotnull,->termtinyintnotnull->);#表級(jí)約束mysql>createtablecourse02(->cnochar(6),->cnamevarchar(20)notnull,->credittinyintnotnull,->termtinyintnotnull,->primarykey(cno)->);mysql>altertablestudent01addprimarykey(sno);3外鍵約束2.5添加表的約束FOREIGNKEYCONSTRAINT外鍵名FOREIGNKEY(字段名1,[字段名2…])REFERENCES表名(字段名1,[字段名2…])[ONDELETE{RESTRICT|CASCADE|SETNULL|NOACTION}][ONUPDATE{RESTRICT|CASCADE|SETNULL|NOACTION}]1.參照完整性

在關(guān)系數(shù)據(jù)庫(kù)中,有很多規(guī)則是跟表之間的關(guān)系有關(guān)的,表與表之間往往存在一種“父子”關(guān)系。外鍵的作用是建立子表與其父表的關(guān)聯(lián)關(guān)系,保證子表與父表關(guān)聯(lián)數(shù)據(jù)的一致性。當(dāng)父表中更新或刪除某條信息時(shí),子表中與之對(duì)應(yīng)的信息也必須有相應(yīng)的改變。語(yǔ)法格式:3外鍵約束2.5添加表的約束FOREIGNKEY參數(shù)名稱功能描述RESTRICT默認(rèn)值。拒絕父表刪除或修改外鍵關(guān)聯(lián)字段CASCADE父表中刪除或更新記錄時(shí),同時(shí)自動(dòng)刪除或更新子表中對(duì)應(yīng)的記錄SETNULL父表中刪除或更新記錄時(shí),使用NULL值替換子表中對(duì)應(yīng)的記錄(不適用于NOTNULL字段)NOACTION與默認(rèn)值RESTRICT相同,拒絕父表刪除或修改外鍵關(guān)聯(lián)字段SETDEFAULT設(shè)默認(rèn)值,但I(xiàn)nnoDB目前不支持外鍵約束的參數(shù)說明3外鍵約束2.5添加表的約束FOREIGNKEY2.創(chuàng)建表時(shí)定義外鍵mysql>createtablescore(->snochar(11)notnull,->cnochar(6)notnull,->gradeint,->primarykey(sno,cno),->foreignkey(sno)referencesstudent(sno)->);3.對(duì)已有的表添加外鍵mysql>altertablescoreaddconstraintfk_cno->foreignkey(cno)referencescourse(cno);2.5添加表的約束4檢查約束CHECKCONSTRAINT約束名CHECK(條件)5唯一約束UNIQUE

唯一性約束是指所有記錄中該字段的值不能重復(fù)出現(xiàn)。

在進(jìn)行數(shù)據(jù)完整性管理時(shí),還需要一些針對(duì)數(shù)據(jù)表列的取值范圍進(jìn)行限定的約束。語(yǔ)法格式:mysql>altertablestudent->addconstraintcheck_birth->check(birthday>'1999-12-31');mysql>altertablecourseaddunique(cname);2.5添加表的約束6其他約束默認(rèn)值DEFAULT、自動(dòng)增長(zhǎng)AUTO_INCREMENT

默認(rèn)約束就是給數(shù)據(jù)表中的字段指定默認(rèn)值。在插入一條新的記錄時(shí),如果沒有為這個(gè)字段賦值,那么系統(tǒng)會(huì)自動(dòng)為這個(gè)字段插入默認(rèn)值。1.默認(rèn)約束字段名數(shù)據(jù)類型

DEFAULT默認(rèn)值;語(yǔ)法格式:mysql>createtablemy_default(->idintprimarykey,->stu_idintunique,->gradefloatdefault0);2.5添加表的約束6其他約束默認(rèn)值DEFAULT、自動(dòng)增長(zhǎng)AUTO_INCREMENTAUTO_INCREMENT是MySQL數(shù)據(jù)庫(kù)中一個(gè)特殊的約束。其主要用于為表中插入的新記錄自動(dòng)生成唯一的ID。AUTO_INCREMENT約束的字段可以是任何整數(shù)類型(TINYINT、SMALLINT、INT、BIGINT等)。2.自動(dòng)增長(zhǎng)字段字段名

數(shù)據(jù)類型AUTO_INCREMENT語(yǔ)法格式:mysql>createtabletest(->idintprima

溫馨提示

  • 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)論