主頁(yè) > 知識(shí)庫(kù) > SQL Server 創(chuàng)建約束圖解(唯一 主鍵)

SQL Server 創(chuàng)建約束圖解(唯一 主鍵)

熱門標(biāo)簽:400電話辦理泰安 電銷需要外呼系統(tǒng)嗎 互聯(lián)網(wǎng)電話外呼系統(tǒng) 安卡拉地圖標(biāo)注app 我要地圖標(biāo)注數(shù)量有限制嗎 家庭農(nóng)場(chǎng)地圖標(biāo)注名稱怎樣起名 零成本地圖標(biāo)注賺錢 電話機(jī)器人怎么代理商 千呼電話機(jī)器人可以試用嗎

SQLServer中有五種約束,Primary Key約束、Foreign Key約束、Unique約束、Default約束和Check約束,今天使用SQL Server2008來(lái)演示下這幾種約束的創(chuàng)建和使用的方法。

什么是主鍵?

在數(shù)據(jù)庫(kù)中,常常不只是一個(gè)表,這些表之間也不是相互獨(dú)立的。不同的表之間需要建立一種關(guān)系,才能將它們的數(shù)據(jù)相互溝通。而在這個(gè)溝通過(guò)程中,就需要表中有一個(gè)字段作為標(biāo)志,不同的記錄對(duì)應(yīng)的字段取值不能相同,也不能是空白的。通過(guò)這個(gè)字段中不同的值可以區(qū)別各條記錄。就像我們區(qū)別不同的人,每個(gè)人都有名字,但它卻不能作為主鍵,因?yàn)槿嗣苋菀壮霈F(xiàn)重復(fù),而身份證號(hào)是每個(gè)人都不同的,所以可以根據(jù)它來(lái)區(qū)別不同的人。數(shù)據(jù)庫(kù)的表中作為主鍵的字段就要像人的身份證號(hào)一樣,必須是每個(gè)記錄的值都不同,這樣才能根據(jù)主鍵的值來(lái)確定不同的記錄。

如果為表指定了 PRIMARY KEY 約束,則 SQL Server 2005 數(shù)據(jù)庫(kù)引擎 將通過(guò)為主鍵列創(chuàng)建唯一索引來(lái)強(qiáng)制數(shù)據(jù)的唯一性。當(dāng)在查詢中使用主鍵時(shí),此索引還可用來(lái)對(duì)數(shù)據(jù)進(jìn)行快速訪問(wèn)。因此,所選的主鍵必須遵守創(chuàng)建唯一索引的規(guī)則。

創(chuàng)建主鍵時(shí),數(shù)據(jù)庫(kù)引擎 會(huì)自動(dòng)創(chuàng)建唯一的索引來(lái)強(qiáng)制實(shí)施 PRIMARY KEY 約束的唯一性要求。如果表中不存在聚集索引或未顯式指定非聚集索引,則將創(chuàng)建唯一的聚集索引以強(qiáng)制實(shí)施 PRIMARY KEY 約束。

唯一性約束
1) 唯一性約束所在的列允許空值,但是主鍵約束所在的列不允許空值。
(2) 可以把唯一性約束放在一個(gè)或者多個(gè)列上,這些列或列的組合必須有唯一的只。但是,唯一性約束所在的列并不是表的主鍵列。
(3) 唯一性約束強(qiáng)制在指定的列上創(chuàng)建一個(gè)唯一性索引。在默認(rèn)情況下,創(chuàng)建唯一性的非聚簇索引,但是,也可以指定所創(chuàng)建的索引是聚簇索引。

主鍵:
1) 用于標(biāo)識(shí)某行而且與之相關(guān).
2) 是不可能(或很難)更新.
3) 不應(yīng)該允許空(NULL).

唯一域/字段:
1) 用于作為訪問(wèn)某行的可選手段.
2) 只要唯一就可以更新.
3) 可以為空(NULLs).

