freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第3-b章--mysql索引與數(shù)據(jù)完整性約束(編輯修改稿)

2025-09-04 20:23 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 RY下面多出一個(gè) index_2索引,然后在索引框右面可以選擇索引類型。 設(shè)置索 引類型 圖 設(shè)置索引類型 界面方式創(chuàng)建和刪除索引 ( 4)選擇完類型,單擊最右邊 “ Index Columns”框旁邊的 “ +”號(hào),可以看到姓名列被添加了進(jìn)去,如圖 。此時(shí)單擊 “ Apply Changes”按鈕,索引即創(chuàng)建完畢。 添加索引列 圖 添加索引列 索引對(duì)查詢的影響 目前本書實(shí)例中所涉及的表最多只有幾十行的數(shù)據(jù),所以有沒(méi)有建立索引,還體會(huì)不到查詢速度上的差異,可是當(dāng)一個(gè)表里有成千上萬(wàn)行數(shù)據(jù)的時(shí)候,差異就非常明顯了?,F(xiàn)在假設(shè)有一個(gè)表,表里只有一列,由數(shù)值 1~ 1000的 1000行組成,現(xiàn)在要想查找到數(shù)字 1000所在的行。如果沒(méi)有索引,要從第一行開始匹配,若數(shù)值不是 1000,則轉(zhuǎn)到下一行進(jìn)行匹配,這樣直到第 1000行的時(shí)候才能找到數(shù)字 1000所在行,也就是說(shuō)服務(wù)器進(jìn)行了 1000次的運(yùn)算。而當(dāng)在該列上創(chuàng)建一個(gè)索引后,則可以直接在索引值中找到1000的位置,然后找到 1000所指向的行,在速度上比全表掃描至少快了 100倍。 當(dāng)執(zhí)行涉及多個(gè)表的連接查詢時(shí),索引將更有價(jià)值。 索引的弊端 首先,索引是以文件的形式存儲(chǔ)的,索引文件要占用磁盤空間。如果有大量的索引,索引文件可能會(huì)比數(shù)據(jù)文件更快地達(dá)到最大的文件尺寸。 其次,在更新表中索引列上的數(shù)據(jù)時(shí),對(duì)索引也需要更新,這可能需要重新組織一個(gè)索引,如果表中的索引很多,這是很浪費(fèi)時(shí)間的。也就是說(shuō),這樣就降低了添加、刪除、修改和其他寫入操作的效率。表中的索引越多,則更新表的時(shí)間就越長(zhǎng)。 但是這些弊端并不妨礙索引的應(yīng)用,因?yàn)樗饕龓?lái)的好處已經(jīng)基本掩蓋了它的缺陷,在表中有很多行數(shù)據(jù)的時(shí)候,索引通常是不可缺少的。 實(shí)驗(yàn) : 索引的使用 實(shí)驗(yàn)內(nèi)容: P210 創(chuàng)建索引 刪除索引 數(shù)據(jù)完整性約束 ? 主鍵約束 主鍵就是表中的一列或多個(gè)列的一組,其值能唯一地標(biāo)志表中的每一行。通過(guò)定義PRIMARY KEY約束來(lái)創(chuàng)建主鍵,而且 PRIMARY KEY約束中的列不能取空值。由于 PRIMARY KEY約束能確保數(shù)據(jù)的唯一,所以經(jīng)常用來(lái)定義標(biāo)志列。當(dāng)為表定義PRIMARY KEY約束時(shí), MySQL為主鍵列創(chuàng)建唯一性索引,實(shí)現(xiàn)數(shù)據(jù)的唯一性,在查詢中使用主鍵時(shí),該索引可用來(lái)對(duì)數(shù)據(jù)進(jìn)行快速訪問(wèn)。如果 PRIMARY KEY 約束是由多列組合定義的,則某一列的值可以重復(fù),但 PRIMARY KEY 約束定義中所有列的組合值必須唯一。 可以用兩種方式定義主鍵:作為列或表的完整性約束。作為列的完整性約束時(shí),只需在列定義的時(shí)候加上關(guān)鍵字 PRIMARY KEY。作為表的完整性約束時(shí),需要在語(yǔ)句最后加上一條 PRIMARY KEY( col_name, … )語(yǔ)句。 數(shù)據(jù)完整性約束 【 例 】 創(chuàng)建表 XS1,將姓名定義為主鍵。 CREATE TABLE XS1 ( 學(xué)號(hào) varchar(6) NULL, 姓名 varchar(8) NOT NULL PRIMARY KEY , 出生日期 datetime )。 說(shuō)明: 例中主鍵定義于空指定之后,空指定也可以在主鍵之后指定。 主鍵約束 當(dāng)表中的主鍵為復(fù)合主鍵時(shí),只能定義為表的完整性約束。 【 例 】 創(chuàng)建 course表來(lái)記錄每門課程的學(xué)生學(xué)號(hào)、姓名、課程號(hào)、學(xué)分和畢業(yè)日期。其中學(xué)號(hào)、課程號(hào)和畢業(yè)日期構(gòu)成復(fù)合主鍵。 CREATE TABLE course ( 學(xué)號(hào) varchar(6) NOT NULL, 姓名 varchar(8) NOT NULL, 畢業(yè)日期 date NOT NULL, 課程號(hào) varchar(3) , 學(xué)分 tinyint , PRIMARY KEY (學(xué)號(hào) , 課程號(hào) , 畢業(yè)日期 ) )。 如果作為主鍵的一部分的一個(gè)列沒(méi)有定義為 NOT NULL, MySQL就自動(dòng)把這個(gè)列定義為 NOT NULL。實(shí)際上,在前面的例 ,可以忽略姓名列中的 NOT NULL聲明,但是為了清楚起見,最好包含這個(gè)空指定。 主鍵約束 原則上,任何列或者列的組合都可以充當(dāng)一個(gè)主鍵。但是主鍵列必須遵守一些規(guī)則。這些規(guī)則源自于關(guān)系模型理論和 MySQL所制定的規(guī)則: ( 1)每個(gè)表只能定義一個(gè)主鍵。 ( 2)關(guān)系模型理論要求必須為每個(gè)表定義一個(gè)主鍵。然而, MySQL并不要求這樣,可以創(chuàng)建一個(gè)沒(méi)有主鍵的表。但是,從安全角度應(yīng)該為每個(gè)基礎(chǔ)表指定一個(gè)主鍵。 ( 3)表中的兩個(gè)不同的行
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1