什么是约束?
约束是数据库保证数据正确性和完整性的方法
- 实体完整性:例如每张表都有一个要制定的字段。
- 区域完整性:针对表中的某个字段进行特殊化限制
- 参照完整性:表与表之间的一种特殊化关联限制
约束类型(六种):
- 主键约束(primary key):确定表中的标识列(主键字段不能为空,必须唯一)标识(确定一个对象的唯一表现)
ALTER TABLE tb_name ADD CONSTRAINT PK_ID --(命名一个主键名称) PRIMARY KEY(colum_name)
- 外键约束(foreign key):确定表与表之间的联系方式(对应关系) 一般情况下通过主表的标识列进行确定,主表(给哪张表添加约束哪张表就是主表,辅助表为从表);
ALTER TABLE 从表名称 ADD CONSTRAINT FK_SID --(命名一个外键名称) --添加外键约束 FOREIGN KEY(StuID) REFERENCES 主表名称(ID)
- 唯一约束(unique):确定这个字段的数据唯一性;
ALTER TABLE 数据表名称 ADD CONSTRAINT QU_Name --(命名一个唯一约束的名称) UNIQUE([Name])
- 非空约束(not null):确定这个字段的数据必须不能为空。
ALTER TABLE 数据表名称 ALTER COLUMN ID INT NOT NULL
- 检查约束(check):设置这个字段的数据特性;
ALTER TABLE 数据表名称 ADD CONSTRAINT CK_SEX --(命名一个检查约束的名称) CHECK(SEX IN('男','女'));--check(age>0 and age<20)
- 默认约束(default):若设置默认约束,在用户插入数据时如果没有指定数据,系统将会使用默认值替换。
ALTER TABLE 表名
ADD CONSTRAINT DF_XXX DEFAULT '男' FOR stusex
如果字段不存在的情况下:ALTER 表名 ADD 字段名 INT DEFAULT(1)
删除约束:
ALTER TABLE NAME
DROP CONSTRAINT CK_NAME--约束名