第五章 數(shù)據(jù)完整性_第1頁
第五章 數(shù)據(jù)完整性_第2頁
第五章 數(shù)據(jù)完整性_第3頁
第五章 數(shù)據(jù)完整性_第4頁
第五章 數(shù)據(jù)完整性_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第五章 數(shù)據(jù)完整性 【本章要點(diǎn)】1、數(shù)據(jù)完整性的類型及區(qū)別2、約束的類型及創(chuàng)建和刪除3、默認(rèn)的創(chuàng)建、綁定和刪除4、規(guī)則的創(chuàng)建、綁定和刪除 5.1 數(shù)據(jù)完整性概念 當(dāng)人們操作表中的數(shù)據(jù)時,由于一些人為原因,我們經(jīng)常遇到一些問題,例如:員工進(jìn)入公司的日期早于該員工的出生日期;如某公司的員工表中發(fā)現(xiàn)有相同的員工編號;又如某公司人事部有一張員工信息表和一張員工借款信息表,但后來發(fā)現(xiàn)借款表中的某個員工不是公司的員工。諸如此類的問題,不能僅靠數(shù)據(jù)錄入人員和操作人員的認(rèn)真和負(fù)責(zé),而應(yīng)該建立一套保障機(jī)制;要么防止這類問題的發(fā)生,要么發(fā)生這些問題時可以及時地發(fā)現(xiàn)。數(shù)據(jù)完整性就是解決這些問題的機(jī)制。 數(shù)據(jù)完整性(

2、Data Integrity)是指存儲在數(shù)據(jù)庫中的數(shù)據(jù)的一致性和準(zhǔn)確性。 它是應(yīng)防止數(shù)據(jù)庫中存在不符合語義規(guī)定的數(shù)據(jù)和防止因錯誤信息的輸入輸出造成無效操作或錯誤信息而提出的。在Microsoft SQL Server 2005系統(tǒng)中數(shù)據(jù)完整性分為三類:域完整性、實體完整性、參照完整性5.1.1 域完整性 域完整性,也可稱為列完整性,指數(shù)據(jù)庫表中的列必須滿足某種特定的數(shù)據(jù)類型或約束。其中約束又包括取值范圍、精度等規(guī)定。例如,在性別列中,限制其取值范圍為“男”和“女”,其他的取值無效。 5.1.2 實體完整性 實體完整性,也可稱為行完整性,規(guī)定表中的每一行都有惟一標(biāo)識符,這種標(biāo)識符一般稱為主鍵值。

3、例如,對于所有的中國公民來說,居民身份證號碼是唯一的,使用居民身份證號碼可以唯一地確定某一個人,因此可以把公民的居民身份證明號碼作為主鍵對待,主鍵值是否能夠被修改或表中的全部數(shù)據(jù)是否能夠被全部刪除都要依賴于主鍵表和其他表之間要求的完整性。5.1.3 參照完整性 參照完整性,也可稱為引用完整性,指兩個表(被引用表)的主關(guān)鍵字和(引用表的)外部關(guān)鍵字的數(shù)據(jù)應(yīng)對應(yīng)一致。它確保了有主關(guān)鍵字的表中對應(yīng)其它表的外關(guān)鍵字的行存在,即保證了表之間的數(shù)據(jù)的一致性,防止了數(shù)據(jù)丟失或無意義的數(shù)據(jù)在數(shù)據(jù)庫中擴(kuò)散。例如,在一個數(shù)據(jù)庫中有兩張表,即人事表和財務(wù)表。人事表中記錄了本單位的所有員工的基本信息,財務(wù)表記錄了本單

4、位員工的借款信息。一般地,如果某個公司員工有借款,那么他就不能直接從人事表中刪除。 數(shù)據(jù)完整性分析5.2 約束(constraints) 約束是通過限制列中數(shù)據(jù)、行中數(shù)據(jù)和表之間數(shù)據(jù)來保證數(shù)據(jù)完整性的非常有效的方法。建立和使用約束的目的是保證數(shù)據(jù)的完整性,在SQL Server 2005中可使用5種約束來限制列中的數(shù)據(jù)、行中的數(shù)據(jù)和表之間的數(shù)據(jù)以保證數(shù)據(jù)的完整性。 1、 CHECK約束/檢查約束:限制插入列中的值2、 PRIMARY KEY約束/主鍵約束:要求主鍵的列上沒有兩行具有相同值,也沒有空值。3、FOREIGN KEY約束/外鍵約束:要求指定的列(外鍵)中正被插入或更新的新值,必須在被

