SQL server約束

來源:互聯網
上載者:User

標籤:constrain   關鍵字   關係   之間   建表   不能   table   int   png   

約束的概念:確保在列中輸入有效值並維護表之間的關係。


Primary key約束

功能:primary key(主鍵約束),一個表中只能有一個,不能有空值,不能有重複值.

建立表時定義約束:欄位名 資料類型[長度] primary key

Unique約束
功能:unique(唯一約束), 指定在同一列中的兩行不能有相同的值,只能有一行為空白值。

建立表時定義約束:欄位名 資料類型 unique

Default約束

功能:執行insert語句時將預設值自動插入約束所在的列

建立表時定義約束:欄位名 資料類型 default 預設值
Default 約束注意事項
1、每列只能定義一個default約束。
2、不能用於有identity屬性的列
3、如果定義的預設值長於其對應欄位的允許長度,那麼輸入到表中的預設值將被截斷。
4、有default約束的欄位,可插入其他的值,若不插入, 則以預設值為紀錄值,且後面建立的預設約束對已
經存在的資料沒有影響.

Check約束
功能:check(檢查約束),每次執行Insert/update語句時,該約束要校正資料的合法性。

建立表時定義約束:欄位名 資料類型 check(條件)

Check約束注意事項
1、一個表中可以定義多個檢查約束,但每個欄位只 能定義一個檢查約束。
2、當執行insert語句或者update語句時,檢查約束 將驗證資料。
3 、如果對已經有資料的表添加約束,可以用with nocheck避免對以前的資料做檢查.

Foreign key 約束

功能:確保主關鍵字(主表中)和外關鍵字(輔表中)的關係。
建立表時定義約束:欄位名 資料類型 foreign key(欄位名) references 表名(欄位名)
注意:foreign Key子句中指定的列數和資料類型必須和在references子句中的列數和資料類型匹配。且關聯
的表的欄位必須設定為主鍵.

修改約束
修改表時添加約束
alter table 表名
add constraint 約束名 primary key(欄位名) –-主鍵
add constraint 約束名 unique (欄位名) --唯一
add constraint 約束名 default(預設值) for 欄位名 –預設
add constraint 約束名 check(條件) –檢查
add constraint 約束名 foreign key(欄位名) references 主鍵表(參照欄位名) --外鍵
刪除約束
文法:
alter table 表名 drop 約束名


【例】 刪除 xs表的pk_xs約束。
alter table xs drop constraint pk_xs


注意:
1.要刪除被約束的列,必須先刪除約束
2.存在外鍵約束時,要刪除主健,必須先刪除對應的外鍵

 

SQL server約束

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.