數(shù)據(jù)庫(kù)原理與應(yīng)用快速入門 課件 第2章 創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)表_第1頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用快速入門 課件 第2章 創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)表_第2頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用快速入門 課件 第2章 創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)表_第3頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用快速入門 課件 第2章 創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)表_第4頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用快速入門 課件 第2章 創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)表_第5頁(yè)
已閱讀5頁(yè),還剩86頁(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)介

數(shù)據(jù)庫(kù)原理與應(yīng)用快速入門2.1創(chuàng)建數(shù)據(jù)庫(kù)2.2創(chuàng)建數(shù)據(jù)表2.3關(guān)于數(shù)據(jù)庫(kù)引擎第2章

創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)表2.1.1了解系統(tǒng)默認(rèn)數(shù)據(jù)庫(kù)2.1.2創(chuàng)建用戶數(shù)據(jù)庫(kù)2.1創(chuàng)建數(shù)據(jù)庫(kù)2.1.1了解系統(tǒng)默認(rèn)數(shù)據(jù)庫(kù)要保存數(shù)據(jù),首先需要將數(shù)據(jù)庫(kù)建立起來(lái),就像要存放圖書(shū),首先要搭建書(shū)庫(kù)一樣。從物理上看,通常一個(gè)數(shù)據(jù)庫(kù)對(duì)應(yīng)磁盤系統(tǒng)上的若干個(gè)文件。MySQL安裝完成后,系統(tǒng)中已經(jīng)存在了幾個(gè)默認(rèn)數(shù)據(jù)庫(kù),可以使用以下命令進(jìn)行查看:

SHOWDATABASES;2.1.1了解系統(tǒng)默認(rèn)數(shù)據(jù)庫(kù)information_schema是一個(gè)信息數(shù)據(jù)庫(kù),它保存著關(guān)于MySQL服務(wù)器所維護(hù)的所有其他數(shù)據(jù)庫(kù)的信息。information_schema數(shù)據(jù)庫(kù)提供了訪問(wèn)數(shù)據(jù)庫(kù)元數(shù)據(jù)的方式。元數(shù)據(jù)是關(guān)于數(shù)據(jù)的數(shù)據(jù),如數(shù)據(jù)庫(kù)名或表名、列的數(shù)據(jù)類型、訪問(wèn)權(quán)限等。mysql數(shù)據(jù)庫(kù)主要負(fù)責(zé)存儲(chǔ)數(shù)據(jù)庫(kù)的用戶、權(quán)限設(shè)置、關(guān)鍵字等MySQL自己需要使用的控制和管理信息。2.1.1了解系統(tǒng)默認(rèn)數(shù)據(jù)庫(kù)performance_schema數(shù)據(jù)庫(kù)主要用于收集數(shù)據(jù)庫(kù)服務(wù)器性能參數(shù)信息。sys數(shù)據(jù)庫(kù)所有的數(shù)據(jù)源來(lái)自performance_schema數(shù)據(jù)庫(kù),其目標(biāo)是把performance_schema的復(fù)雜度降低,讓數(shù)據(jù)庫(kù)管理員能更好地閱讀這個(gè)數(shù)據(jù)庫(kù)里的內(nèi)容,以便更快了解數(shù)據(jù)庫(kù)的運(yùn)行情況。

2.1.1了解系統(tǒng)默認(rèn)數(shù)據(jù)庫(kù)sakila數(shù)據(jù)庫(kù)是一個(gè)樣例數(shù)據(jù)庫(kù),包含23張數(shù)據(jù)表,是MySQL官方提供的學(xué)習(xí)MySQL的素材。world數(shù)據(jù)庫(kù)也是一個(gè)樣例數(shù)據(jù)庫(kù),包含3張數(shù)據(jù)表。2.1.2創(chuàng)建用戶數(shù)據(jù)庫(kù)如果用戶需要?jiǎng)?chuàng)建新的數(shù)據(jù)庫(kù)以保存自己的應(yīng)用數(shù)據(jù),可使用以下格式的命令:

CREATEDATABASE數(shù)據(jù)庫(kù)名;其中,數(shù)據(jù)庫(kù)名是要?jiǎng)?chuàng)建的用戶數(shù)據(jù)庫(kù)的名稱,注意該名稱不能與系統(tǒng)中已經(jīng)存在的數(shù)據(jù)庫(kù)同名。2.1.2創(chuàng)建用戶數(shù)據(jù)庫(kù)【例2-1】創(chuàng)建一個(gè)用于學(xué)生管理的數(shù)據(jù)庫(kù)student。操作命令如下,執(zhí)行結(jié)果如圖1所示:

CREATEDATABASEstudent;