5、參照表(主表)的相應(yīng)列(主鍵)中已經(jīng)存在。4、 UNIQUE約束/唯一約束:要求表中在指定的列上沒有兩行具有相同的值。5、 DEFAULT約束/缺省約束:當(dāng)向數(shù)據(jù)庫中的表插入數(shù)據(jù)時,如果用戶沒有明確給出某列的值, SQL Server自動為該列輸入指定值。 5.2.1 check 約束 CHECK約束用于限制輸入到一列或多列中值的范圍來保證SQL Server數(shù)據(jù)庫中數(shù)據(jù)的域完整性,也就是一個字段的輸入內(nèi)容必須滿足CHECK約束的條件,否則,數(shù)據(jù)無法正常輸入,從而強(qiáng)制數(shù)據(jù)的域完整性。 方法一、使用SQL Server企業(yè)管理器定義、刪除check 約束 【例1】 在客服表中定義性別列只能輸入“

6、男“ 或者 “女“的check 約束 使用T-SQL語句來創(chuàng)建check 約束1.格式:創(chuàng)建表的同時創(chuàng)建check約束Create table 表名(.,列名 數(shù)據(jù)類型 是否為空 constraint 約束名 check(表達(dá)式),)2.修改表時添加check 約束。Alter table 表名AddConstraint 約束名 check(表達(dá)式)創(chuàng)建客戶表的同時定義check 約束要求性別列只能輸入“男“ 或者 ”女“ Use 手機(jī)Create table 客戶表 ( 客戶編號 varchar(10) not null, 客戶姓名 varchar(10) not null, 客戶密碼 ch

7、ar(6) not null, 性別 char(2) not null Constraint ck_性別 check (性別=男 or 性別=女 ), 證件號 varchar(18 ) not null, 月收入 smallmoney null ) 創(chuàng)建職工表時,給年齡加個check約束,將年齡限制在18-60歲create table 職工(職工號char(20) null,姓名char(20) null,年齡 int null constraint ck_年齡 check(年齡=18 and 年齡=60),籍貫char(20) null,學(xué)歷 char(20) null)給職工表的學(xué)歷添加

8、約束 Alter table 職工 Add Constraint ck_學(xué)歷 check(學(xué)歷=本科 or 學(xué)歷=碩士 or 學(xué)歷=博士)3.使用T-SQL語句刪除check 約束(注意:次語句可用于任何一種約束的刪除)語法:Alter table 表名Drop constraint 約束名稱(1)刪除約束Alter table 客戶表Drop constraint ck_客戶表 5.2.2 PRIMARY KEY約束 在數(shù)據(jù)庫的每個表中,經(jīng)常有一列或者多個列的組在數(shù)據(jù)庫的每個表中,經(jīng)常有一列或者多個列的組合,其值能唯一的標(biāo)識表中的每一行。就好像我們平時使合,其值能唯一的標(biāo)識表中的每一行。就好

9、像我們平時使用的身份證,能夠唯一的標(biāo)識每個人一樣。這樣的一列或用的身份證,能夠唯一的標(biāo)識每個人一樣。這樣的一列或者多個列,被稱為主鍵,通過主鍵,可以強(qiáng)制表的實體完者多個列,被稱為主鍵,通過主鍵,可以強(qiáng)制表的實體完整性。整性。 每一張表中只能有一個每一張表中只能有一個PRIMARY KEY約束,在使用約束,在使用PRIMARY KEY約束時,該列的屬性必須定義為空值約束時,該列的屬性必須定義為空值NOT NULL,也就是說擁有主鍵的那一列,不能為空。,也就是說擁有主鍵的那一列,不能為空。 定義為主鍵的列,不允許有空值和重復(fù)值方法一、使用方法一、使用SQL Server企業(yè)管理器定義企業(yè)管理器定義

10、1、定義、定義PRIMARY KEY約束約束【例例5】對客戶表中的證件號定義對客戶表中的證件號定義PRIMARY KEY約束約束使用使用T-SQL語句來創(chuàng)建語句來創(chuàng)建格式一:創(chuàng)建表的時候創(chuàng)建主鍵約束格式一:創(chuàng)建表的時候創(chuàng)建主鍵約束Create table 表名表名(列名列名 數(shù)據(jù)類型數(shù)據(jù)類型 是否為空是否為空 constraint 主鍵約主鍵約束名束名 primary key,)格式二:創(chuàng)建好的表添加格式二:創(chuàng)建好的表添加primary key約束約束Alter table 表名表名AddConstraint 主鍵約束名主鍵約束名 primary key(主鍵列主鍵列)1、在創(chuàng)建表的同時定義、

