Sqlserver中所有約束的型別,建立、修改與刪除

yinghualeihenmei發表於2024-03-14

1、 https://blog.51cto.com/u_15738244/5535432

2、 https://blog.csdn.net/realoser/article/details/121496126

資料庫所有的約束:

​ ​一、主鍵約束(primary key)​​
​ ​二、外來鍵約束(foreign key)​​
​ ​三、檢查約束(check)​​
​ ​四、非空約束(not null)​​
​ ​五、唯一性約束(unique)​​
​ ​六、預設值約束(default)

建立、修改與刪除:

1. 非空約束 Not Null

create table dbo.not_null
(
ID int not null,
Name varchar(10) not null
)

2. 預設約束 default

① 建立表 default 約束

create table dbo.default_table -- 建立班級資訊表
(
ClassId int not null, -- 班級號不為空
Dept varchar(10) default('軟工'), -- 所在系部預設為“軟工”
ClassRenshu int default(0) -- 班級人數預設為 0
)


② 修改表 default 約束

alter table dbo.default_table
add constraint df_ClassId default(1001) for ClassId -- constraint 約束關鍵字 給班級號增加預設值 1001 

3. 唯一約束 unique
欄位值取值唯一,允許 NULL 值。主鍵不允許 NULL 值。
① 建立表 unique 約束

create table dbo.unique_table
(
StuID int not null,
sex varchar(10),
StuCard int unique
)

  

② 修改表 unique 約束

alter table dbo.unique_table
add constraint uq_StuID unique(StuID) -- 給 StuID 定義唯一約束

  

4. 檢查約束 check
check 約束檢查輸入的值是否在規定的範圍內
① 建立表 check 約束

create table dbo.check_table
(
StuID int not null,
Score numeric check(Score>=0 and Score<=100), -- numeric 數字型,int 整數型 |check(Score between 0 and 100)
Setdate date
)

 

② 修改表 check 約束

alter table dbo.check_table
add constraint ch_Setdate check(Setdate between '2001-1-1' and '2002-1-1')
-- add constraint ch_Setdate check(Setdate>='2001-1-1' and Setdate<='2002-1-1')

  

5. 主鍵約束 Primary Key
① 建立表 Primary Key 約束

create table dbo.Primary_Key
(
StuID int primary key not null,
StuName varchar(10)
)

 

複合主鍵

create table dbo.Primary_Key2
(
StuID int not null,
CourseID int not null,
Score numeric not null,
constraint pk_StuID_CourseID primary key(StuID,CourseID)
)

 

② 修改表 Primary Key 約束

alter table dbo.Primary_Key
add constraint pk_StuID primary key(StuID)

 

6. 外來鍵約束 Foreign Key
① 建立表 Foreign Key 約束

create table Foreign_Key
(
StuID int primary key not null,
StuName varchar(10),
Stu_No varchar(12) foreign key references my.Tb_Stu_Info(Stu_No) -- references 連線到某個表的某個主鍵
)

  

② 修改表 Foreign Key 約束

alter table Foreign_Key
add constraint fk_Stuno foreign key(Stu_No) references my.Tb_Stu_Info(Stu_No)

  

7. 刪除約束

alter table Foreign_Key
drop constraint fk_Stuno

  

相關文章