單元4數(shù)據(jù)庫(kù)的索引、默認(rèn)值和規(guī)則_第1頁(yè)
單元4數(shù)據(jù)庫(kù)的索引、默認(rèn)值和規(guī)則_第2頁(yè)
單元4數(shù)據(jù)庫(kù)的索引、默認(rèn)值和規(guī)則_第3頁(yè)
單元4數(shù)據(jù)庫(kù)的索引、默認(rèn)值和規(guī)則_第4頁(yè)
單元4數(shù)據(jù)庫(kù)的索引、默認(rèn)值和規(guī)則_第5頁(yè)
已閱讀5頁(yè),還剩36頁(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)介

1、高等教育出版社目錄單元1 SQL SERVER 2008基礎(chǔ)單元2 創(chuàng)建數(shù)據(jù)庫(kù)和表單元3 數(shù)據(jù)庫(kù)的查詢和視圖單元4 數(shù)據(jù)庫(kù)的索引、默認(rèn)值和規(guī)則單元5 數(shù)據(jù)庫(kù)的存儲(chǔ)過(guò)程和觸發(fā)器單元6 數(shù)據(jù)庫(kù)的日常管理與維護(hù)單元7 數(shù)據(jù)庫(kù)的安全管理單元8 SQL Server 數(shù)據(jù)庫(kù)應(yīng)用程序開(kāi)發(fā)單元9 數(shù)據(jù)庫(kù)在電子商務(wù)中的應(yīng)用單元4 數(shù)據(jù)庫(kù)的索引、默認(rèn)值和規(guī)則索引、默認(rèn)值和規(guī)則都是SQL Server數(shù)據(jù)庫(kù)中包含的對(duì)象,索引類似于圖書(shū)的目錄,它可以幫助數(shù)據(jù)庫(kù)應(yīng)用程序快速找到表中特定的數(shù)據(jù),而無(wú)需掃描表中的全部數(shù)據(jù),主要用于提高數(shù)據(jù)的查詢速度。默認(rèn)值和規(guī)則用來(lái)控制應(yīng)用系統(tǒng)中的數(shù)據(jù),類似于信息預(yù)過(guò)濾器,主要用于將數(shù)據(jù)

2、寫(xiě)入數(shù)據(jù)庫(kù)之前先校驗(yàn)規(guī)則及默認(rèn)值。本單元以“圖書(shū)信息管理”數(shù)據(jù)庫(kù)為例,學(xué)習(xí)SQL Server中索引、默認(rèn)值和規(guī)則三個(gè)數(shù)據(jù)庫(kù)對(duì)象的創(chuàng)建和使用方法。單元說(shuō)明單元4 數(shù)據(jù)庫(kù)的索引、默認(rèn)值和規(guī)則1掌握使用對(duì)象資源管理器和CREATE INDEX語(yǔ)句創(chuàng)建索引的方法。2會(huì)管理索引。3掌握創(chuàng)建默認(rèn)值對(duì)象和規(guī)則對(duì)象的方法。4會(huì)綁定默認(rèn)值對(duì)象和規(guī)則對(duì)象。5會(huì)解除默認(rèn)值對(duì)象和規(guī)則對(duì)象的綁定。6會(huì)刪除默認(rèn)值對(duì)象和規(guī)則對(duì)象。技能目標(biāo)1 了解索引的概念、類型和作用。2 掌握默認(rèn)值對(duì)象的創(chuàng)建、綁定、解除綁定、刪除等操作。3 掌握規(guī)則對(duì)象的創(chuàng)建、綁定、解除綁定、刪除等操作。知識(shí)目標(biāo)單元4 數(shù)據(jù)庫(kù)的索引、默認(rèn)值和規(guī)則任務(wù)4