11、在創(chuàng)建表的同時定義PRIMARY KEY約束約束【例例6】創(chuàng)建客戶表的同時定義列創(chuàng)建客戶表的同時定義列“證件號證件號”為為PRIMARY KEY約束約束 Use 手機(jī)Create table 客戶表( 客戶編號 varchar(10) not null,客戶姓名 varchar(10) not null,客戶密碼 char(6) not null,性別 char(2) not null,證件號 varchar(18 ) not nullConstraint pk_證件號 primary key,月收入 smallmoney null ) 創(chuàng)建工資表的同時為職工號創(chuàng)建主鍵create table

12、 工資(職工號char(20) not null constraint cc primary key,姓名char(20) null,工資char(20) null) 假設(shè)創(chuàng)建工資表時未有主鍵 現(xiàn)添加主鍵約束,約束名稱是aaa alter table 工資 add constraint aaa primary key(職工號)2、刪除、刪除PRIMARY KEY約束約束語法: Drop constraint 主鍵名稱主鍵名稱【例例8】刪除例刪除例5、9中為證件號添加的中為證件號添加的PRIMARY KEY約束約束Use 手機(jī)Alter table 客戶表Drop constraint pk _

13、客戶表 練習(xí) 1.創(chuàng)建表 學(xué)生(學(xué)號,姓名,籍貫,入學(xué)時間,性別) 同時,為入學(xué)時間加個check約束,將時間約束在2009-9-1號以后 2.添加check約束cc,將性別約束成為男或者為女 3.將 表成績(學(xué)號,姓名,成績)的學(xué)號添加為主鍵約束,約束名為:abc5.2.3 FOREIGN KEY約束 FOREIGN KEY是用于建立和加強(qiáng)兩個表數(shù)據(jù)之間的是用于建立和加強(qiáng)兩個表數(shù)據(jù)之間的關(guān)系的一列或多列。通過將保存表中主鍵值的一列或多列關(guān)系的一列或多列。通過將保存表中主鍵值的一列或多列添加到另一個表中,可創(chuàng)建兩個表之間的關(guān)系,這個列就添加到另一個表中,可創(chuàng)建兩個表之間的關(guān)系,這個列就成為第二

14、個表的外鍵。成為第二個表的外鍵。 例如,數(shù)據(jù)庫例如,數(shù)據(jù)庫教學(xué)教學(xué)(teach)中的中的選課選課(xk)表表與與學(xué)生學(xué)生(student)表表有關(guān)系,因為在學(xué)生和選課之間存有關(guān)系,因為在學(xué)生和選課之間存在邏輯聯(lián)系。在邏輯聯(lián)系。選課表選課表中的學(xué)號中的學(xué)號(s_no)列與列與學(xué)生表學(xué)生表中的主鍵列學(xué)號中的主鍵列學(xué)號(s_no)相對應(yīng),這時從表相對應(yīng),這時從表選課表選課表中的中的學(xué)號學(xué)號(sno)列是主表列是主表學(xué)生表學(xué)生表的外鍵的外鍵 定義外鍵約束時應(yīng)注意以下幾點(diǎn):1、定義表之間的參照關(guān)系時應(yīng)該先選定主表并定義其主鍵,、定義表之間的參照關(guān)系時應(yīng)該先選定主表并定義其主鍵,再對從表定義外鍵約束再對從

15、表定義外鍵約束 .2、定義外鍵之前必須保證從表與主表相同列的數(shù)據(jù)滿足要、定義外鍵之前必須保證從表與主表相同列的數(shù)據(jù)滿足要求。(相同列從表的數(shù)據(jù)小于或等于主表數(shù)據(jù)求。(相同列從表的數(shù)據(jù)小于或等于主表數(shù)據(jù)).3、一個表最多能夠建立一個表最多能夠建立253個外鍵關(guān)系。個外鍵關(guān)系。4、外鍵約束同時也可以參照自身表中的其他列、外鍵約束同時也可以參照自身表中的其他列 5、外鍵約束,只能參照本身數(shù)據(jù)庫中的某個表,而不能參、外鍵約束,只能參照本身數(shù)據(jù)庫中的某個表,而不能參照其他數(shù)據(jù)庫中的表。跨數(shù)據(jù)庫的參照只能通過觸發(fā)器來照其他數(shù)據(jù)庫中的表??鐢?shù)據(jù)庫的參照只能通過觸發(fā)器來實現(xiàn)。實現(xiàn)。 create table