注意唯一和主鍵的區(qū)別,它們都是創(chuàng)建一個(gè)唯一的索引,一個(gè)表格僅含有一個(gè)主鍵約束列,但是,它有可能在其他列中含有許多的唯一約束。

1、Primary Key約束

    在表中常有一列或多列的組合,其值能唯一標(biāo)識(shí)表中的每一行。

    這樣的一列或多列成為表的主鍵(PrimaryKey)。一個(gè)表只能有一個(gè)主鍵,而且主鍵約束中的列不能為空值。只有主鍵列才能被作為其他表的外鍵所創(chuàng)建。

   創(chuàng)建主鍵約束可以右鍵單擊表,選擇設(shè)計(jì)。


 

   選中要?jiǎng)?chuàng)建主鍵的列,然后單擊上面的小鑰匙。


 

   也可以右鍵需要?jiǎng)?chuàng)建主鍵的列,然后單擊小鑰匙。


 

2、Foreign Key約束

    外鍵約束是用來(lái)加強(qiáng)兩個(gè)表(主表和從表)的一列或多列數(shù)據(jù)之間的連接的。創(chuàng)建外鍵約束的順序是先定義主表的主鍵,然后定義從表的外鍵。也就是說(shuō)只有主表的主鍵才能被從表用來(lái)作為外鍵使用,被約束的從表中的列可以不是主鍵,主表限制了從表更新和插入的操作。

   右鍵單擊需要設(shè)置外鍵的列(此時(shí)的表是作為從表在外鍵中出現(xiàn)),選擇關(guān)系。


   接下來(lái)點(diǎn)擊添加-->表和列規(guī)范。


   在主鍵表中選擇主表和主表的主鍵列。


 

   設(shè)置完后保存即可。

 3、Unique約束

    唯一約束確保表中的一列數(shù)據(jù)沒(méi)有相同的值。與主鍵約束類似,唯一約束也強(qiáng)制唯一性,但唯一約束用于非主鍵的一列或者多列的組合,且一個(gè)表可以定義多個(gè)唯一約束。

   右鍵單擊要設(shè)置的列選擇索引/鍵。


   然后單擊添加按鈕。


   選擇需要設(shè)置的列,可以是一列也可以是多列的組合。


   關(guān)閉并保存設(shè)置。

4、Default約束

    若在表中定義了默認(rèn)值約束,用戶在插入新的數(shù)據(jù)行時(shí),如果該行沒(méi)有指定數(shù)據(jù),那么系統(tǒng)將默認(rèn)值賦給該列,如果我們不設(shè)置默認(rèn)值,系統(tǒng)默認(rèn)為NULL。

  以學(xué)生信息表為例,在表設(shè)計(jì)器中,為性別sex列填寫默認(rèn)值男。


5、Check約束

    Check約束通過(guò)邏輯表達(dá)式來(lái)判斷數(shù)據(jù)的有效性,用來(lái)限制輸入一列或多列的值的范圍。在列中更新數(shù)據(jù)時(shí),所要輸入的內(nèi)容必須滿足Check約束的條件,否則將無(wú)法正確輸入。

   以學(xué)生信息表中的sex為例,我們要限制sex列的值只能為男或女。


   關(guān)閉并保存設(shè)計(jì)。

   致此,數(shù)據(jù)庫(kù)中的五種約束情況又復(fù)習(xí)了一遍,約束確保了數(shù)據(jù)庫(kù)中數(shù)據(jù)的完整性,但只有約束是遠(yuǎn)遠(yuǎn)不夠的。

標(biāo)簽:東營(yíng) 濱州 池州 來(lái)賓 黃山 大同 新鄉(xiāng) 文山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQL Server 創(chuàng)建約束圖解(唯一 主鍵)》,本文關(guān)鍵詞  SQL,Server,創(chuàng)建,約束,圖解,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SQL Server 創(chuàng)建約束圖解(唯一 主鍵)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于SQL Server 創(chuàng)建約束圖解(唯一 主鍵)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章