3、.1 使用索引任務(wù)4.2 使用默認(rèn)值對(duì)象任務(wù)4.3 使用規(guī)則對(duì)象任務(wù)4.1 使用索引用對(duì)象資源管理器和CREATE INDEX語(yǔ)句創(chuàng)建索引,并學(xué)會(huì)管理索引。任務(wù)說(shuō)明1.會(huì)用對(duì)象資源管理器創(chuàng)建索引。2.會(huì)用CREATE INDEX語(yǔ)句創(chuàng)建索引。3.會(huì)用對(duì)象資源管理器查看索引及刪除索引。4.會(huì)用DROP INDEX語(yǔ)句刪除索引。任務(wù)目標(biāo)任務(wù)4.1 使用索引活動(dòng)4.1.1 創(chuàng)建索引活動(dòng)4.1.2 管理索引活動(dòng)4.1.1 創(chuàng)建索引索引是數(shù)據(jù)庫(kù)重要對(duì)象之一,可以用它來(lái)提高表中數(shù)據(jù)的訪問(wèn)速度。在SQL Server 2008中創(chuàng)建索引的方法主要有兩種,一是在對(duì)象資源管理器中通過(guò)方便的圖形化向?qū)?chuàng)建,二是通

4、過(guò)編寫(xiě)CREATE INDEX語(yǔ)句創(chuàng)建。案例1 使用對(duì)象資源管理器給“圖書(shū)信息”表的“書(shū)名”列設(shè)置唯一非聚集索引,索引名稱為“IX_書(shū)名”。小貼士當(dāng)給表設(shè)置PRIMARY KEY約束或UNIQUE約束時(shí),SQL SERVER會(huì)自動(dòng)在相應(yīng)的列上創(chuàng)建聚集索引或非聚集索引。案例2 使用CREATE INDEX語(yǔ)句給“圖書(shū)庫(kù)存”表的“ISBN”列設(shè)置非唯一非聚集索引,索引名稱為“IX_ISBN”?!敬a如下】USE 圖書(shū)信息管理GOCREATE NONCLUSTERED INDEX IX_ISBN ON 圖書(shū)庫(kù)存(ISBN)活動(dòng)4.1.1 創(chuàng)建索引【體驗(yàn)活動(dòng)】1.用對(duì)象資源管理器給“學(xué)生信息”表的“姓

5、名”列設(shè)置非唯一非聚集索引,索引名稱為“IX_姓名”。2.用CREATE INDEX語(yǔ)句給“課程信息”表的“課程名稱”列設(shè)置唯一非聚集索引,索引名稱為“IX_課程名稱”?;顒?dòng)4.1.2 管理索引對(duì)于創(chuàng)建好的索引,有時(shí)需要查看索引的屬性,對(duì)于不再使用或者很少使用的索引,應(yīng)該及時(shí)刪除。案例3 使用對(duì)象資源管理器查看“圖書(shū)庫(kù)存”表的“IX_ISBN”索引的相關(guān)屬性。小貼士如圖4.1.6所示,在彈出的快捷菜單中有一個(gè)“重命名”命令,選擇該命令可以直接給索引重命令。一個(gè)表只能有一個(gè)聚集索引,如果要更改,則必須先刪除已有的聚集索引。一個(gè)表可以創(chuàng)建若干個(gè)非聚集索引。通過(guò)圖4.1.7示的“索引屬性”對(duì)話框,不

6、但可以查看該索引是聚集索引還是非聚集索引,還能查看是否唯一、所引用的索引列有哪些等信息。并能通過(guò)該屬性對(duì)話框更改索引的類型,添加或刪除索引列等。活動(dòng)4.1.2 管理索引案例4 使用對(duì)象資源管理器刪除“圖書(shū)信息”表的索引“IX_書(shū)名”。案例5 使用DORP INDEX語(yǔ)句刪除“圖書(shū)庫(kù)存”表的索引“IX_ISBN”?!敬a如下】USE 圖書(shū)信息管理GODROP INDEX IX_ISBN ON 圖書(shū)庫(kù)存或USE 圖書(shū)信息管理GODROP INDEX 圖書(shū)庫(kù)存.IX_ISBN小貼士SQL Server自動(dòng)建立的索引不能用DROP INDEX刪除,只能用ALTER TABLE語(yǔ)句中的DROP CONS

