SQL 新增約束

2021-08-19 15:21:39 字數 1342 閱讀 2846

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...