16、宿舍表 (學(xué)號 char(20) null constraint fk_ssjb foreign key references 基本情況表(學(xué)號), 宿舍號 char(20) not null primary key, 宿舍名 char(20) null constraint ck_ssm check(宿舍名=1棟 or 宿舍名=2棟), 管理員 char(20) constraint mrgly default 劉月明)使用使用T-SQL語句來創(chuàng)建、刪除語句來創(chuàng)建、刪除FOREIGN KEY約束約束創(chuàng)建表的同時創(chuàng)建外鍵約束Create table 表名(.列名 數(shù)據(jù)類型 是否為空 const

17、raint 約束名 Foreign key References 主表(列名),) 已創(chuàng)建好的表中添加外鍵約束 Alter table 表名 Add Constraint 約束名稱foreign key(列名) References 主表(列名)Use 手機(jī)Create table 訂單表 (訂單編號varchar(10)not null primary key, 客戶編號 varchar(10) not null constraint gg foreign key References 客戶表 (客戶編號), 商品編號 varchar(10) not null , 訂購數(shù)量 int, 銷售額

18、 money, 購物時間 smalldatetime) 5.2.4 UNIQUE約束 UNIQUE約束用于表中的非主鍵列,UNIQUE約束保證一列或者多列的數(shù)據(jù)完整性,確保這些列不會輸入重復(fù)的值,即沒有相同的兩列值。 例如,客戶表中客戶編號列為主鍵,但是其中還包括證件號碼列,由于所有證件號碼不可能出現(xiàn)重復(fù),所以可以在此列上建立UNIQUE約束,確保不會輸入重復(fù)的證件號碼。與PRIMARY KEY約束類似,UNIQUE約束也強(qiáng)制惟一性,為表中的一列或多列提供實體完整性,且每個UNIQUE約束要建立一個惟一索引;UNIQUE約束和PRIMARY KEY約束主要區(qū)別如下: 1)UNIQUE約束用于非

19、主鍵的一列或者多列組合; 2)一個表可以定義多個UNIQUE約束,而只能定義 一個PRIMARY KEY約束; 3)UNIQUE約束可以用于定義允許空值的列,而 PRIMARY KEY約束則不能用于允許空值的列。 Use 手機(jī)Create table 客戶表 ( 客戶編號 varchar(10) not null, 客戶姓名 varchar(10) not null, 客戶密碼 char(6) not null, 性別 char(2) not null, 證件號 varchar(18 ) null Constraint wy unqiue, 月收入 smallmoney null ) alte

20、r table 工資addconstraint fk_職工_工資 foreign key(職工號) references 職工(職工號) Create table 宿舍分配表 (職工號 varchar(20) not null primary key constraint xx foreign key references 職工(職工號), 姓名 char(20) null, 寢室號 char(20) null)Unique約束 確保數(shù)據(jù)庫在的元組在非主鍵列上取值不同。 比如說一個學(xué)生信息表,學(xué)號是主鍵,假設(shè)在表里還有一個身份證號的列,該列不作為主鍵,但它的取值也不能相同,所以,可以用uniq

21、ue約束保證輸入數(shù)據(jù)庫中的身份證號是不同的。用SQL創(chuàng)建UNIQUE約束 1.創(chuàng)建表時加約束 Create table 表名 (, 列名 數(shù)據(jù)類型 null Constraint 約束名 unique, ) 2.往已經(jīng)創(chuàng)建好的表中添加 Alter table 表名 Add Constraint 約束名 Unique(列名)5.2.5 DEFAULT約束 如對表中的某列定義了如對表中的某列定義了default約束后約束后,用戶在插入新的數(shù)用戶在插入新的數(shù)據(jù)行時據(jù)行時,如果沒有為該列制定數(shù)據(jù)如果沒有為該列制定數(shù)據(jù),那么系統(tǒng)將默認(rèn)值賦予該那么系統(tǒng)將默認(rèn)值賦予該列列,默認(rèn)值可以為空值默認(rèn)值可以為空值(

22、null) 方法一、使用方法一、使用SQL Server企業(yè)管理器定義、刪除企業(yè)管理器定義、刪除DEFAULT約約束束1、使用、使用SQL Server企業(yè)管理器定義企業(yè)管理器定義DEFAULT約束約束 【例例16】為客戶表中的性別列定義為客戶表中的性別列定義default約束,使約束,使其性別的默認(rèn)值為其性別的默認(rèn)值為“男男” 用Sql語言創(chuàng)建默認(rèn)約束1.創(chuàng)建表的同時添加Create table 表名(列名 數(shù)據(jù)類型 nullConstraint 約束名 Default 值,)2.創(chuàng)建完了后添加Alter table 表名AddConstraint 約束名 default 值 for 列名創(chuàng)