7、TRAINT子句來(lái)刪除該字段上的主鍵約束或唯一性約束,這些約束刪除了,相關(guān)的索引也被刪除了?;顒?dòng)4.1.2 管理索引1.認(rèn)識(shí)索引我們都有過(guò)查字典的經(jīng)歷,在查找一個(gè)生字時(shí),首先會(huì)根據(jù)拼音或部首按照規(guī)定的查找方法到目錄中找到對(duì)應(yīng)漢字所在的頁(yè)碼,再翻閱到指定的頁(yè)碼找到要查找的生字。索引是對(duì)表或視圖中的一列或多列的值進(jìn)行排序的一種物理結(jié)構(gòu),它包含從表或視圖中的一個(gè)或多個(gè)列生成的鍵,以及映射到指定數(shù)據(jù)的存儲(chǔ)位置的指針。不同的索引對(duì)應(yīng)不同的排序方法,就像查字典時(shí)如果使用拼音法,則按漢字的拼音進(jìn)行排序;如果使用部首法,則按漢字的部首進(jìn)行排序。大家知道,這兩種方法也只是對(duì)應(yīng)了目錄中的不同排序方式,而字典中漢字

8、的物理順序卻始終只有一種。知識(shí)寶庫(kù)活動(dòng)4.1.2 管理索引索引類似于圖書(shū)的目錄,在一本書(shū)中,利用目錄可以快速找到所需信息在書(shū)中的位置,而不用翻閱整本書(shū)。在數(shù)據(jù)庫(kù)中,索引使數(shù)據(jù)庫(kù)應(yīng)用程序快速找到表中特定的數(shù)據(jù),而不用掃描整個(gè)表,可以大大提高數(shù)據(jù)的查詢速度。索引和原始表之間的關(guān)系如圖4.1.9所示。知識(shí)寶庫(kù)活動(dòng)4.1.2 管理索引2.索引的分類(1)按數(shù)據(jù)的物理存放順序:聚集索引(CLUSTERED):聚集索引是對(duì)表的物理數(shù)據(jù)按照索引列進(jìn)行排序,然后再重新存儲(chǔ)到磁盤(pán)上。由于聚集索引對(duì)表中的數(shù)據(jù)一一進(jìn)行了排序,因此用聚集索引查找數(shù)據(jù)很快。但由于聚集索引對(duì)表中的數(shù)據(jù)進(jìn)行了重新排列,它所需要的存儲(chǔ)空間會(huì)

9、特別大,大概相當(dāng)于表中數(shù)據(jù)所占空間的120%。表的數(shù)據(jù)行只能按一種排序方式存儲(chǔ)在磁盤(pán)上,所以一個(gè)表只能有一個(gè)聚集索引。非聚集索引(NONCLUSTERED):非聚集索引具有與表的數(shù)據(jù)完全分離的結(jié)構(gòu),使用非聚集索引不用將物理數(shù)據(jù)按列排序,而是存儲(chǔ)索引行,每個(gè)索引行均包含非聚集索引鍵值和一個(gè)或多個(gè)指向包含該值的數(shù)據(jù)行的行定位器。SQL Serve 在搜索數(shù)據(jù)時(shí),先對(duì)非聚集索引進(jìn)行搜索,然后再通過(guò)相應(yīng)的行定位器從表中找到對(duì)應(yīng)的數(shù)據(jù)。一個(gè)表可以有多個(gè)非聚集索引。知識(shí)寶庫(kù)活動(dòng)4.1.2 管理索引一般情況下,先創(chuàng)建聚集索引,后創(chuàng)建非聚集索引,因?yàn)閯?chuàng)建聚集索引會(huì)改變表中行的順序,從而會(huì)影響到非聚集索引。(2

10、)按索引列取值的唯一性:唯一索引:要求被索引列不能有重復(fù)值,也不能有兩個(gè)NULL。創(chuàng)建主鍵約束時(shí),系統(tǒng)會(huì)自動(dòng)為表創(chuàng)建一個(gè)唯一聚集索引。創(chuàng)建唯一約束時(shí),系統(tǒng)會(huì)自動(dòng)為表創(chuàng)建一個(gè)唯一非聚集索引。非唯一索引:不受重復(fù)值的約束。3.索引的作用建立索引有以下優(yōu)點(diǎn):建立了以索引列作為查詢條件時(shí),能大大提高數(shù)據(jù)的查詢速度。索引可以加快表與表之間的連接。在查詢中,可以明顯減少排序和分組所用的時(shí)間。知識(shí)寶庫(kù)活動(dòng)4.1.2 管理索引4.創(chuàng)建索引的規(guī)則創(chuàng)建索引的規(guī)則有以下幾點(diǎn):避免在一個(gè)表上創(chuàng)建大量的索引,因?yàn)閯?chuàng)建索引要花費(fèi)時(shí)間和占用物理空間,而且雖然索引能加快查詢速度,但減慢了數(shù)據(jù)更新的速度,因?yàn)槊繄?zhí)行一次數(shù)據(jù)修改

