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 后,可以添加。