最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

第五章SQLServer 2012數(shù)據(jù)完整性

2019-10-14 23:51 作者:游戲理想國  | 我要投稿

上一張章介紹了數(shù)據(jù)庫的基本操作,對于數(shù)據(jù)的添加、刪除、修改操作都可能對數(shù)據(jù)庫中的數(shù)據(jù)造成破壞或出現(xiàn)相關(guān)數(shù)據(jù)不一致的現(xiàn)象。要保證數(shù)據(jù)的正確無誤和相關(guān)數(shù)據(jù)的一致性,除了認真地進行操作外,更重要的時數(shù)據(jù)庫系統(tǒng)本身需要提供維護機制。


一、概念:

數(shù)據(jù)完整性是指數(shù)據(jù)的精確性,和可靠性。它是防止數(shù)據(jù)庫中存在不符合語義規(guī)定的數(shù)據(jù)。“學(xué)生”表中有 ’學(xué)號‘,’姓名’,’性別’,’班級代碼’,等等。在這張表中都應(yīng)該有唯一的學(xué)號,不能有兩個或多個學(xué)生的學(xué)號相同;在’性別’ 字段里數(shù)據(jù)只能為’男’ 或‘女’ 不可能有其它數(shù)據(jù)。


完整的數(shù)據(jù)類型分四類:實體完整性、域完整性、參照完整性、用戶定義的完整性。

1、實體完整性

實體完整性,規(guī)定表中的每一行在表中是唯一的實體。也可以這樣說,在表中不可能存在完全相同的記錄,主鍵的存在保證了任何記錄都不重復(fù)的。

2、域完整性

域完整性是指數(shù)據(jù)表中的字段必須滿足某種特定的數(shù)據(jù)類型或約束。其中約束又包括取值范圍、精度等規(guī)定。

3、參照完整性

參照完整性是指兩個表的主鍵和外鍵的數(shù)據(jù)應(yīng)對應(yīng)一致。它確保存了主鍵的表中對應(yīng)其它表的外鍵的存在,即保證了表之間數(shù)據(jù)的一致性,防止了數(shù)據(jù)丟失或無意義的數(shù)據(jù)。禁止在從表中插入包含主表中不存在的關(guān)鍵字的數(shù)據(jù)行。

4、用戶定義的完整性

不同關(guān)系數(shù)據(jù)庫系統(tǒng)根據(jù)其應(yīng)用環(huán)境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性針對某個特定關(guān)系數(shù)據(jù)庫的約束條件,它反映了某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。


二、約束的類型

約束就是一種強制性的規(guī)定,在SQLSERVER 2005中提供的約整是通過定義字段的取值規(guī)則來維護數(shù)據(jù)完整性的。在SQLSERVER 中支持6類約束:NOTNULL(非空)約束、CHECK(檢查約束)、UNIQUE(唯一束)、PRIMARYKEY (主鍵約束)、FOREIGNKEY (外鍵約束)和DEFAULT(默認約束)

三、約束的創(chuàng)建

約束可以在創(chuàng)建表的同時創(chuàng)建,也可以在已有的表上創(chuàng)建。通常,約束可可以在對象資源管理器中創(chuàng)建,也可以在查詢分析中中使用SQL命令創(chuàng)建。

1、創(chuàng)建主鍵約束

2、創(chuàng)建外鍵約束


3、創(chuàng)建唯一約束

在一張數(shù)據(jù)表中,有時候除主鍵需要具有唯一性,還有某他字段也需要具有唯一性。例如,在’系部’ 表中,主鍵為 ‘系部代碼’,但是另外一個字段‘系部名稱’雖然不是主鍵,但也需要保證它的唯一性,這時就需要創(chuàng)建表中的唯一約束。

3.1使用對象資源管理器創(chuàng)建唯一約束

(1)在“對像資源管理器”窗口中,右擊需要設(shè)置唯一約束的表,在彈出的菜單選“修改” 命令,打開“表設(shè)計器”

(2)在“表設(shè)置器”窗口中,右擊需要設(shè)置為唯一約束的字段

在彈出的菜單中選擇“索引/鍵”命令。然后添加唯一約束。



3.2使用SQL語句創(chuàng)建唯一約束

為已經(jīng)存在的表創(chuàng)建唯一約束語法格式如下:

ALTERTABLE 表名

ADDCONSTRAINT 唯一約束的名稱

UNIQUENONCLUSTERED(字段名稱)

4、創(chuàng)建檢查約束

檢查約束對輸入的數(shù)據(jù)的值做檢查,可以限定數(shù)據(jù)輸入,從而維護數(shù)據(jù)的域完整性。


4.1、使用對象資源管理器創(chuàng)建檢查約束

(1)在“對象資源管理器”窗口中,右擊需要設(shè)置唯一約束的表,在彈出的菜單中選“修改”命令。

(2)在”表設(shè)計器”窗口中右擊需要創(chuàng)建檢查約束的字段,選擇“CHECK約束”命令,然后添加栓查約束

4.2、使用SQL 語句創(chuàng)建檢查約束

ALTERTABLE table_name

ADDCONSTRAINT ck_name

CHECK(條件)

5、創(chuàng)建默認約束

