在SQLServer中,有3種不同類型的約束。
1、實體約束
實體約束是關於行的,比如某一行出現的值就不允許出現在其他行,例如主鍵。
2、域約束
域約束是關於列的,對於所有行,某一列有那些約束,例如CHECK約束。
3、參照完整性約束
如果某列的值必須與其他列的值匹配,那就意味著需要一個參照完整性約束,例如外鍵。
SQL Server中的約束條件
1、默認約束:定義該列未輸入值時應該具有的默認值
SQL-------alter table 表名 add constraint dt_列名 default 默認值 for 列名
2、空值約束:定義該列是否允許為空值
SQL-------定義表的時候在對應列列數據類型後面添加not null
3、檢查約束:又叫check約束,用來限制列的取值,它根據定義的邏輯表達式來強制域的完整性
SQL-------alter table 表名 add constraint ck_列名 check(邏輯表達式)
4、唯一約束:確保在非主鍵列不輸入重復值
SQL-------alter table 表名 add constraint uq_列名 unique[clustered | nonclustered](列名)
5、外鍵約束:用於建立兩個表數據之間連接的一列或多列
SQL-------alter table 表名 add constraint fk_列名 foreign key(列名) references 另一表名(列名)
6、主鍵約束:用來惟一地標識表中的每一行
SQL-------alter table 表名 add constraint pk_列名 primary key(列名)
新增列:alter table 表名 add 新列名 數據類型
刪除列:alter table 表名 drop column 列名
刪除約束:alter table 表名 drop constraint 約束名
修改列數據類型:alter table 表名 alter column 列名 新數據類型
修改列名需要調用存儲過程sp_rename