11、,就需要對(duì)索引進(jìn)行維護(hù)。 對(duì)于經(jīng)常需要作為查詢條件的列可以創(chuàng)建索引。在經(jīng)常需要排序的列上可以創(chuàng)建索引。當(dāng)修改的性能需求遠(yuǎn)大于查詢的性能需求時(shí),不要?jiǎng)?chuàng)建索引。知識(shí)寶庫(kù)活動(dòng)4.1.2 管理索引5.創(chuàng)建索引索引可以使用對(duì)象資源管理器直接創(chuàng)建,也可以使用CREATE INDEX語(yǔ)句進(jìn)行創(chuàng)建,使用CREATE INDEX創(chuàng)建索引的語(yǔ)句格式如下:CREATE UNIQUECLUSTERED|NONCLUSTERED INDEX 索引名ON 表或視圖(列名ASC|DESC)UNIQUE表示創(chuàng)建唯一索引,若省略則默認(rèn)創(chuàng)建非唯一索引。CLUSTERED|NONCLUSTERED表示創(chuàng)建的索引為聚集索引還是非聚集

12、索引,若省略則默認(rèn)創(chuàng)建非聚集索引。ASC|DESC表示索引是按升序還是降序排列,若省略則默認(rèn)為升序。知識(shí)寶庫(kù)活動(dòng)4.1.2 管理索引6.刪除索引對(duì)于不再需要的索引,應(yīng)該及時(shí)進(jìn)行刪除,刪除索引既可以使用對(duì)象資源管理器直接刪除,也可以使用DROP INDEX語(yǔ)句進(jìn)行刪除,使用DROP INDEX刪除索引有兩種方法,語(yǔ)句格式分別如下:DROP INDEX 索引名 ON 表名或視圖名或者DROP INDEX 表名.索引名或視圖名.索引名知識(shí)寶庫(kù)活動(dòng)4.1.2 管理索引【體驗(yàn)活動(dòng)】1.使用對(duì)象資源管理器查看“課程信息”表的“IX_課程名稱”索引屬性。2.使用對(duì)象資源管理器刪除“學(xué)生信息”表的索引“IX_

13、姓名”。3.使用DROP INDEX語(yǔ)句刪除“課程信息”表的索引“IX_課程名稱”。任務(wù)4.2 使用默認(rèn)值對(duì)象掌握默認(rèn)值對(duì)象的創(chuàng)建、綁定、解除綁定、刪除等操作。任務(wù)說(shuō)明1.會(huì)創(chuàng)建默認(rèn)值對(duì)象。2.會(huì)綁定默認(rèn)值對(duì)象。3.會(huì)解除默認(rèn)值對(duì)象的綁定。4.會(huì)刪除默認(rèn)值對(duì)象。任務(wù)目標(biāo)任務(wù)4.2 使用默認(rèn)值對(duì)象活動(dòng)4.2.1 創(chuàng)建默認(rèn)值對(duì)象活動(dòng)4.2.2 默認(rèn)值對(duì)象的綁定活動(dòng)4.2.3 解除默認(rèn)值對(duì)象的綁定活動(dòng)4.2.4 刪除默認(rèn)值對(duì)象活動(dòng)4.2.1 創(chuàng)建默認(rèn)值對(duì)象使用默認(rèn)值對(duì)象之前必須先創(chuàng)建默認(rèn)值對(duì)象,可以使用CREATE DEFAULT語(yǔ)句創(chuàng)建默認(rèn)值對(duì)象。案例7 在“圖書(shū)信息管理”數(shù)據(jù)庫(kù)中使用CREATE