23、建宿舍分配表,并將宿舍號默認(rèn)成101create table 宿舍分配(職工號varchar(20) not null,姓名char(20) null,宿舍號 char(20) null constraint mr_宿舍號default 101)將職工表的籍貫列默認(rèn)成成都 alter table 職工 add constraint mr_籍貫 default 成都 for 籍貫練習(xí) 1.創(chuàng)建表 :學(xué)生(學(xué)號,姓名,性別,專業(yè),身份證號)且創(chuàng)建的同時將學(xué)號設(shè)置主鍵約束,身份證號設(shè)定unique約束 2.創(chuàng)建表:成績(學(xué)號,姓名,成績,獎學(xué)金)創(chuàng)建的同時將獎學(xué)金設(shè)置默認(rèn)為: 無 3.以成績?yōu)閺谋恚?/p>

24、學(xué)生為主表,為成績創(chuàng)建一個外鍵約束cc 4.為成績表中的姓名添加unique約束,名稱為ll 5.為學(xué)生表中的“專業(yè)”添加默認(rèn)約束ff,使專業(yè)默認(rèn)為”計算機(jī)”create table 學(xué)生(學(xué)號char(20) not null constraint pk_xh primary key,姓名char(20) null,性別char(2) null,專業(yè)char(20) null,身份證號char(18) null constraint un_sfzh unique)create table 成績(學(xué)號char(20) not null,姓名char(20) null,成績float null,

25、獎學(xué)金money null constraint de_jxj default 無)alter table 成績addconstraint fk_xh foreign key(學(xué)號) references 學(xué)生(學(xué)號)alter table 成績addconstraint ll unique(專業(yè))alter table 學(xué)生addconstraint ff default 計算機(jī) for 專業(yè)5.3 默認(rèn)與規(guī)則 5.3.1 默認(rèn)默認(rèn) 我們在向數(shù)據(jù)表中輸入數(shù)值時,希望表里面的某些列我們在向數(shù)據(jù)表中輸入數(shù)值時,希望表里面的某些列已經(jīng)具有一些默認(rèn)值,不必用戶一一輸入,或者是用戶現(xiàn)已經(jīng)具有一些默認(rèn)值

26、,不必用戶一一輸入,或者是用戶現(xiàn)在還不準(zhǔn)備輸入但又不想空著。例如,輸入學(xué)生性別的時在還不準(zhǔn)備輸入但又不想空著。例如,輸入學(xué)生性別的時候,先默認(rèn)所有學(xué)生的性別為候,先默認(rèn)所有學(xué)生的性別為“男男”,如果輸入的是個男,如果輸入的是個男生則生則“性別性別”列不必每次輸入了,如果是女生就將列不必每次輸入了,如果是女生就將“男男”改為改為“女女”,這樣大大減少輸入數(shù)據(jù)的工作量。又如輸入,這樣大大減少輸入數(shù)據(jù)的工作量。又如輸入一個班的課程信息,由于全班同學(xué)在一個教室上課,那么一個班的課程信息,由于全班同學(xué)在一個教室上課,那么設(shè)定教室一個默認(rèn)值,則每個同學(xué)的上課教室就不必輸入設(shè)定教室一個默認(rèn)值,則每個同學(xué)的上

27、課教室就不必輸入了。了。 默認(rèn)對象在功能上與默認(rèn)約束是一樣的,但在使用默認(rèn)對象在功能上與默認(rèn)約束是一樣的,但在使用上有所區(qū)別:上有所區(qū)別:默認(rèn)約束是在創(chuàng)建表或者修改表時定義的,默認(rèn)約束是在創(chuàng)建表或者修改表時定義的,嵌入到被定義的表結(jié)構(gòu)中,在刪除表的同時默認(rèn)約束也被嵌入到被定義的表結(jié)構(gòu)中,在刪除表的同時默認(rèn)約束也被刪除;刪除;默認(rèn)對象需要用默認(rèn)對象需要用CREATE DEFAULT 語句進(jìn)行定義,語句進(jìn)行定義,作為一種單獨(dú)存儲的數(shù)據(jù)庫對象,它獨(dú)立于表結(jié)構(gòu)之外作為一種單獨(dú)存儲的數(shù)據(jù)庫對象,它獨(dú)立于表結(jié)構(gòu)之外,默認(rèn)對象的使用必須要通過綁定,刪除表時并不能刪除默默認(rèn)對象的使用必須要通過綁定,刪除表時并

