版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、任務(wù)1 認(rèn)識MySQL 數(shù)據(jù)類型項(xiàng)目3 MySQL數(shù)據(jù)表的結(jié)構(gòu)任務(wù)2 學(xué)會創(chuàng)建數(shù)據(jù)表任務(wù)3 如何修改表結(jié)構(gòu)任務(wù)4 了解和認(rèn)識索引數(shù)據(jù)庫軟件的主要作用是用來存儲、管理數(shù)據(jù),作為數(shù)據(jù)庫最重要的組成部分,數(shù)據(jù)表的設(shè)計與實(shí)現(xiàn)將直接影響數(shù)據(jù)庫的運(yùn)行效率。認(rèn)識理解MySQL數(shù)據(jù)表的結(jié)構(gòu)不僅是了解掌握數(shù)據(jù)庫查詢、更新操作的基礎(chǔ),更有助于建立合理規(guī)范的數(shù)據(jù)表,方便日后的修改和索引使用。項(xiàng)目3 MySQL數(shù)據(jù)表的結(jié)構(gòu) 情境描述例3-1運(yùn)行結(jié)果中的第二列是Type,也就是第一列屬性名稱的數(shù)據(jù)類型,它表明了第一列中的屬性采取何種形式在數(shù)據(jù)庫中存儲。在MySQL表的設(shè)計中,確定表中每列的數(shù)據(jù)類型是設(shè)計表的重要步驟。列
2、的數(shù)據(jù)類型就是定義該列所能存放的數(shù)據(jù)的值的類型。在books表中為了存放書名定義bookname字段的數(shù)據(jù)類型為字符型;存放版本號的version字段,則定義其數(shù)據(jù)類型為日期時間型。任務(wù)1 認(rèn)識MySQL 數(shù)據(jù)類型MySQL數(shù)據(jù)庫中的常量、變量和參數(shù)都有數(shù)據(jù)類型,它用來指定一定的存儲格式、約束和有效范圍。MySQL數(shù)據(jù)庫也提供了多種數(shù)據(jù)類型,主要包括數(shù)值型(涵蓋整數(shù)型、小數(shù)型、位型)、字符串類型、日期和時間類型,不同的MySQL版本支持的數(shù)據(jù)類型可能會稍有不同。MySQL支持的數(shù)據(jù)類型子任務(wù)1.1 MySQL支持的整數(shù)類型子任務(wù)1.1 認(rèn)識MySQL數(shù)據(jù)表的整數(shù)類型對于整數(shù)類型,MySQL數(shù)據(jù)
3、庫支持類型名稱后面的小括號內(nèi)指定顯示寬度,如例3-2中的int(5)表示當(dāng)數(shù)值寬度小于5位的時候在數(shù)字前面填滿寬度如果不顯示指定寬度則默認(rèn)為 int(11),如例3-2中數(shù)據(jù)類型設(shè)置為int的id1,在數(shù)據(jù)表結(jié)構(gòu)的Type欄中顯示為int(11)向數(shù)據(jù)表中添加新的內(nèi)容子任務(wù)1.1 認(rèn)識MySQL數(shù)據(jù)表的整數(shù)類型從例3-4中我們可以看到,2147483647是有符號int類型的最大值。因此向int類型的id1和int(5)類型的id2插入2147483647,都能夠在數(shù)據(jù)表中成功插入但是,由于MySQL數(shù)據(jù)表的int整數(shù)類型默認(rèn)為signed(有符號),如果插入數(shù)據(jù)大于2147483647,那么
4、不管是id1還是id2都會出錯。子任務(wù)1.1 認(rèn)識MySQL數(shù)據(jù)表的整數(shù)類型子任務(wù)1.1 認(rèn)識MySQL數(shù)據(jù)表的整數(shù)類型 無符號整型創(chuàng)建包含無符號整型字段的表例3-7中顯示,由于有符號int類型的最小值為-2147483648,所以插入成功,但是無符號int的最小值是0,所以無法向無符號int類型的id2中插入負(fù)數(shù)。子任務(wù)1.1 認(rèn)識MySQL數(shù)據(jù)表的整數(shù)類型 無符號整型在例3-2至例3-7中,注意使用desc查看數(shù)據(jù)表結(jié)構(gòu)時,會出現(xiàn)int(m)的形式。在MySQL數(shù)據(jù)表的數(shù)據(jù)類型中,int(m)用于表示數(shù)值的顯示寬度,例如對于id2的int(5)整數(shù)類型,當(dāng)數(shù)值寬度小于5位的時候在數(shù)字前面填
5、滿寬度,一般配合zerofill使用。zerofill就是以0填充字段中數(shù)字位數(shù)的意思,在數(shù)字位數(shù)不夠的空間用字符0填滿;超出了數(shù)據(jù)寬度,在不超出數(shù)據(jù)范圍的前提下,正常顯示。子任務(wù)1.1 認(rèn)識MySQL數(shù)據(jù)表的整數(shù)類型 字符填充從例3-9中可知,zerofill的填充在對齊上與普通顯示有所區(qū)別;請注意雖然t1表中的有符號int是int(11),但其實(shí)在MySQL-5.7中,int的zerofill寬度實(shí)際還是為10。另外,id2的類型是int(5),但在例3-9結(jié)果中id2字段的顯示寬度與id1的int顯示寬度相同,這是因?yàn)楸M管id2的類型是int(5),但我們在例3-9中修改zerofill
6、參數(shù)時,所用的代碼是alter table t1 modify id2 int zerofill;正是這句代碼中的int zerofill,使id2字段被修改為了帶zerofill參數(shù)的有符號int子任務(wù)1.1 認(rèn)識MySQL數(shù)據(jù)表的整數(shù)類型 字符填充如果想要id2字段數(shù)據(jù)呈現(xiàn)int(5)的zerofill效果,必須修改代碼alter table t1 modify id2 int(5) zerofill。子任務(wù)1.1 認(rèn)識MySQL數(shù)據(jù)表的整數(shù)類型 字符填充MySQL支持的小數(shù)類型包括浮點(diǎn)數(shù)、定點(diǎn)數(shù)等類型,不同小數(shù)類型的名稱和占用字節(jié)、值的范圍具體如表3-2所示子任務(wù)1.2 認(rèn)識MySQL數(shù)
7、據(jù)表的浮點(diǎn)數(shù)類型【例3-11】創(chuàng)建數(shù)據(jù)表t2,表中含id1、id2、id3共3個字段,字段類型分別為float,double和decimal,參數(shù)表示一共顯示5位,小數(shù)部分占2位。子任務(wù)1.2 認(rèn)識MySQL數(shù)據(jù)表的浮點(diǎn)數(shù)類型子任務(wù)1.2 認(rèn)識MySQL數(shù)據(jù)表的浮點(diǎn)數(shù)類型例3-13中,一條記錄的3個字段數(shù)值均能成功插入數(shù)據(jù)庫,沒有warning提示,但是id1和id2由于標(biāo)度的限制(創(chuàng)建表時設(shè)置數(shù)據(jù)類型的小數(shù)部分占2位),舍去了最后一位,都顯示成了1.23。子任務(wù)1.2 認(rèn)識MySQL數(shù)據(jù)表的浮點(diǎn)數(shù)類型例3-14中,進(jìn)行插入記錄操作后會發(fā)現(xiàn)最后一個小數(shù)位4都被截斷了,和之前只向id1和id2插
8、入1.234相比,出現(xiàn)了一個警告(warning)。子任務(wù)1.2 認(rèn)識MySQL數(shù)據(jù)表的浮點(diǎn)數(shù)類型在例3-15中,向數(shù)據(jù)表t2添加的三個字段都為1.235的記錄時,同樣也出現(xiàn)了一個警告(warning)。雖然每個字段的值仍然被截斷,但是由于四舍五入原則,表中顯示的數(shù)據(jù)是1.24。子任務(wù)1.2 認(rèn)識MySQL數(shù)據(jù)表的浮點(diǎn)數(shù)類型【例3-16】創(chuàng)建數(shù)據(jù)表t2_2,三個字段id1、id2、id3小數(shù)類型和t2相同,但是不設(shè)標(biāo)度。 此時向3個字段均插入1.234??梢园l(fā)現(xiàn),此時數(shù)據(jù)表t2_2中的 id1和id2沒有像表t2中被截斷,但是,id3僅能顯示整數(shù)部分。子任務(wù)1.2 認(rèn)識MySQL數(shù)據(jù)表的浮點(diǎn)數(shù)
9、類型進(jìn)一步理解同為小數(shù)類型的float和double的區(qū)別,我們向表t2_2 中插入超長小數(shù),此時還是只有id3字段 的decimal類型的截斷warning,但盡管id1字段 沒有截斷warning,查詢時卻出現(xiàn)了四舍五入的截斷子任務(wù)1.2 認(rèn)識MySQL數(shù)據(jù)表的浮點(diǎn)數(shù)類型【例3-18】在例3-17的基礎(chǔ)上,向t2_2表中插入超長小數(shù),觀察是否存在數(shù)據(jù)截斷。注意警告信息子任務(wù)1.2 認(rèn)識MySQL數(shù)據(jù)表的浮點(diǎn)數(shù)類型1.在decimal類型的字段中,如果不指定decimal 精度時,默認(rèn)的整數(shù)位為10,默認(rèn)的小數(shù)位為0。此時在這個字段中插入任何小數(shù),都將進(jìn)行截斷操作,只保留整數(shù)部分,而且對比例
10、3-17、3-18插入的數(shù)據(jù)可知在截斷時也是遵循四舍五入的規(guī)則進(jìn)行;2. float類型和double類型在不指定精度時,默認(rèn)會按照實(shí)際的精度(由實(shí)際的硬件和操作系統(tǒng)決定)來顯示。子任務(wù)1.2 認(rèn)識MySQL數(shù)據(jù)表的浮點(diǎn)數(shù)類型MySQL字符串類型的名稱、大小和用途如下表所示子任務(wù)1.3 認(rèn)識MySQL數(shù)據(jù)表的字符串類型二者的主要區(qū)別在于存儲方式的不同:CHAR類型的長度固定為創(chuàng)建表時聲明的長度,長度可以為從0255 的任何值;而VARCHAR類型中的值為可變長字符串,長度可以指定為065535之間的任何值。在檢索的時候,CHAR類型刪除了尾部的空格,而VARCHAR類型保留這些空格。在存儲或檢
11、索過程中,CHAR和VARCHAR均不進(jìn)行大小寫轉(zhuǎn)換。子任務(wù)1.3 認(rèn)識MySQL數(shù)據(jù)表的字符串類型 CHAR和VARCHAR類型【例3-19】創(chuàng)建數(shù)據(jù)表t3,數(shù)據(jù)表的兩個字段v和c分別是varchar和char類型。像兩個字段同時插入ab (注意ab后面有兩個空格)。從根據(jù)對表t3的查詢結(jié)果計算長度可知,char型數(shù)據(jù)的c字段數(shù)據(jù)會去掉數(shù)據(jù)后端的空格。子任務(wù)1.3 認(rèn)識MySQL數(shù)據(jù)表的字符串類型例3-20中,concat()是一個合并字符串的函數(shù),會分別將v字段、c字段中的值和字符+進(jìn)行合并,通過對比合并前后的同一記錄的兩個字段值的變化,可以發(fā)現(xiàn)char類型字段值后端的空格確實(shí)是去掉了(因
12、為在對該字段值進(jìn)行合并字符串操作時,新添加的字符串與原有值之間是不存在空格的)子任務(wù)1.3 認(rèn)識MySQL數(shù)據(jù)表的字符串類型CHAR類型的字段在進(jìn)行數(shù)據(jù)存儲時,會對字段內(nèi)容的最后結(jié)尾部分進(jìn)行判斷,如果結(jié)尾部分全部為空格,則將這些空格全部截去,只保留非空格字符部分;如果結(jié)尾部分包含其他非空格字符,則截去空格的時候,只截取最后一個非空格字符之后的空格,不截取其之前的空格。子任務(wù)1.3 認(rèn)識MySQL數(shù)據(jù)表的字符串類型MySQL數(shù)據(jù)庫系統(tǒng)中有多種數(shù)據(jù)類型,可以用于日期和時間的表示MySQL日期類型中使用最頻繁的是DATE、TIME和DATETIME三種類型子任務(wù)1.4 認(rèn)識MySQL數(shù)據(jù)庫中的日期類
13、型【例3-22】創(chuàng)建數(shù)據(jù)表t4,3個字段d、t、dt分別是date、time、datetime類型。并查看t4的數(shù)據(jù)表結(jié)構(gòu)。子任務(wù)1.4 認(rèn)識MySQL數(shù)據(jù)庫中的日期類型在MySQL數(shù)據(jù)庫中有一個函數(shù)now();該函數(shù)的功能就是獲取當(dāng)前系統(tǒng)的準(zhǔn)確時間【例3-23】在例3-22的基礎(chǔ)上,使用now()函數(shù)向t4表中3個不同類型的字段同時插入當(dāng)前時間子任務(wù)1.4 認(rèn)識MySQL數(shù)據(jù)庫中的日期類型MySQL數(shù)據(jù)庫中支持兩種復(fù)合類型:ENUM枚舉類型和SET集合類型。ENUM 類型中文名稱叫枚舉類型,它的值范圍需要在創(chuàng)建表時通過枚舉方式顯式指定,對取值范圍在1255之間的需要1個字節(jié)存儲;對于取值范圍
14、在25565535之間的,需要 2 個字節(jié)存儲。ENUM 類型最多允許有65535個成員。ENUM類型只允許從已經(jīng)給出的值集合中選取某單個值,而不能一次取多個值。ENUM類型因?yàn)橹辉试S在集合中取得一個值,類似于單選題。子任務(wù)1.5 認(rèn)識MySQL數(shù)據(jù)庫中的復(fù)合類型SET類型中文名稱叫集合類型,SET類型與ENUM類型既相似又有區(qū)別,相似之處是都有一個預(yù)先指定好取值的元素集合,區(qū)別之處在于SET類型一次可以選取多個成員,而ENUM則只能選一個。SET類型可以從預(yù)定義的集合中取得任意數(shù)量的值。另外,SET類型與 ENUM 類型均不能在 SET 類型字段中插入預(yù)定義值之外的其他數(shù)據(jù)。子任務(wù)1.5 認(rèn)
15、識MySQL數(shù)據(jù)庫中的復(fù)合類型【例3-24】創(chuàng)建數(shù)據(jù)表t5,字段gender設(shè)置為enum類型,字段interest設(shè)置為set類型。子任務(wù)1.5 認(rèn)識MySQL數(shù)據(jù)庫中的復(fù)合類型【例3-25】向表t5中插入具體數(shù)據(jù)??梢钥闯鰁num類型的gender只能在值集合中選擇一個,而set類型的interest則可以在值集合中選擇多個。子任務(wù)1.5 認(rèn)識MySQL數(shù)據(jù)庫中的復(fù)合類型例3-26中,interest字段的值體育不在初始建表時給該字段預(yù)定義的集合中(預(yù)定義的集合中只有閱讀、游戲兩種值),因此在進(jìn)行記錄添加的操作時,出現(xiàn)了錯誤。子任務(wù)1.5 認(rèn)識MySQL數(shù)據(jù)庫中的復(fù)合類型MySQL 中的二
16、進(jìn)制數(shù)據(jù)類型有BIT、BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。這些數(shù)據(jù)類型的特點(diǎn)如表3-5所示子任務(wù)1.6 認(rèn)識MySQL數(shù)據(jù)庫中的二進(jìn)制類型BINARY和VARBINARY類似于CHAR和VARCHAR,不同的是它們包含二進(jìn)制字符串而不包含非二進(jìn)制字符串。BINARY類型的長度是固定的,如果數(shù)據(jù)的長度不足最大長度,在后面用”0”補(bǔ)齊比如,數(shù)據(jù)類型為BINARY (3),當(dāng)插入a時,實(shí)際存儲的是”a00”子任務(wù)1.6 認(rèn)識MySQL數(shù)據(jù)庫中的二進(jìn)制類型在創(chuàng)建數(shù)據(jù)表時,數(shù)據(jù)類型的選擇對表的設(shè)計非常重要。根據(jù)相應(yīng)的特點(diǎn)來選擇合適的數(shù)據(jù)類
17、型,在滿足應(yīng)用的基礎(chǔ)上,用較小的存儲代價換來較高的數(shù)據(jù)庫性能以整數(shù)類型的具體選擇為例:涉及到學(xué)號、編號、課程號等信息時,如果不確定是哪一種整數(shù)類型,可根據(jù)插入數(shù)據(jù)的大小來選擇整數(shù)類型:如果數(shù)字為0255,即可選擇tinyint;如果數(shù)字為04294967296,則可選擇INT。子任務(wù)1.7數(shù)據(jù)類型的選擇CREATE TABLE為創(chuàng)建表語句,它為表定義各列的名字、數(shù)據(jù)類型和完整性約束。其語法格式如下CREATE TEMPORARY TABLE IF NOT EXISTS ( 完整性約束 ,.) 表的選項(xiàng);說明:在定義表結(jié)構(gòu)的同時,還可以定義與該表相關(guān)的完整性約束條件(實(shí)體完整性、參照完整性和用戶
18、自定義完整性),這些完整性約束條件被存入系統(tǒng)的數(shù)據(jù)字典中,當(dāng)用戶操作表中的數(shù)據(jù)時,由MySQL數(shù)據(jù)庫自動檢查該操作是否違背這些完整性約束條件。任務(wù)2 學(xué)會創(chuàng)建數(shù)據(jù)表數(shù)據(jù)庫要求數(shù)據(jù)完整性。數(shù)據(jù)完整性是指數(shù)據(jù)的準(zhǔn)確性和一致性,它是防止數(shù)據(jù)庫中存在不符合語義規(guī)定的數(shù)據(jù)和防止因錯誤信息的輸入輸出造成無效操作而提出的數(shù)據(jù)庫表中的約束包括主鍵約束、外鍵約束、唯一約束、檢查約束、空值約束和默認(rèn)值約束等。這里我們將重點(diǎn)通過實(shí)例介紹主鍵約束和外鍵約束。子任務(wù)2.1設(shè)置數(shù)據(jù)庫表中的約束【例3-30】創(chuàng)建數(shù)據(jù)表pk,共包含id、name、grade三個字段;然后使用desc命令查看pk表結(jié)構(gòu)。在例3-30的結(jié)果中,
19、我們可以發(fā)現(xiàn)主鍵(Key)一列是空白,且允許空值(Null)這一列都是YES,這說明每個字段默認(rèn)可以為空,而且MySQL并不會自動添加主鍵子任務(wù)2.1 學(xué)會創(chuàng)建數(shù)據(jù)表【例3-31】在例3-30基礎(chǔ)上將數(shù)據(jù)表pk中的id字段設(shè)為主鍵,再查看表結(jié)構(gòu)變化。子任務(wù)2.1 學(xué)會創(chuàng)建數(shù)據(jù)表例3-31的結(jié)果中,可以看到id已經(jīng)被設(shè)置為非空主鍵,也就是說,對于pk表中所有的記錄,這個字段都不允許為空值。說明:主鍵約束是指在表中定義一個主鍵來唯一確定表中每一行數(shù)據(jù)的標(biāo)識符。主鍵保證記錄的唯一性,它唯一地標(biāo)識了每一條數(shù)據(jù)。在將某個字段指定為主鍵后,該字段自動為非空即不允許存在空值;并且每張數(shù)據(jù)表只能存在一個主鍵,
20、該字段不能為空值,還不允許表中任何兩條記錄在該字段上有相同的值。一個數(shù)據(jù)表最多可以創(chuàng)建一個主鍵。子任務(wù)2.1 學(xué)會創(chuàng)建數(shù)據(jù)表 主鍵約束例3-31中創(chuàng)建的是單字段主鍵,在本例中,我們將刪除pk數(shù)據(jù)表中原有的單字段主鍵。子任務(wù)2.1 學(xué)會創(chuàng)建數(shù)據(jù)表 刪除主鍵約束【例3-33】添加聯(lián)合主鍵也就是多字段主鍵,此時數(shù)據(jù)表仍然只有一個主鍵,只是這個主鍵由兩個字段組合而成。在例3-33中這種組合形式生成的主鍵比僅有單一字段做主鍵更加靈活。以id、name兩個字段組合形成復(fù)合主鍵,則id字段就允許出現(xiàn)兩個或多個記錄在該字段上的值重復(fù)(但不允許任何兩條記錄在id、name兩個字段上都重復(fù))子任務(wù)2.1 學(xué)會創(chuàng)建
21、數(shù)據(jù)表 創(chuàng)建多字段主鍵約束如果表A的主鍵是表B中的字段,則該字段稱為表B的外鍵;另外表A稱為主表,表B稱為從表。外鍵是用來實(shí)現(xiàn)參照完整性的,不同的外鍵約束方式將可以使兩張表緊密的結(jié)合起來,特別是修改或刪除的級聯(lián)操作將使得日常維護(hù)更輕松。外鍵主要用來保證數(shù)據(jù)的完整性和一致性。一個數(shù)據(jù)表中可以有多個外鍵子任務(wù)2.1 學(xué)會創(chuàng)建數(shù)據(jù)表外鍵及外鍵約束在例3-35中,定義了表Orders的外鍵約束P_id,外鍵約束在Key一列顯示為MUL,這也是Person表中的主鍵如果向Orders表中插入某條記錄,此記錄的P_id字段值為N,而在Person表中所有記錄的P_id字段都不為N,則說明此條記錄的值為非法
22、(因?yàn)椴粷M足外鍵約束的條件)而無法插入該條記錄子任務(wù)2.1 學(xué)會創(chuàng)建數(shù)據(jù)表外鍵及外鍵約束在數(shù)據(jù)庫庫系統(tǒng)開發(fā)過程中,我們通常希望在每次插入新記錄時,自動地創(chuàng)建主鍵字段的值。MySQL有一個定義列為自增的屬性:AUTO_INCREMENT,也就是MySQL自增型字段。AUTO_INCREMENT會在新記錄插入表中時生成一個唯一的數(shù)字默認(rèn)從1開始自增,每次增加1,MySQL用戶也可以修改自增起始段和每次自增的數(shù)量子任務(wù)2.2設(shè)置自增型字段通過例3-39,可以看到設(shè)置為auto_increment的ID無需插入數(shù)據(jù),而是隨著插入記錄的過程進(jìn)行自增,默認(rèn)從1開始。子任務(wù)2.2設(shè)置自增型字段如果希望ID字
23、段的值從100開始自增,則代碼如下:alter table Person auto_increment=100;修改自增起始段之后,對已有記錄并沒有影響。子任務(wù)2.2設(shè)置自增型字段當(dāng)數(shù)據(jù)表中的表創(chuàng)建完成后,用戶在使用過程中可能根據(jù)需要改變表中原先定義的許多選項(xiàng),如對表的結(jié)構(gòu)、約束或字段的屬性進(jìn)行修改。表的修改與表的創(chuàng)建一樣,可以通過SQL語句來實(shí)現(xiàn),用戶可進(jìn)行的修改操作包括更改表名、增加字段、刪除字段、修改已有字段的屬性。任務(wù)3如何修改表結(jié)構(gòu)通過執(zhí)行alter table 語句,成功地向Person表中添加了新的字段age,并且將age字段設(shè)定為無符號的整型數(shù)添加字段后,無論數(shù)據(jù)表Person
24、中原先是否已有數(shù)據(jù),新增加的列一律為空值,且新增加的字段位于表結(jié)構(gòu)的末尾子任務(wù)3.1 修改字段相關(guān)信息 添加字段使用 alter 語句進(jìn)行字段的刪除子任務(wù)3.1 修改字段相關(guān)信息 刪除字段【例3-43】在例3-42的基礎(chǔ)上,將數(shù)據(jù)表Person中原有的主鍵從自增型修改為普通型主鍵字段。子任務(wù)3.2 修改約束條件對MySQL數(shù)據(jù)表的表名進(jìn)行修改,語法如下:ALTER TABLE tablename RENAME as new_tablename【例3.22】將數(shù)據(jù)表student2更名為student。子任務(wù) 3.3修改表名及其他選項(xiàng)對數(shù)據(jù)庫最頻繁的操作是進(jìn)行數(shù)據(jù)查詢。一般情況下,數(shù)據(jù)庫在進(jìn)行查
25、詢操作時需要對整個表進(jìn)行數(shù)據(jù)搜索。當(dāng)表中的數(shù)據(jù)很多時,搜索數(shù)據(jù)就需要很長的時間,這就造成了服務(wù)器的資源浪費(fèi)。為了提高檢索數(shù)據(jù)的能力,數(shù)據(jù)庫引入了索引機(jī)制。索引是一個列表,這個列表中包含了某個表中一列或若干列的集合以及這些值的記錄在數(shù)據(jù)表中存儲位置的物理地址。表的存儲由兩部分組成,一部分是表的數(shù)據(jù)頁面,另一部分是索引頁面。索引就放在索引頁面上。通常,索引頁面相對于數(shù)據(jù)頁面小得多。任務(wù)4 了解和認(rèn)識索引 索引的定義當(dāng)進(jìn)行數(shù)據(jù)檢索時,系統(tǒng)先搜索索引頁面,從中找到所需數(shù)據(jù)的指針,再直接通過指針從數(shù)據(jù)頁面中讀取數(shù)據(jù)。可以把數(shù)據(jù)庫看作一本書,把索引看作書的目錄,通過目錄查找書中的信息,顯然比查找沒有目錄的書要方便、快捷不使用索引的情況下,MySQL檢索記錄時必須從第1條記錄開始然后讀完整個表直到找出相關(guān)的行。表越大,花費(fèi)的時間越多。如果表中查詢的字段有一個索引,MySQL能快速到達(dá)一個位置去搜尋到數(shù)據(jù),沒有必要看所有數(shù)據(jù)。任務(wù)4 了解和認(rèn)識索引 索引
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中考英語一輪復(fù)習(xí)之一般過去時
- 手工藝品店前臺服務(wù)感悟
- 醫(yī)療行業(yè)專業(yè)技能培訓(xùn)總結(jié)
- 酒店行業(yè)服務(wù)員工作概述
- 銀行工作總結(jié)嚴(yán)謹(jǐn)高效服務(wù)至上
- 餐廚垃圾處理工作總結(jié)
- 畜牧行業(yè)安全工作總結(jié)
- 2024年秋葉的教案
- 2025屆張家口市高三語文上學(xué)期期末質(zhì)量監(jiān)測試卷及答案解析
- 農(nóng)貿(mào)市場租賃合同(2篇)
- 【MOOC】外科護(hù)理學(xué)-中山大學(xué) 中國大學(xué)慕課MOOC答案
- 年度學(xué)校辦公室工作總結(jié)
- 2025版國家開放大學(xué)法律事務(wù)??啤睹穹▽W(xué)(2)》期末紙質(zhì)考試總題庫
- 【MOOC】思辨式英文寫作-南開大學(xué) 中國大學(xué)慕課MOOC答案
- 生物人教版(2024版)生物七年級上冊復(fù)習(xí)材料
- 期末測試卷(試題)-2024-2025學(xué)年五年級上冊數(shù)學(xué)北師大版
- 企業(yè)地震應(yīng)急預(yù)案管理方案
- 房地產(chǎn)園林綠化行業(yè)研究報告:市場規(guī)模統(tǒng)計、供需態(tài)勢及發(fā)展前景預(yù)測報告(智研咨詢)
- 2024春節(jié)前安全培訓(xùn)
- 物業(yè)管理基礎(chǔ)培訓(xùn)
- 視頻監(jiān)控方案-高空瞭望解決方案
評論
0/150
提交評論