圖1創(chuàng)建student數(shù)據(jù)庫(kù)2.1.2創(chuàng)建用戶數(shù)據(jù)庫(kù)當(dāng)我們使用CREATEDATABASE語(yǔ)句創(chuàng)建一個(gè)用戶數(shù)據(jù)庫(kù)時(shí),在文件系統(tǒng)中,MySQL為每個(gè)數(shù)據(jù)庫(kù)在其對(duì)應(yīng)的數(shù)據(jù)目錄下創(chuàng)建一個(gè)與數(shù)據(jù)庫(kù)同名的子目錄,用于存儲(chǔ)該數(shù)據(jù)庫(kù)的相關(guān)數(shù)據(jù)。如果不作修改,MySQL默認(rèn)的數(shù)據(jù)目錄位于C:\ProgramData\MySQL\MySQLServer8.0\Data下。2.1.2創(chuàng)建用戶數(shù)據(jù)庫(kù)因MySQL系統(tǒng)中存在多個(gè)數(shù)據(jù)庫(kù),用戶數(shù)據(jù)庫(kù)創(chuàng)建完成后,如果要使用該數(shù)據(jù)庫(kù),需執(zhí)行以下格式的命令選擇它:

USE數(shù)據(jù)庫(kù)名;2.1.2創(chuàng)建用戶數(shù)據(jù)庫(kù)【例2-2】選擇例2-1中創(chuàng)建的student數(shù)據(jù)庫(kù)。操作命令如下,執(zhí)行結(jié)果如圖2所示:

USEstudent;圖2選擇student數(shù)據(jù)庫(kù)2.1.2創(chuàng)建用戶數(shù)據(jù)庫(kù)如果用戶數(shù)據(jù)庫(kù)已完成使命不需要再保留,可以將其從系統(tǒng)中刪除。刪除數(shù)據(jù)庫(kù)后,其中保存的數(shù)據(jù)將一并刪除,為其分配的磁盤存儲(chǔ)空間將被回收。刪除用戶數(shù)據(jù)庫(kù)使用以下格式的命令:

DROPDATABASE數(shù)據(jù)庫(kù)名;2.1.2創(chuàng)建用戶數(shù)據(jù)庫(kù)【例2-3】刪除例2-1中創(chuàng)建的student數(shù)據(jù)庫(kù)。操作命令如下,執(zhí)行結(jié)果如圖3所示:

DROPDATABASEstudent;圖3刪除student數(shù)據(jù)庫(kù)謝謝!數(shù)據(jù)庫(kù)原理與應(yīng)用快速入門2.1創(chuàng)建數(shù)據(jù)庫(kù)2.2創(chuàng)建數(shù)據(jù)表2.3關(guān)于數(shù)據(jù)庫(kù)引擎第2章

創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)表2.2.12.2.2了解字段的數(shù)據(jù)類型2.2.3創(chuàng)建表操作2.2.4查看和修改表2.2.5刪除數(shù)據(jù)表2.2.6向表添加數(shù)據(jù)2.2.7注意數(shù)據(jù)的規(guī)范了解表的結(jié)構(gòu)和特點(diǎn)2.2創(chuàng)建數(shù)據(jù)表2.2.1了解表的結(jié)構(gòu)和特點(diǎn)目前,主流的數(shù)據(jù)庫(kù)管理系統(tǒng)采用二維表格的形式來(lái)保存數(shù)據(jù)。表2.1students表stuIdstuNameclasssexbirthtelNoEmailcomment210101001李勇軟件技術(shù)男2003-9-1028885692Liyong@21插班生210101002劉晨軟件技術(shù)女2003-8-622285568Liuchen@126.com

210102003王曉敏計(jì)算機(jī)應(yīng)用女2003-5-3022324912Wangxm@21

220102001張麗麗電子商務(wù)女2004-1-225661120Zhangli@126.com

220102002陳耀輝電子商務(wù)男2004-7-1622883322Chenhui@21轉(zhuǎn)校生2.2.1了解表的結(jié)構(gòu)和特點(diǎn)這樣的二維表格在數(shù)據(jù)庫(kù)中又被稱為“關(guān)系”。其中,表中的一行又稱為關(guān)系中的一條記錄,表中的一列又稱為關(guān)系中的一個(gè)字段。在數(shù)據(jù)庫(kù)中,表2.2所示的術(shù)語(yǔ)是等價(jià)的。以關(guān)系的形式存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)庫(kù)系統(tǒng)稱為關(guān)系數(shù)據(jù)庫(kù)。表2.2等價(jià)的術(shù)語(yǔ)表(Table)行(Row)列(Column)關(guān)系(Relation)記錄(Record)字段(Field)2.2.1了解表的結(jié)構(gòu)和特點(diǎn)在一個(gè)關(guān)系中,字段的名稱不能重復(fù),字段排列的先后順序無(wú)關(guān)緊要,記錄排列的先后順序也無(wú)關(guān)緊要,但任意兩條記錄不能重復(fù)。2.2.1了解表的結(jié)構(gòu)和特點(diǎn)生活中我們常見(jiàn)如表2.3所示的表格結(jié)構(gòu),需要注意,這樣的表格不被數(shù)據(jù)庫(kù)所接受,不是關(guān)系。這是因?yàn)?,關(guān)系要求每個(gè)單元格只能存放單個(gè)值,而在表2.3中,一個(gè)單元格“family”被分割成多個(gè)子單元,用于存放多個(gè)值。表2.3family表stuIdstuNamesexfamilyfathermotherbrothersister210101001李勇男李國(guó)平王曉麗李偉李珊210101002劉晨女劉昭林李玉萍