14、 DEFAULT語(yǔ)句創(chuàng)建默認(rèn)值對(duì)象“MR_所在地”,值為“北京市”?!敬a如下】USE 圖書(shū)信息管理GOCREATE DEFAULT MR_所在地 AS 北京市活動(dòng)4.2.2 默認(rèn)值對(duì)象的綁定默認(rèn)值對(duì)象創(chuàng)建好后,需要把它綁定到需要的列上,這樣才能實(shí)現(xiàn)在插入數(shù)據(jù)時(shí),如果沒(méi)有為該列指定數(shù)值,則系統(tǒng)自動(dòng)為其添加上指定的默認(rèn)值。案例8 將“MR_所在地”默認(rèn)值對(duì)象綁定到“出版社”表“所在地”列?!敬a如下】USE 圖書(shū)信息管理GOSP_BINDEFAULT MR_所在地,出版社.所在地小貼士如果列同時(shí)綁定默認(rèn)值對(duì)象和規(guī)則對(duì)象,則默認(rèn)值不能違反規(guī)則。與規(guī)則沖突的默認(rèn)值將永遠(yuǎn)不能插入列,因?yàn)槊看卧噲D插入這

15、樣的默認(rèn)值時(shí)都會(huì)出錯(cuò)。一個(gè)默認(rèn)值對(duì)象可以綁定到多個(gè)不同的列上。不能將默認(rèn)值對(duì)象綁定到標(biāo)識(shí)列或已經(jīng)有DEFAULT約束的列上?;顒?dòng)4.2.3 解除默認(rèn)值對(duì)象的綁定如果不再需要綁定默認(rèn)值對(duì)象,則可以使用SP_UNBINDEFAULT語(yǔ)句將綁定從列上解除。案例9 解除“MR_所在地”默認(rèn)值對(duì)象在“出版社”表“所在地”列的綁定?!敬a如下】USE 圖書(shū)信息管理GOSP_UNBINDEFAULT 出版社.所在地活動(dòng)4.2.4 刪除默認(rèn)值對(duì)象當(dāng)不再使用默認(rèn)值對(duì)象時(shí),可以使用DROP DEFAULT語(yǔ)句來(lái)刪除默認(rèn)值對(duì)象,刪除默認(rèn)值對(duì)象前一定要確保該默認(rèn)值對(duì)象已經(jīng)沒(méi)有綁定到任何列或用戶定義數(shù)據(jù)類型上。案例10

16、 刪除“圖書(shū)信息管理”數(shù)據(jù)庫(kù)中的“MR_所在地”默認(rèn)值對(duì)象?!敬a如下】USE 圖書(shū)信息管理GODROP DEFAULT MR_所在地小貼士在對(duì)象資源管理器中,右鍵單擊要?jiǎng)h除的默認(rèn)值對(duì)象,然后選擇“刪除”命令,也可以刪除默認(rèn)值對(duì)象。刪除默認(rèn)值對(duì)象前,必須先將默認(rèn)值對(duì)象從它所綁定的列上解除,否則在執(zhí)行刪除語(yǔ)句時(shí)會(huì)出現(xiàn)如圖4.2.6所示錯(cuò)誤信息?;顒?dòng)4.2.4 刪除默認(rèn)值對(duì)象在SQL Server 2008數(shù)據(jù)庫(kù)系統(tǒng)中,除了使用DEFAULT約束外,還可以建立默認(rèn)值對(duì)象。建立默認(rèn)值對(duì)象后,需要把它綁定到表中的列或用戶定義的數(shù)據(jù)類型上才能發(fā)揮作用。1.創(chuàng)建默認(rèn)值對(duì)象默認(rèn)值就是當(dāng)用戶向表中添加數(shù)據(jù)時(shí),

