国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
SQL Server數(shù)據(jù)完整性

我們在學(xué)習(xí)數(shù)據(jù)庫的過程中,經(jīng)常會聽到兩個概念:數(shù)據(jù)冗余和數(shù)據(jù)完整性。數(shù)據(jù)冗余是指數(shù)據(jù)庫中存在一些重復(fù)的數(shù)據(jù),數(shù)據(jù)完整性是指數(shù)據(jù)庫中的數(shù)據(jù)能夠正確反應(yīng)實際情況,我們說,為了性能著想,數(shù)據(jù)庫中允許有一些數(shù)據(jù)冗余,但是要保持?jǐn)?shù)據(jù)的完整性。


數(shù)據(jù)完整性=可靠性+準(zhǔn)確性,這里我們要清楚以下幾點:


·          數(shù)據(jù)存放在表中


·          數(shù)據(jù)完整性的問題大多是由于設(shè)計引起的


·          創(chuàng)建表的時候,就應(yīng)當(dāng)保證以后數(shù)據(jù)輸入是正確的


       ——錯誤的數(shù)據(jù)、不符合要求的數(shù)據(jù)不允許輸入


 


本質(zhì)而言,保證數(shù)據(jù)的完整性 = 實施完整性約束


 


完整性包括


1.      實體完整性


a)        數(shù)據(jù)行不能存在重復(fù)


2.      域完整性


a)        實現(xiàn)了對輸入到特定列的數(shù)值的限制


3.      引用完整性


a)        要求子表中的相關(guān)項必須在主表中存在


b)        如果建立了主表和子表的關(guān)系,則:


                                       i.              子表中的相關(guān)項目的數(shù)據(jù),在主表中必須存在;


                                     ii.              主表中相關(guān)項的數(shù)據(jù)更改了,則子表對應(yīng)的數(shù)據(jù)項也應(yīng)當(dāng)隨之


                                    iii.                     更改;


                                   iv.              在刪除子表之前,不能夠刪除主表;


4.      自定義完整性


 


實際上,SQL Server創(chuàng)建表的過程是規(guī)定數(shù)據(jù)列的屬性的過程,同時也是實施數(shù)據(jù)完整性(包括實體完整性、引用完整性和域完整性等)保證的過程。創(chuàng)建表包括選擇字段名稱、數(shù)據(jù)類型、定義是否為空、設(shè)置默認(rèn)值、主鍵和外鍵關(guān)系、檢查約束等。表中沒有合適的列作為主鍵,可以創(chuàng)建標(biāo)識列。


 


SQL Server中存在五種約束:


·          約束的目的:確保表中數(shù)據(jù)的完整型


·          常用的約束類型:


         主鍵約束(Primary Key Constraint):要求主鍵列數(shù)據(jù)唯一,并且不允許為空


         唯一約束(Unique Constraint):要求該列唯一,允許為空,但只能出現(xiàn)一個空值。


         檢查約束(Check Constraint):某列取值范圍限制、格式限制等,如有關(guān)年齡的約束


         默認(rèn)約束(Default Constraint):某列的默認(rèn)值,如我們的男性學(xué)員較多,性別默認(rèn)為


         外鍵約束(Foreign Key Constraint):用于兩表間建立關(guān)系,需要指定引用主表的那列


 


添加約束的語法:


ALTER TABLE 表名 ADD CONSTRAINT 約束名  約束類型  具體的約束說明


q       約束名的取名規(guī)則推薦采用:約束類型_約束字段


q       主鍵(Primary Key)約束:如 PK_stuNo


q       唯一(Unique Key)約束:如 UQ_stuID


q       默認(rèn)(Default Key)約束:如 DF_stuAddress


q       檢查(Check Key)約束:如 CK_stuAge


q       外鍵(Foreign Key)約束:如 FK_stuNo


 


下面我們來給前面建立的學(xué)員信息表stuInfo添加約束:


 


/*添加主鍵約束(stuNo作為主鍵)*/


ALTER TABLE stuInfo ADD CONSTRAINT PK_stuNo PRIMARY KEY (stuNo)


/*添加唯一約束(因為每人的身份證號全國唯一)*/


ALTER TABLE stuInfo ADD CONSTRAINT UQ_stuID UNIQUE (stuID)


/*添加默認(rèn)約束(如果地址不填,默認(rèn)為地址不詳*/


ALTER TABLE stuInfo ADD CONSTRAINT DF_stuAddress DEFAULT ('地址不詳') FOR stuAddress


/*添加檢查check約束,要求年齡只能在1540歲之間*/


ALTER TABLE stuInfo ADD CONSTRAINT CK_stuAge CHECK(stuAge BETWEEN 15 AND 40)


/*添加外鍵約束(主表stuInfo從表stuMarks建立關(guān)系,關(guān)聯(lián)字段為stuNo*/


ALTER TABLE stuMarks ADD CONSTRAINT FK_stuNo  FOREIGN KEY(stuNo) REFERENCES stuInfo(stuNo)


GO


 


如果錯誤地添加了約束,我們還可以刪除約束


刪除約束的語法


ALTER TABLE 表名  DROP CONSTRAINT 約束名


例如:刪除stuInfo表中地址默認(rèn)約束


ALTER  TABLE  stuInfo  DROP  CONSTRAINT  DF_stuAddress


 


OK,有了完整性約束,數(shù)據(jù)完整性就有了保障,數(shù)據(jù)庫中的數(shù)據(jù)也就能夠正確地反應(yīng)實際情況了。那我們上面又提到了一個主從表的概念,有人可能不太明白,下面文章我們再來介紹一下。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
MySQL數(shù)據(jù)庫:數(shù)據(jù)完整性及約束的應(yīng)用
數(shù)據(jù)庫(一)數(shù)據(jù)庫優(yōu)點,常用數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)庫,設(shè)計創(chuàng)建數(shù)據(jù)表,數(shù)據(jù)類型,數(shù)據(jù)表操作,完整性約束(非空,主鍵,唯一,默認(rèn),外鍵)
mysql中常見約束
Sql server 2005學(xué)習(xí)筆記之約束
oracle學(xué)習(xí)筆記之約束
Mysql基礎(chǔ)02-約束
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服