劉芳2.2.1了解表的結(jié)構(gòu)和特點(diǎn)在關(guān)系中,同一字段下的數(shù)據(jù)要求其數(shù)據(jù)類型一致,所表示的語(yǔ)義也要一致。如表2.1所示的關(guān)系“students”中,字段“sex”下的數(shù)據(jù),其類型是字符串,所表示的語(yǔ)義是學(xué)生的性別,字段“birth”下的數(shù)據(jù),其類型是日期,表示的語(yǔ)義是學(xué)生的生日,不能是其他的含義。2.2.1了解表的結(jié)構(gòu)和特點(diǎn)為了表述的方便,我們用表名(字段名1,字段名2,……)的形式來(lái)描述表的結(jié)構(gòu)。表2.1所示的students表可以描述為:

students(stuId,stuName,class,sex,birth,telNo,Email,comment)2.2.2了解字段的數(shù)據(jù)類型本節(jié)介紹MySQL數(shù)據(jù)庫(kù)中常用的數(shù)據(jù)類型。2.2.2了解字段的數(shù)據(jù)類型1.整數(shù)類型整數(shù)類型所表示的數(shù)據(jù)是整數(shù),根據(jù)占用字節(jié)長(zhǎng)度的不同,MySQL整數(shù)類型包含tinyint、smallint、mediumint、int/integer、bigint幾種。2.2.2了解字段的數(shù)據(jù)類型1.整數(shù)類型表2.4整數(shù)類型詳細(xì)信息類型存儲(chǔ)字節(jié)數(shù)有符號(hào)數(shù)取值范圍無(wú)符號(hào)數(shù)取值范圍tinyint1-128~1270~255smallint2-32768~327670~65535mediumint3-8388608~83886070~16777215int/integer4-21474483648~21474836470~4294967295bigint8-9223372036854775808~92233720368547758070~184467440737095516152.2.2了解字段的數(shù)據(jù)類型1.整數(shù)類型tinyint型整數(shù)數(shù)據(jù)的默認(rèn)顯示寬度為4位數(shù)字,smallint型整數(shù)數(shù)據(jù)的默認(rèn)顯示寬度為6位數(shù)字,mediumint型整數(shù)數(shù)據(jù)的默認(rèn)顯示寬度為9位數(shù)字,int和integer類型字節(jié)數(shù)和取值范圍相同,使用上是一樣的,數(shù)據(jù)默認(rèn)顯示寬度為11位數(shù)字,bigint型整數(shù)數(shù)據(jù)的默認(rèn)顯示寬度為20位數(shù)字。顯示寬度與數(shù)據(jù)類型的取值范圍無(wú)關(guān),只是指定MySQL最大可以顯示的數(shù)字個(gè)數(shù),數(shù)字個(gè)數(shù)小于顯示寬度時(shí)以空格補(bǔ)齊,大于顯示寬度時(shí),只要沒(méi)有超過(guò)該數(shù)據(jù)類型的取值范圍,依然能夠顯示出來(lái)。2.2.2了解字段的數(shù)據(jù)類型1.整數(shù)類型在實(shí)際應(yīng)用中,如果關(guān)系的某一字段保存的數(shù)據(jù)是整數(shù),讀者應(yīng)該預(yù)先估計(jì)該列數(shù)據(jù)可能的取值范圍,將該范圍與以上整型類型的取值范圍進(jìn)行比較,選擇范圍最接近又沒(méi)有超出的那一種類型,這樣做可以節(jié)省數(shù)據(jù)的存儲(chǔ)空間。2.2.2了解字段的數(shù)據(jù)類型2.小數(shù)類型如果數(shù)據(jù)是小數(shù),則需要用小數(shù)類型來(lái)表示。MySQL中的小數(shù)類型包含浮點(diǎn)數(shù)和定點(diǎn)數(shù)兩類。2.2.2了解字段的數(shù)據(jù)類型2.小數(shù)類型浮點(diǎn)數(shù)類型包含float和double兩種,其中,float是單精度浮點(diǎn)數(shù),double是雙精度浮點(diǎn)數(shù)。表2.5浮點(diǎn)數(shù)類型詳細(xì)信息類型存儲(chǔ)字節(jié)數(shù)有符號(hào)數(shù)取值范圍無(wú)符號(hào)數(shù)取值范圍float4-3.402823466E+38~-1.175494351E-380和1.175494351E-38~3.402823466E+38double8-1.7976931348623157E+308~-2.2250738585072014E-3080和2.2250738585072014E-308~1.7976931348623157E+3082.2.2了解字段的數(shù)據(jù)類型2.小數(shù)類型定點(diǎn)數(shù)類型為decimal型,其取值范圍與浮點(diǎn)數(shù)double型相同。但decimal型在使用時(shí),需指定其精度和小數(shù)數(shù)位,使用格式為:

decimal(p,d)其中,參數(shù)p代表精度,即數(shù)據(jù)的最大總位數(shù),d代表數(shù)據(jù)的最大小數(shù)位數(shù)。p的取值范圍為1~65,d的取值范圍為0~30并且d<=p。p的默認(rèn)值為10,d的默認(rèn)值為0。decimal型數(shù)據(jù)存儲(chǔ)的字節(jié)數(shù)為p+2。2.2.2了解字段的數(shù)據(jù)類型2.小數(shù)類型在MySQL中,定點(diǎn)數(shù)以字符串形式存儲(chǔ),提供了更高的精度,在對(duì)數(shù)據(jù)精度要求比較高的情況下(如表示貨幣、科學(xué)數(shù)據(jù)時(shí)),優(yōu)先使用decimal類型。2.2.2了解字段的數(shù)據(jù)類型3.日期和時(shí)間類型如果需要在數(shù)據(jù)庫(kù)中存儲(chǔ)日期和時(shí)間數(shù)據(jù),則需要使用日期和時(shí)間類型。MySQL中日期和時(shí)間類型包括year、date、time、datetime、timestamp幾種。表2.6日期和時(shí)間類型詳細(xì)信息類型存儲(chǔ)字節(jié)數(shù)取值范圍使用格式y(tǒng)ear11901~2155YYYYdate31000-01-01~9999-12-31YYYY-MM-DDtime3-838:59:59~838:59:59HH:MM:SSdatetime81000-01-0100:00:00~9999-12-3123:59:59YYYY-MM-DDHH:MM:SStimestamp41970-01-0100:00:01UTC~2038-01-1903:14:07UTCYYYY-MM-DDHH:MM:SS2.2.2了解字段的數(shù)據(jù)類型3.日期和時(shí)間類型在實(shí)際使用中,有一些需要用日期和時(shí)間來(lái)表示的數(shù)據(jù),如人的出生日期、網(wǎng)上購(gòu)物的下單日期、圖書(shū)館借書(shū)的借閱日期等,讀者可根據(jù)需要表示的日期和時(shí)間的范圍和格式,合理選擇以上類型。如果插入的數(shù)據(jù),其值超過(guò)了上表所示的取值范圍,系統(tǒng)會(huì)報(bào)錯(cuò)并將零值插入數(shù)據(jù)庫(kù)。2.2.2了解字段的數(shù)據(jù)類型3.日期和時(shí)間類型這里對(duì)time類型的取值范圍做一些說(shuō)明。一天只有24個(gè)小時(shí),而time類型取值范圍為-838:59:59~838:59:59,小時(shí)部分為何如此之大呢?這是因?yàn)?,time類型不僅可以表示一天內(nèi)的時(shí)間,還可以表示某個(gè)事件過(guò)去的時(shí)間,或者兩個(gè)事件之間的時(shí)間間隔,這樣超過(guò)24小時(shí)就很正常了。timestamp類型取值范圍中的UTC代表世界標(biāo)準(zhǔn)時(shí)間,該類型數(shù)據(jù)在存儲(chǔ)時(shí)是以世界標(biāo)準(zhǔn)時(shí)間格式存儲(chǔ)的。2.2.2了解字段的數(shù)據(jù)類型4.字符串類型字符串類型是數(shù)據(jù)庫(kù)中最常用的數(shù)據(jù)類型,用來(lái)存儲(chǔ)各種文字、數(shù)字符號(hào)、特殊符號(hào),也可以存儲(chǔ)圖片和聲音的二進(jìn)制數(shù)據(jù)。MySQL中字符串類型包括char、varchar、tinytext、text、mediumtext、longtext、enum、set類型等。字符串類型的數(shù)據(jù)在使用時(shí)需要加上一對(duì)單引號(hào)括起來(lái)。2.2.2了解字段的數(shù)據(jù)類型4.字符串類型字符串類型是數(shù)據(jù)庫(kù)中最常用的數(shù)據(jù)類型,用來(lái)存儲(chǔ)各種文字、數(shù)字符號(hào)、特殊符號(hào),也可以存儲(chǔ)圖片和聲音的二進(jìn)制數(shù)據(jù)。MySQL中字符串類型包括char、varchar、tinytext、text、mediumtext、longtext、enum、set類型等。字符串類型的數(shù)據(jù)在使用時(shí)需要加上一對(duì)單引號(hào)括起來(lái)。2.2.2了解字段的數(shù)據(jù)類型4.字符串類型表2.7字符串類型詳細(xì)信息類型說(shuō)明取值范圍char(n)表示長(zhǎng)度為n個(gè)字節(jié)的非二進(jìn)制固定長(zhǎng)度字符串。n的值在1~255之間。varchar(n)表示長(zhǎng)度為n個(gè)字節(jié)的非二進(jìn)制可變長(zhǎng)度字符串。n的值在1~65535之間。tinytext表示非常短的文本。0~255字節(jié)text表示文本。0~65535字節(jié)mediumtext表示中等長(zhǎng)度的文本。0~16777215字節(jié)longtext表示長(zhǎng)文本。0~4294967295字節(jié)enum表示枚舉類型。其取值列表最多可以有65535個(gè)值。set表示字符串,其值可以取列表中的一個(gè)或多個(gè)。其值最多能有64個(gè)元素構(gòu)成的組合。2.2.2了解字段的數(shù)據(jù)類型4.字符串類型char(n)是固定長(zhǎng)度,長(zhǎng)度為n的字符串,如果存儲(chǔ)的字符串長(zhǎng)度小于n,其后會(huì)以空格補(bǔ)充,直至長(zhǎng)度達(dá)到n。varchar(n)是可變長(zhǎng)度字符串,系統(tǒng)會(huì)按字符串的實(shí)際長(zhǎng)度進(jìn)行存儲(chǔ),只要長(zhǎng)度沒(méi)有超過(guò)n。2.2.2了解字段的數(shù)據(jù)類型4.字符串類型tinytext、text、mediumtext、longtext類型屬于特殊的字符串類型,用于保存文章、評(píng)論、簡(jiǎn)歷、新聞等內(nèi)容,它們?cè)试S表示的字符串長(zhǎng)度依次增大,實(shí)際使用時(shí),讀者可根據(jù)需求進(jìn)行適當(dāng)選取。2.2.2了解字段的數(shù)據(jù)類型4.字符串類型enum類型表示枚舉類型,使用時(shí)要以列表的形式指定其取值范圍,格式如下:

字段名enum('值1','值2',...'值n')其中,字段名表示要定義的字段,值n表示列表中的第n個(gè)值,最多可以有65535個(gè)值。enum類型的字段在取值時(shí)只能從列表中選取一個(gè)值。列表中的每個(gè)值對(duì)應(yīng)一個(gè)編號(hào),分別是1,2,...n,系統(tǒng)在存儲(chǔ)enum類型字段下的數(shù)據(jù)時(shí),實(shí)際存儲(chǔ)的就是對(duì)應(yīng)的編號(hào)。enum類型字段下如果沒(méi)有填充數(shù)據(jù),系統(tǒng)將以默認(rèn)值填充。如果該字段不允許取空值(NULL),則默認(rèn)值為列表中的第一個(gè)值;如果該字段允許取空值(NULL),則默認(rèn)值為空值。2.2.2了解字段的數(shù)據(jù)類型4.字符串類型set類型字段的定義格式與enum類型相似,要以列表的形式指定其取值范圍,格式如下:字段名set('值1','值2',...'值n')其中,字段名表示要定義的字段,值n表示列表中的第n個(gè)值。與enum類型不同的是,字段在取值時(shí)可以從列表中選取一個(gè)或多個(gè)值,最多可以是64個(gè)值構(gòu)成的組合。取多個(gè)值時(shí),值之間用逗號(hào)分隔。2.2.2了解字段的數(shù)據(jù)類型5.二進(jìn)制類型二進(jìn)制類型用于存儲(chǔ)二進(jìn)制字符串。MySQL中二進(jìn)制類型包括bit,binary,varbinary,tinyblob,blob,mediumblob,longblob幾種。2.2.2了解字段的數(shù)據(jù)類型5.二進(jìn)制類型表2.8二進(jìn)制類型詳細(xì)信息類型說(shuō)明取值范圍bit(n)表示長(zhǎng)度為n個(gè)字節(jié)的二進(jìn)制位字段值。n的值在1~64之間,默認(rèn)值為1。binary(n)表示長(zhǎng)度為n個(gè)字節(jié)的二進(jìn)制固定長(zhǎng)度字符串。n的值在0~255之間。varbinary(n)表示長(zhǎng)度為n個(gè)字節(jié)的二進(jìn)制可變長(zhǎng)度字符串。n的值在1~65535之間。tinyblob表示非常小的blob。0~255Bblob表示小的blob。0~65535Bmediumblob表示中等大小的blob。0~16777215Blongblob表示非常大的blob。0~4294967295B2.2.2了解字段的數(shù)據(jù)類型5.二進(jìn)制類型bit類型是位字段類型。如果bit(n)存儲(chǔ)的值長(zhǎng)度小于n,值的左邊用0填充。如果以二進(jìn)制數(shù)保存十進(jìn)制數(shù)13,可以定義為bit(4),因?yàn)?3的二進(jìn)制數(shù)為1101,正好可以存下。2.2.2了解字段的數(shù)據(jù)類型5.二進(jìn)制類型binary和varbinary與char和varchar類型有點(diǎn)類似,不同的是binary和varbinary存儲(chǔ)的是二進(jìn)制的字符串,而非字符型字符串。也就是說(shuō),binary和varbinary沒(méi)有字符集的概念,對(duì)其排序和比較都是按照二進(jìn)制值進(jìn)行對(duì)比。tinyblob,blob,mediumblob,longblob類型主要用于以二進(jìn)制字符串形式存儲(chǔ)圖片、音頻等信息。它們?cè)试S表示的二進(jìn)制字符串長(zhǎng)度依次增大,實(shí)際使用時(shí),讀者可根據(jù)需求進(jìn)行適當(dāng)選取。2.2.2了解字段的數(shù)據(jù)類型了解了MySQL中數(shù)據(jù)類型,在實(shí)際使用中,應(yīng)根據(jù)需要表示的數(shù)據(jù)的情況,在創(chuàng)建表時(shí),要為表中的字段選擇合適的數(shù)據(jù)類型。確定字段數(shù)據(jù)類型的重要原則是:根據(jù)該字段將進(jìn)行怎樣的操作,以及數(shù)據(jù)的實(shí)質(zhì)意義。確定字段大小的重要原則是:根據(jù)該字段的數(shù)據(jù)最有可能出現(xiàn)的最大值來(lái)確定。2.2.2了解字段的數(shù)據(jù)類型【例2-4】分析表2.1students數(shù)據(jù)表的結(jié)構(gòu)和數(shù)據(jù),確定該表各字段的數(shù)據(jù)類型。從表2.1可知,students數(shù)據(jù)表包含8個(gè)字段,分別表示學(xué)生的學(xué)號(hào)、姓名、班級(jí)、性別、出生日期、聯(lián)系電話、Email和備注信息。根據(jù)數(shù)據(jù)的表現(xiàn)形式和長(zhǎng)度,確定字段的數(shù)據(jù)類型如表2.10所示。表2.10students表字段的數(shù)據(jù)類型字段名數(shù)據(jù)類型stuIdchar(9)stuNamevarchar(10)classvarchar(30)sexenumbirthdatetelNovarchar(15)Emailvarchar(50)commentvarchar(100)2.2.3創(chuàng)建表操作在關(guān)系數(shù)據(jù)庫(kù)中數(shù)據(jù)是保存在表里面的,因此,要將數(shù)據(jù)存入數(shù)據(jù)庫(kù),就應(yīng)該首先建立數(shù)據(jù)表。創(chuàng)建表之前,要使用“USE數(shù)據(jù)庫(kù)名”命令選擇數(shù)據(jù)庫(kù),指定將表保存在哪個(gè)數(shù)據(jù)庫(kù)中。2.2.3創(chuàng)建表操作創(chuàng)建表的語(yǔ)法格式如下:CREATETABLE表名(列名1數(shù)據(jù)類型[列級(jí)約束條件][默認(rèn)值],列名2數(shù)據(jù)類型[列級(jí)約束條件][默認(rèn)值],......[表級(jí)約束條件]);2.2.3創(chuàng)建表操作【例2-5】在數(shù)據(jù)庫(kù)student中創(chuàng)建數(shù)據(jù)表students,建表命令如下:2.2.4查看和修改表數(shù)據(jù)表創(chuàng)建完成后,可以通過(guò)DESCRIBE語(yǔ)句來(lái)查看表的結(jié)構(gòu),這對(duì)于用戶而言非常方便。因?yàn)閿?shù)據(jù)庫(kù)是一個(gè)多用戶系統(tǒng),并非所有數(shù)據(jù)表都是由當(dāng)前用戶創(chuàng)建的,要查看和使用其他用戶創(chuàng)建的表,就必須首先了解表的結(jié)構(gòu)。2.2.4查看和修改表DESCRIBE語(yǔ)句的語(yǔ)法格式如下:

DESCRIBE表名;也可寫(xiě)作:

DES表名;2.2.4查看和修改表【例2-6】使用DESCRIBE語(yǔ)句查看數(shù)據(jù)表students的結(jié)構(gòu)。2.2.4查看和修改表如果要調(diào)整已經(jīng)存在于數(shù)據(jù)庫(kù)中的表的結(jié)構(gòu),則需要使用修改表命令。修改表包括修改表名、修改字段名和數(shù)據(jù)類型、增加字段、刪除字段等。2.2.4查看和修改表1.修改表名修改表名的命令語(yǔ)法結(jié)構(gòu)如下:

ALTERTABLE舊表名RENAME[TO]新表名;其中,參數(shù)TO是可選的,寫(xiě)與不寫(xiě)不影響命令的執(zhí)行。修改表名時(shí)需注意,同一個(gè)數(shù)據(jù)庫(kù)中每個(gè)表的名稱應(yīng)該是唯一的,不能出現(xiàn)重名的情況。2.2.4查看和修改表【例2-7】將student數(shù)據(jù)庫(kù)中的sc數(shù)據(jù)表名稱修改為stu_cor。2.2.4查看和修改表2.修改字段名和數(shù)據(jù)類型修改字段名的命令語(yǔ)法結(jié)構(gòu)如下:ALTERTABLE表名CHANGE舊字段名新字段名新數(shù)據(jù)類型;其中,舊字段名和新字段名分別表示修改前后的字段名稱,新數(shù)據(jù)類型表示字段名修改后,該字段的數(shù)據(jù)類型。新數(shù)據(jù)類型可以和原來(lái)該字段的數(shù)據(jù)類型一樣,但此處不可以省略。2.2.4查看和修改表【例2-8】修改student數(shù)據(jù)庫(kù)中的數(shù)據(jù)表students,將字段birth名稱修改為birthday,數(shù)據(jù)類型保持不變。2.2.4查看和修改表如果不需要修改字段名,僅對(duì)字段的數(shù)據(jù)類型進(jìn)行修改,可使用如下命令:

ALTERTABLE表名MODIFY字段名數(shù)據(jù)類型;2.2.4查看和修改表【例2-9】修改student數(shù)據(jù)庫(kù)中的數(shù)據(jù)表students,將字段comment的數(shù)據(jù)類型修改為varchar(80)。2.2.4查看和修改表在對(duì)字段的數(shù)據(jù)類型進(jìn)行修改時(shí)需要注意,因不同類型和長(zhǎng)度的數(shù)據(jù)在數(shù)據(jù)庫(kù)中存儲(chǔ)的方式不同,如果表中已保存有數(shù)據(jù),修改字段的數(shù)據(jù)類型會(huì)對(duì)現(xiàn)有的數(shù)據(jù)存儲(chǔ)造成影響。應(yīng)盡量避免對(duì)已有數(shù)據(jù)的表進(jìn)行字段數(shù)據(jù)類型的修改。2.2.4查看和修改表3.增加字段如果需要在已經(jīng)存在的數(shù)據(jù)表中增加字段,可使用以下格式的命令:

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

[約束條件][FIRST|AFTER已存在的字段名]其中,新字段名表示要增加的字段名稱,其后的數(shù)據(jù)類型指定該字段的數(shù)據(jù)類型;約束條件是可選的,將在下一節(jié)進(jìn)行講解;FIRST表示新增加的字段位于表中的第一列,AFTER表示將新字段放在已存在的指定字段后面,這兩項(xiàng)也是可選的,如果不指定位置,新增加的字段將位于表的最后一列。2.2.4查看和修改表【例2-10】對(duì)student數(shù)據(jù)庫(kù)中的數(shù)據(jù)表students增加一個(gè)字段school,表示學(xué)生所在的學(xué)校,數(shù)據(jù)類型為varchar(40),該字段位于stuName列之后。2.2.4查看和修改表4.刪除字段刪除表中字段的命令語(yǔ)法格式如下:

ALTERTABLE表名DROP字段名;2.2.4查看和修改表【例2-11】將例2-10中增加的字段school從數(shù)據(jù)表students中刪除。2.2.5刪除數(shù)據(jù)表如果數(shù)據(jù)表不需要再保存在數(shù)據(jù)庫(kù)中,可以將它刪除。刪除表時(shí),表結(jié)構(gòu)的定義和表中的數(shù)據(jù)將一并刪除。刪除數(shù)據(jù)表的命令語(yǔ)法結(jié)構(gòu)如下:

DROPTABLE表名;2.2.5刪除數(shù)據(jù)表【例2-12】將student數(shù)據(jù)庫(kù)中的students數(shù)據(jù)表刪除。2.2.6向表中添加數(shù)據(jù)為方便后續(xù)操作,我們首先使用MySQL圖形化工具Navicat向數(shù)據(jù)庫(kù)中添加部分?jǐn)?shù)據(jù)。2.2.6向表中添加數(shù)據(jù)【例2-13】使用Navicat連接MySQL,向student數(shù)據(jù)庫(kù)中的三張數(shù)據(jù)表students、courses、sc分別添加表2.1、2.11、2.12中的數(shù)據(jù)。2.2.6向表中添加數(shù)據(jù)【例2-13】使用Navicat連接MySQL,向student數(shù)據(jù)庫(kù)中的三張數(shù)據(jù)表students、courses、sc分別添加表2.1、2.11、2.12中的數(shù)據(jù)。2.2.7注意數(shù)據(jù)的規(guī)范當(dāng)我們向表中添加數(shù)據(jù)時(shí),應(yīng)注意數(shù)據(jù)的規(guī)范性。規(guī)范的數(shù)據(jù)意味著數(shù)據(jù)符合字段設(shè)計(jì)的原意。如果數(shù)據(jù)不規(guī)范,會(huì)影響查找、統(tǒng)計(jì)的結(jié)果,甚至造成很嚴(yán)重的后果。2.2.7注意數(shù)據(jù)的規(guī)范1.空值空值是一個(gè)微妙但又十分重要的問(wèn)題??罩?,只是一個(gè)位置的占用,從數(shù)據(jù)庫(kù)內(nèi)部來(lái)說(shuō),空值是歧義的,所以空值和任意數(shù)據(jù)的算術(shù)運(yùn)算,結(jié)果都是空值。這一點(diǎn),在對(duì)表進(jìn)行查詢統(tǒng)計(jì)時(shí)一定要小心。在設(shè)計(jì)表時(shí),應(yīng)盡量不允許字段值為空。2.2.7注意數(shù)據(jù)的規(guī)范2.空格及其他空白字符空格不是空值,空格相當(dāng)于一個(gè)英文字母。另外,在ASCII碼中,還有其他不可見(jiàn)的空白字符,這些空白字符也都相當(dāng)于一個(gè)英文字母,這和空值是不一樣的。2.2.7注意數(shù)據(jù)的規(guī)范3.英文大小寫(xiě)、全角半角對(duì)于英文和符號(hào),應(yīng)規(guī)定大小寫(xiě)規(guī)則,不應(yīng)該隨意地大寫(xiě)或小寫(xiě)。另外,還要注意全角和半角的問(wèn)題,不要一會(huì)兒用全角,一會(huì)兒用半角,建議如無(wú)特別需求,只用半角。在后續(xù)學(xué)習(xí)結(jié)構(gòu)化查詢語(yǔ)言SQL時(shí)讀者會(huì)發(fā)現(xiàn),SQL只接受半角的符號(hào),如果輸入的是全角,則語(yǔ)句執(zhí)行時(shí)會(huì)報(bào)錯(cuò)。謝謝!數(shù)據(jù)庫(kù)原理與應(yīng)用快速入門2.1創(chuàng)建數(shù)據(jù)庫(kù)2.2創(chuàng)建數(shù)據(jù)表2.3關(guān)于數(shù)據(jù)庫(kù)引擎第2章

創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)表2.3.1查看MySQL支持的存儲(chǔ)引擎2.3.2了解常用的存儲(chǔ)引擎2.3關(guān)于數(shù)據(jù)庫(kù)存儲(chǔ)引擎2.3.3選擇合適的存儲(chǔ)引擎2.3關(guān)于數(shù)據(jù)庫(kù)存儲(chǔ)引擎MySQL引入了存儲(chǔ)引擎的概念,存儲(chǔ)引擎是數(shù)據(jù)庫(kù)底層的軟件組件。數(shù)據(jù)庫(kù)管理系統(tǒng)使用存儲(chǔ)引擎進(jìn)行創(chuàng)建、查詢、更新和刪除數(shù)據(jù)操作。MySQL支持多個(gè)不同的存儲(chǔ)引擎,不同的存儲(chǔ)引擎提供不同的數(shù)據(jù)存儲(chǔ)機(jī)制、索引技巧、鎖定水平等功能。存儲(chǔ)引擎是MySQL的核心。用戶可以根據(jù)實(shí)際應(yīng)用需要來(lái)選擇使用何種存儲(chǔ)引擎,從而提高了MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)的使用效率和靈活性。2.3關(guān)于數(shù)據(jù)庫(kù)存儲(chǔ)引擎2.3.1查看MySQL支持的存儲(chǔ)引擎MySQL通過(guò)SHOWENGINES命令來(lái)查看系統(tǒng)支持的存儲(chǔ)引擎。2.3.1查看MySQL支持的存儲(chǔ)引擎MySQL中創(chuàng)建數(shù)據(jù)表時(shí),如果沒(méi)有指定存儲(chǔ)引擎,將使用系統(tǒng)默認(rèn)的存儲(chǔ)引擎來(lái)存儲(chǔ)數(shù)據(jù)表。

溫馨提示

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