17、沒(méi)有明確地給出,而由SQL Server自動(dòng)指派的值。默認(rèn)值可以定義為數(shù)據(jù)庫(kù)對(duì)象,使用時(shí)需將其綁定到特定的列上。在SQL Server 2008中使用CREATE DEFAULT語(yǔ)句來(lái)創(chuàng)建默認(rèn)值對(duì)象,語(yǔ)句格式如下:CREATE DEFAULT 默認(rèn)值對(duì)象名 AS 常量表達(dá)式常量表達(dá)式可以是常量、內(nèi)置函數(shù)或表達(dá)式。常量表達(dá)式如果是字符或日期時(shí)間型數(shù)據(jù),必須用單引號(hào)()括起來(lái)。CREATE DEFAULT必須是查詢批次中的第一條語(yǔ)句。默認(rèn)值必須與要綁定的列數(shù)據(jù)類型兼容,否則在插入默認(rèn)值時(shí)會(huì)出錯(cuò)。只能在當(dāng)前數(shù)據(jù)庫(kù)中創(chuàng)建默認(rèn)值對(duì)象。如果默認(rèn)值的長(zhǎng)度大于它所綁定列的最大長(zhǎng)度,該默認(rèn)值會(huì)被截?cái)?。知識(shí)寶庫(kù)活

18、動(dòng)4.2.4 刪除默認(rèn)值對(duì)象2.綁定默認(rèn)值對(duì)象默認(rèn)值對(duì)象創(chuàng)建好后,應(yīng)該將默認(rèn)值對(duì)象綁定到列上,這樣才能將創(chuàng)建的默認(rèn)值對(duì)象應(yīng)用到列中。綁定默認(rèn)值對(duì)象的語(yǔ)句格式如下:EXEC SP_BINDEFAULT 默認(rèn)值對(duì)象名,表名.列名一個(gè)默認(rèn)值對(duì)象可以綁定到多個(gè)不同的列上。不能將默認(rèn)值對(duì)象綁定到標(biāo)識(shí)列或已經(jīng)有DEFAULT約束的列上。3.解除默認(rèn)值對(duì)象的綁定如果不再需要使用默認(rèn)值對(duì)象,可以把它從表列上解除綁定,語(yǔ)句格式如下:EXEC SP_UNBINDEFAULT 表名.列名解除默認(rèn)值對(duì)象的綁定后,只是把默認(rèn)值對(duì)象與所綁定列的關(guān)系解除掉了,但并沒(méi)有刪除默認(rèn)值對(duì)象,所以該默認(rèn)值對(duì)象還在系統(tǒng)內(nèi),如果默認(rèn)值對(duì)

19、象綁定到多個(gè)列上,則對(duì)沒(méi)有解除綁定的列還繼續(xù)有效。知識(shí)寶庫(kù)活動(dòng)4.2.4 刪除默認(rèn)值對(duì)象4.刪除默認(rèn)值對(duì)象從數(shù)據(jù)庫(kù)中刪除一個(gè)默認(rèn)值對(duì)象時(shí),分兩種情況來(lái)處理:若該默認(rèn)值對(duì)象沒(méi)有綁定到表列中,則直接使用DROP DEFAULT語(yǔ)句進(jìn)行刪除;若該默認(rèn)值對(duì)象已經(jīng)綁定到表列中,則應(yīng)該先使用SP_UNBINDEFAULT解除該默認(rèn)值對(duì)象在表列上的綁定,再使用DROP DEFAULT語(yǔ)句進(jìn)行刪除。使用DROP DEFAULT語(yǔ)句刪除默認(rèn)值對(duì)象的語(yǔ)句格式如下:DROP DEFAULT 默認(rèn)值對(duì)象名,默認(rèn)值對(duì)象名可以一次刪除多個(gè)默認(rèn)值對(duì)象,注意多個(gè)默認(rèn)值對(duì)象之間要用逗號(hào)(,)隔開(kāi)。知識(shí)寶庫(kù)活動(dòng)4.2.4 刪除默