28、不能刪除默認(rèn)對象,而需要使用認(rèn)對象,而需要使用DROP DEFAULT 語句進(jìn)行刪除。語句進(jìn)行刪除。 創(chuàng)建默認(rèn) 格式 :Create default 默認(rèn)名 as 值 例如 create default dd as 男 創(chuàng)建完后,需要綁定在表中的某列,才能真正起到默認(rèn)的作用綁定到表中的某列 格式 :Sp_bindefault 默認(rèn)名,表名.列名 例如 sp_bindefault dd ,職工.性別刪除默認(rèn) 綁定去除 格式:sp_unbindefault 表名.列名 例如 sp_unbindefault 成績.專業(yè) 刪除格式: Drop default 默認(rèn)名 創(chuàng)建默認(rèn) zy ,值是”物流” C

29、reate default zy as 物流 將它綁定到學(xué)生成績表中的專業(yè)列上 Sp_bindfault zy,學(xué)生成績.專業(yè) 刪除默認(rèn) sp_unbindefault 成績.專業(yè) Drop default zy5.3.2 規(guī)則規(guī)則 規(guī)則就是創(chuàng)建一套準(zhǔn)則,并將其結(jié)合到表的規(guī)則就是創(chuàng)建一套準(zhǔn)則,并將其結(jié)合到表的列或用戶自定義數(shù)據(jù)類型上,它的作用類似于列或用戶自定義數(shù)據(jù)類型上,它的作用類似于CHECK約束,添加完之后它會檢查添加的數(shù)據(jù)或約束,添加完之后它會檢查添加的數(shù)據(jù)或者對表所作的修改是否滿足所設(shè)置的條件。者對表所作的修改是否滿足所設(shè)置的條件。 規(guī)則也是一種獨(dú)立的數(shù)據(jù)庫對象,規(guī)則可以規(guī)則也是一種

30、獨(dú)立的數(shù)據(jù)庫對象,規(guī)則可以綁定到一列或者多列上,也可以綁定到用戶自定綁定到一列或者多列上,也可以綁定到用戶自定義數(shù)據(jù)類型上。規(guī)則與其作用的表或用戶自定義義數(shù)據(jù)類型上。規(guī)則與其作用的表或用戶自定義數(shù)據(jù)類型是相互獨(dú)立的,即表或用戶自定義對象數(shù)據(jù)類型是相互獨(dú)立的,即表或用戶自定義對象的刪除、修改不會對與之相連的規(guī)則產(chǎn)生影響。的刪除、修改不會對與之相連的規(guī)則產(chǎn)生影響。 規(guī)則對象在功能上與CHECK約束是一樣的,但在使用上也有區(qū)別: 1、CHECK約束是在創(chuàng)建表或者修改表時定義的,約束是在創(chuàng)建表或者修改表時定義的,嵌入到被定義的表結(jié)構(gòu)中,在刪除表的同時嵌入到被定義的表結(jié)構(gòu)中,在刪除表的同時CHECK約束

31、也被刪除;約束也被刪除; 2、規(guī)則對象需要用、規(guī)則對象需要用CREATE RULE語句進(jìn)行定語句進(jìn)行定義,作為一種單獨(dú)存儲的數(shù)據(jù)庫對象,它獨(dú)立于義,作為一種單獨(dú)存儲的數(shù)據(jù)庫對象,它獨(dú)立于表結(jié)構(gòu)之外,規(guī)則對象的使用必須要通過綁定,表結(jié)構(gòu)之外,規(guī)則對象的使用必須要通過綁定,刪除表時并不能刪除規(guī)則對象,而需要使用刪除表時并不能刪除規(guī)則對象,而需要使用DROPRULE 語句進(jìn)行刪除。語句進(jìn)行刪除。 方法二、使用T-SQL語言CREATE RULE 語句創(chuàng)建規(guī)則語法格式: Create rule 規(guī)則名稱規(guī)則名稱 as 規(guī)則名稱規(guī)則名稱 條件條件表達(dá)式表達(dá)式 【例27】以例26為例,用CREATE RULE 語句創(chuàng)建規(guī)則 Use 手機(jī) Go Create rule sr_gz as sr_gz between 2000 and 3000 2、綁定規(guī)則 與默

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論