sql 約束用於規定表中的資料規則。
如果存在違反約束的資料行為,行為會被約束終止。
約束可以在建立表時規定(通過 create table 語句),或者在表建立之後規定(通過 alter table 語句)
建立表的時候新增約束:
create table
table_name
(column_name1 data_type
(size
) constraint_name
,column_name2 data_type
(size
) constraint_name
,column_name3 data_type
(size
) constraint_name
,....
);
create table sturesults
( sr_no int primary key identity(1,1),
sr_studentno int,
sr_subjectno int,
sr_score int check (sr_score>=0 and sr_score<=120)
)
已存在表的時候且還沒有存在資料的時候新增約束:
alter table tablename
add constraint_name
alter table sturesults
add constraint fk_studentno
foreign key (sr_studentno) references student (studentno)
已存在表的時候且存在資料的時候新增約束(因為原始資料與新約束可能會發生衝突):
alter table tablename with nocheck add
constraint_name
例子:在已有資料的表中新增約束:
因為年齡之前已經有資料不滿足約束,所以會衝突,使用with nocheck 後,可以新增。
sql語句新增約束
主鍵約束 primary key constraint 要求主鍵列的資料唯一,並且不允許為空。唯一約束 unique constraint 要求該列唯一,允許為空,但只能出現乙個空值。檢查約束 check constraint 某列取值範圍限制 格式限制等,如有關年齡的約束。預設約束 default...
sql新增約束的限制
sql 12 3 4 5 6 7 8 9 10 新增性別約束 alter table author add constraint ck age check 男 or 女 刪除性別約束 alter table drop constraint ck 如果新增check約束時不希望檢查資料庫內的資料是否符...
SQL新增外來鍵約束
1,sql語句建立表的同時新增外來鍵約束 create table tb userandrole 使用者角色表 id int primary key identity 1,1 userid int not null,使用者id roleid int not null,角色id foreign key...