20、認(rèn)值對(duì)象5.默認(rèn)約束(DEFAULT約束)與默認(rèn)值對(duì)象的區(qū)別默認(rèn)約束是在創(chuàng)建或修改表時(shí),用DEFAULT子句為表中的列定義默認(rèn)值,它是針對(duì)表中的某個(gè)列定義的,僅對(duì)該列有效。因?yàn)樵摷s束定義與表存儲(chǔ)在一起,當(dāng)刪除表時(shí),將自動(dòng)刪除該約束。如果多個(gè)列需要相同的默認(rèn)值時(shí),使用默認(rèn)約束就必須對(duì)每個(gè)列都進(jìn)行定義。默認(rèn)值對(duì)象是在數(shù)據(jù)庫(kù)內(nèi)用CREATE DEFAULT語(yǔ)句創(chuàng)建的,是數(shù)據(jù)庫(kù)對(duì)象之一,可以綁定到用戶定義數(shù)據(jù)類型或數(shù)據(jù)庫(kù)中的一個(gè)或多個(gè)列上。使用時(shí)必須將它綁定到列上。如果多個(gè)列需要相同的默認(rèn)值時(shí),只需要在數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)默認(rèn)值對(duì)象,然后把它綁定到需要的列上即可。知識(shí)寶庫(kù)活動(dòng)4.2.4 刪除默認(rèn)值對(duì)象【體

21、驗(yàn)活動(dòng)】1. 在“學(xué)生成績(jī)管理”數(shù)據(jù)庫(kù)中使用CREATE DEFAULT語(yǔ)句創(chuàng)建默認(rèn)值對(duì)象“MR_所學(xué)專業(yè)”,值為“電子商務(wù)”。2. 將“MR_所學(xué)專業(yè)”默認(rèn)值對(duì)象綁定到“學(xué)生信息”表“所學(xué)專業(yè)”列。3. 解除“MR_所學(xué)專業(yè)”默認(rèn)值對(duì)象在“學(xué)生信息”表“所學(xué)專業(yè)”列的綁定。4. 刪除“學(xué)生成績(jī)管理”數(shù)據(jù)庫(kù)中的“MR_所學(xué)專業(yè)”默認(rèn)值對(duì)象。任務(wù)4.3 使用規(guī)則對(duì)象掌握規(guī)則對(duì)象的創(chuàng)建、綁定、解除綁定、刪除等操作。任務(wù)說(shuō)明1.會(huì)創(chuàng)建規(guī)則對(duì)象。2.會(huì)綁定規(guī)則對(duì)象。3.會(huì)解除規(guī)則對(duì)象的綁定。4.會(huì)刪除規(guī)則對(duì)象。任務(wù)目標(biāo)任務(wù)4.3 使用規(guī)則對(duì)象活動(dòng)4.3.1 創(chuàng)建規(guī)則對(duì)象活動(dòng)4.3.2 綁定規(guī)則對(duì)象活動(dòng)

22、4.3.3 解除規(guī)則對(duì)象的綁定活動(dòng)4.3.4 刪除規(guī)則對(duì)象活動(dòng)4.3.1 創(chuàng)建規(guī)則對(duì)象使用規(guī)則對(duì)象之前必須先創(chuàng)建規(guī)則對(duì)象,可以使用CREATE RULE語(yǔ)句創(chuàng)建規(guī)則對(duì)象。案例11 在“圖書(shū)信息管理”數(shù)據(jù)庫(kù)中用CREATE RULE語(yǔ)句創(chuàng)建規(guī)則對(duì)象“GZ_數(shù)量”,用來(lái)限制列的取值必須大于0。【代碼如下】USE 圖書(shū)信息管理GOCREATE RULE GZ_數(shù)量 AS SL0 說(shuō)明:上述CREATE RULE語(yǔ)句中“GZ_數(shù)量”是規(guī)則名,“SL0”是規(guī)則的條件活動(dòng)4.3.2 綁定規(guī)則對(duì)象規(guī)則對(duì)象創(chuàng)建好后,必須要綁定到列上才能生效。綁定規(guī)則可以使用SP_BINDRULE語(yǔ)句。案例12 將“GZ_數(shù)量

