資源描述:
《建立索引的目的有以下幾點(diǎn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、建立索引的目的有以下幾點(diǎn):(1)加速數(shù)據(jù)檢索(2)加速連接、ORDERBY和GROUPBY等操作(3)查詢優(yōu)化器依賴于索引起作用(4)強(qiáng)制實(shí)行的惟一性在哪些列上建索引主鍵通常,檢索、存取表是通過(guò)主鍵來(lái)進(jìn)行的。因此,應(yīng)該考慮在主鍵上建立索引。連接中頻繁使用的列用于連接的列若按順序存放,系統(tǒng)可以很快地執(zhí)行連接。如外鍵,除用于實(shí)現(xiàn)參照完整性外,還經(jīng)常用于進(jìn)行表的連接。在某一范圍內(nèi)頻繁搜索的列和按排序順序頻繁檢索的列根據(jù)數(shù)據(jù)庫(kù)的功能,在SQLServer2000中可創(chuàng)建3種類(lèi)型的索引,物理位置分:聚集索引,非聚集索引特殊性分:一般索引、惟一性索引、主鍵索引。1.惟一性索引在表中建立惟一性索引時(shí),組成
2、該索引的字段或字段組合在表中具有惟一值,也就是說(shuō),對(duì)于表中的任何兩行記錄來(lái)說(shuō),索引鍵的值都是各不相同。2.主鍵索引表中通常有一個(gè)字段或一些字段組的合,其值用來(lái)惟一標(biāo)識(shí)表中的每一行記錄,該字段或字段組合稱(chēng)為表的主鍵。3.聚集索引在聚集索引中,表中各記錄的物理順序與鍵值的邏輯(索引)順序相同。只有在表中建立了一個(gè)聚集索引后,數(shù)據(jù)才會(huì)按照索引鍵值指定的順序存儲(chǔ)到表中。由于一個(gè)表中的數(shù)據(jù)只能按照一種順序來(lái)存儲(chǔ),所以在一個(gè)表中只能建立一個(gè)聚集索引。視圖的作用視圖通常用來(lái)集中、簡(jiǎn)化和自定義每個(gè)用戶對(duì)數(shù)據(jù)庫(kù)的不同認(rèn)識(shí)。視圖可用作安全機(jī)制,方法是允許用戶通過(guò)視圖訪問(wèn)數(shù)據(jù),而不授予用戶直接訪問(wèn)視圖基礎(chǔ)表的權(quán)限
3、。(1)簡(jiǎn)化操作(2)定制數(shù)據(jù)(3)導(dǎo)出數(shù)據(jù)(4)安全性通過(guò)視圖添加表數(shù)據(jù)語(yǔ)法格式:INSERTINTO視圖名VALUES(列值1,列值2,列值3,…,列值n)例7-9在goods表中建立一個(gè)視圖,利用視圖插入一行數(shù)據(jù)。CREATEVIEWgoods_viewASSELECTgoods_id,goods_name,classification_id,unit_price,stock_quantityFROMgoodsWHERE(classification_id='P001')INSERTINTOgoods_viewVALUES('G0008','SONYDVD','P002',400,10
4、)將視圖goods_view中商品號(hào)為’G00002’的商品名改為“IBMR61”。UPDATEgoods_viewSETgoods_name='IBMR61'WHEREgoods_id=‘G00002’;若視圖定義包含了計(jì)算列,該視圖的計(jì)算列是不可更新的.盡管視圖不一定包含基礎(chǔ)表的所有列,但可以通過(guò)視圖刪除基礎(chǔ)表的數(shù)據(jù)行。例7-10:deletefromgoods_viewWheregoods_name=‘IBMR51’若通過(guò)視圖要?jiǎng)h除的數(shù)據(jù)行不包含在視圖定義中,該數(shù)據(jù)行不能成功刪除。例7-10-1deletefromgoods_viewWheregoods_id='G00004'若刪除語(yǔ)
5、句的條件中指定的列是視圖中未包含的列,則無(wú)法通過(guò)視圖刪除基表數(shù)據(jù)行7-10-2deletefromgoods_viewWhereorder_quantity=5實(shí)體完整性,域完整性,參照完整性,用戶定義的完整性是怎么實(shí)現(xiàn)的創(chuàng)建雇傭日期規(guī)則hire_date_rule。CREATERULEhire_date_ruleAS@hire_date>='1980-01-01'and@hire_date<=getdate()將例8-1創(chuàng)建的規(guī)則hire_date_rule綁定到employee表的hire_date列上。EXECsp_bindrulehire_date_rule,'employee.hi
6、re_date'解除例8-6和例8-7綁定在employee表的hire_date列和用戶定義數(shù)據(jù)類(lèi)型pat_char上的規(guī)則。EXECsp_unbindrule'employee.hire_dateEXECsp_unbindrule‘pat_char’,'futureonly‘刪除例8-1和8-2中創(chuàng)建的規(guī)則。DROPRULEsex_rule,hire_date_rule創(chuàng)建當(dāng)前日期默認(rèn)值today_defa。CREATEDEFAULTtoday_defaASgetdate()查看默認(rèn)值today_defa。EXECsp_helptexttoday_defa例8-14綁定默認(rèn)值today_
7、defa到employee表的hire_date列上。EXECsp_bindefaulttoday_defa,'employee.hire_date'解除默認(rèn)值today_defa與表employee的hire_date列的綁定。EXECsp_unbindefault'employee.hire_date'刪除生日默認(rèn)值birthday_defa。DROPDEFAULTbirthday_defa根據(jù)商品銷(xiāo)售的