唯一約束 : 為了設定唯一,保證資料唯一
使用文法:
alter table 表名
add
constraint UQ_表名_欄位名 unique(欄位);
唯一約束與主鍵約束的唯一區別:
主鍵定位了表,一張表中只允許有一個主鍵,但是可以有多個唯一約束。
主鍵不允許為空白,但是位於唯一約束可以為空白。(空也只能都有一個)
重名的時候可以加上中括弧括起來,在表格中不能有兩個null。
通過SSMS添加唯一約束:
設計表 -> 右鍵唯一鍵 -> 添加 -> 右邊更改名字 -> 設定欄位
預設約束(defalut)
有些時候需要有預設值
兩個情形:使用者的插入資料的時間。
另外一個情形:虛刪除。即使有日誌,也不可能恢複日誌
alter table 表名
add
constraint DF_表名_欄位名 default(值) for 欄位;
沒有bool類型,要寫bit
在添加資料的時候,會出現一個驚嘆號,則選中改行,執行就會添加到表中。
MMSS:
在設計表中選中欄位,在屬性選項卡中找到預設值綁定,輸入資料,就可以了。
檢查約束(check)
一個人的性別,一個人的年齡都可以設定檢查約束。
用來限定輸入的資料檢查是否符合某些規則。
T-sql
alter talbe 表名
add
constraint CK_表名_欄位名 check(運算式)
例如對年齡的約束為0到150歲之間,stuAge>=0and stuAge<=150 or stuAge is null
外鍵約束:
串連兩張表的關係;關係型資料庫是因為有表這個概念。
而兩張表之間的關係式純粹的關係:
關係是兩個表之間的關係。具有外鍵的就是外鍵表
關係式建立在兩張表之間的。
外鍵約束的用處:用來限定插入資料和刪除資料的約束的時候
對於一些不注重資訊安全的公司來說不用太注意主外鍵的關係
如何建立主外鍵關係:
alter table 外鍵表
add
constraint FK_外鍵表_主鍵表_欄位 foreign key(外鍵表中的欄位) references 主鍵表名(主鍵表中的欄位)
刪除約束:alter table 表名 drop 約束名