23、”規(guī)則對(duì)象綁定到“圖書(shū)信息”表“數(shù)量”列,用來(lái)限制“數(shù)量”列的取值必須大于0。【代碼如下】USE 圖書(shū)信息管理GOSP_BINDRULE GZ_數(shù)量,圖書(shū)信息.數(shù)量 小貼士一個(gè)列上只能綁定一個(gè)規(guī)則,如果列上已經(jīng)綁定了規(guī)則,當(dāng)再次向它們綁定規(guī)則時(shí),舊規(guī)則將被新規(guī)則覆蓋。綁定規(guī)則后,當(dāng)有不符合規(guī)則的數(shù)據(jù)輸入時(shí),系統(tǒng)會(huì)給出錯(cuò)誤信息,拒絕接受該數(shù)據(jù)。活動(dòng)4.3.3 解除規(guī)則對(duì)象的綁定如果某列綁定的規(guī)則對(duì)象不再需要,可以使用SP_UNBINDRULE語(yǔ)句將綁定從列上解除。案例13 解除“GZ_數(shù)量”規(guī)則對(duì)象在“圖書(shū)信息”表“數(shù)量”列的綁定?!敬a如下】USE 圖書(shū)信息管理GOSP_UNBINDRULE

24、圖書(shū)信息.數(shù)量 活動(dòng)4.3.4 刪除規(guī)則對(duì)象當(dāng)不再使用規(guī)則對(duì)象時(shí),可以使用DROP RULE語(yǔ)句來(lái)刪除規(guī)則對(duì)象,刪除規(guī)則對(duì)象前一定要確保該規(guī)則對(duì)象已經(jīng)沒(méi)有綁定到任何列上。案例14 刪除“圖書(shū)信息管理”數(shù)據(jù)庫(kù)中的“GZ_數(shù)量”規(guī)則對(duì)象【代碼如下】USE 圖書(shū)信息管理GODROP RULE GZ_數(shù)量 小貼士在對(duì)象資源管理器中右鍵單擊要?jiǎng)h除的規(guī)則對(duì)象,選擇“刪除”命令,也可以刪除規(guī)則對(duì)象。刪除規(guī)則對(duì)象前,必須先將規(guī)則對(duì)象從它所綁定的列上解除,否則在執(zhí)行刪除語(yǔ)句時(shí)會(huì)出現(xiàn)如圖4.3.5所示的錯(cuò)誤信息?;顒?dòng)4.3.4 刪除規(guī)則對(duì)象規(guī)則也是數(shù)據(jù)庫(kù)的一個(gè)對(duì)象,用于執(zhí)行一些與CHECK約束相同的功能。規(guī)則在使

25、用中也需要將其綁定到列上,用來(lái)指定列可以接受哪些數(shù)值。1.創(chuàng)建規(guī)則對(duì)象在SQL Server 2008中使用CREATE RULE語(yǔ)句來(lái)創(chuàng)建規(guī)則對(duì)象,語(yǔ)句格式如下:CREATE RULE 規(guī)則對(duì)象名 AS 條件表達(dá)式條件表達(dá)式用于指定列值的格式或取值范圍,不能引用列名或其他數(shù)據(jù)庫(kù)對(duì)象名。條件表達(dá)式中包含一個(gè)以開(kāi)頭的局部變量,該變量代表插入或修改該列時(shí)用戶輸入的數(shù)值。CREATE RULE必須是查詢批次中的第一條語(yǔ)句。只能在當(dāng)前數(shù)據(jù)庫(kù)中創(chuàng)建規(guī)則對(duì)象。知識(shí)寶庫(kù)活動(dòng)4.3.4 刪除規(guī)則對(duì)象2.綁定規(guī)則對(duì)象規(guī)則對(duì)象創(chuàng)建好后,必須綁定到列上才能生效。綁定規(guī)則對(duì)象的語(yǔ)句格式如下:EXEC SP_BINDRULE 規(guī)則對(duì)象名,表名.列名一個(gè)規(guī)則對(duì)象可以綁定到多個(gè)不同的列上。一個(gè)列上只能綁定一個(gè)規(guī)則,如果列上已經(jīng)綁

溫馨提示

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