在用戶輸入某些數(shù)據(jù)時,希望一些數(shù)據(jù)在沒輸入的情況下被自動輸入,這個時候需要對數(shù)據(jù)表創(chuàng)建默認約束。


5.1、使用對象資源管理器創(chuàng)建檢查約束

(1)在“對象資源管理器”窗口中,右擊需要設(shè)置默認約束的表,在彈出的菜單中選“修改”命令。

(2)選擇需要創(chuàng)建默認約束的字段,在“列屬性”選項卡中的“默認值或綁定”文本框中輸入默認值。

5.2使用SQL語句創(chuàng)建默認約束

ALTER TABLE table_name

ADDCONSTRAINT constraint_name

DEFAULT'默認值' FORcolumn_name


刪除約束

? ALTER TABLE table_name

DROPCONSTRAINT ck_name

6、查看約束的定義

對于創(chuàng)建好的約束,根據(jù)實際需要可以查看其定義信息。SQLServer2005提供了多種查看約束信息的方法,經(jīng)常使用的有利用對象資源管理器和系統(tǒng)儲過程。

利用存儲過程查看約束信息

存儲過程sp_helptext是用來查看約束的一個系統(tǒng)提供的存儲過程,可以通過查詢分析器來查看約束的名稱、創(chuàng)建者、類型和創(chuàng)建時間。其語法格式為:

EXECsp_help 約束名稱

如果該約束有具體的定義和文本,那么可以用sp_helptext來查看其語法格式為:

EXECsp_helptext 約束名稱

三、使用規(guī)則

規(guī)則類似于CHECK約束,是用來限制數(shù)據(jù)字段的輸入值的范圍,實現(xiàn)強制數(shù)據(jù)的域完整性,但是規(guī)則不同于CHECK約束,在前面用到的CHECK約束可以針對一個列應(yīng)用多個CHECK約束,但一個列不能應(yīng)用多個規(guī)則;規(guī)則需要被單獨創(chuàng)建,只需要創(chuàng)建一次,以后可以多次使用,可以應(yīng)用于多個表。

1、創(chuàng)建規(guī)則

規(guī)則作為一種數(shù)據(jù)庫對像,在使用前必須被創(chuàng)建。創(chuàng)建規(guī)則的語法格式如下:

CREATERULE 規(guī)則名

as條件表達式

2、綁定規(guī)則

要使創(chuàng)建好的規(guī)則作用到指定的列或表等,還必須將規(guī)則綁定到列或用戶定義的數(shù)據(jù)類型上。

EXECUTEsp_bindrule ?‘規(guī)則名’,表名.字段名’

3、解綁規(guī)則

如果說字段已經(jīng)不再需要規(guī)則輸入了,那么必須把已綁定了的規(guī)則去掉,這就是解綁規(guī)則,在查詢分析器中,同樣用存儲過程來完成解綁定操作,語法如下:

EXECUTE sp_unbindrule ’表名.字段名’

4、刪除規(guī)則

如果規(guī)則已經(jīng)沒有用了,那么可以將其刪除。在刪除前應(yīng)該先對規(guī)則進行解綁,當(dāng)規(guī)則不再作用于任何表或字段時,可以刪除規(guī)則。

DROPRULE 規(guī)則名稱

5、使用默認

默認(也稱默認值)是一種數(shù)據(jù)對象,它與DEFAULT(默認)約束的作用相同,也是當(dāng)向表中插入數(shù)據(jù)時,沒有為列輸入值時,系統(tǒng)自動給列賦一個“默認值”。與DEFAULT不同的是它類似規(guī)則,通過一次定義,可以多次使用。

1、創(chuàng)建默認:

在查詢分析器中,創(chuàng)建默認對象的語法格式如下:

CREATEDEFAULT default_name

as常量表達式,可以包含常量、內(nèi)置函數(shù)或數(shù)學(xué)表達式

2、綁定默認

默認值創(chuàng)建之后,必須將其綁定到表的字段才能產(chǎn)生作用,在查詢分析器中使用系統(tǒng)存儲過程來完成綁定。其語法格式如下:

EXECUTEsp_bindefault ?‘默認名稱’,’表名.字段名’

3、解綁默認值

類似規(guī)則,對于不需要再利用默認的列,可以利用系統(tǒng)存儲過程對其解綁。其語法格式如下:

EXECUTEsp_bindefault ?’表名.字段名’

4、刪除默認值

當(dāng)默認值不再有存在的必要時,可以將其刪除。在刪除前,必須先對默認值解綁。在查詢分析器中使用DROP語句刪除默認值。其語法格式如下:

DROPDEFAULT 默認名稱


第五章SQLServer 2012數(shù)據(jù)完整性的評論 (共 條)

分享到微博請遵守國家法律
通海县| 乳山市| 沙河市| 深圳市| 封开县| 永安市| 丰镇市| 谢通门县| 治多县| 洛浦县| 天水市| 陇西县| 同仁县| 普格县| 韶山市| 台东县| 铜川市| 北海市| 文化| 商水县| 大港区| 西华县| 谷城县| 正宁县| 丽江市| 内黄县| 久治县| 汝南县| 乃东县| 莱芜市| 如皋市| 堆龙德庆县| 西畴县| 安徽省| 南投县| 德州市| 南通市| 历史| 南溪县| 晋州市| 扎赉特旗|