数据的约束
1. 简介
constrant约束是对表中数据的一种限制,保证数据的完整性和有效性
2. 约束的分类
有五种约束
主键约束 primary key 用来唯一标识表中的每一条记录,保证数据的完整性
唯一约束 unique 不允许出现重复值
检查约束 check 也叫用户自定义约束,判断表中的数据是否符合条件
非空约束 not null 设置某个字段不能为null值,提示:null 不是空值,不是空字符串,不是0
外键约束 foreign key 约束俩表之间的关联关系
补充:如性别只能取男或女,年龄在18~30之间
3. 添加约束
方式一:在创建表时添加约束 约束没有名称
create tabel student --学生表
(id int primary key,
name varchar(10) not null,
age int check(age>=18 and age<=30),
sex varchar(8) not null check(sex='male' or sex='fmale'),
ID card varchar(18) unique,
class_id int,
foreign key (class_id reference class(c_id))
);
create table class --班级表
(
c_id int primary key,
c_name varchar() not null,
C_info varvhar(100)
);
查看所有信息约束:
show create table 表名;
为约束指定名称
create table student
(
id int,
name varchar(20) not null,
age int,
sex varchar(10),
class_id int ,
constraint ck_id primary key(id),
constraint ck_age check(age>=18 and age<=30),
constraint ck_sex check(sex in('male','female')),
constraint up_ifcarf upique(id card),
constraint fk_class_id foreign key (class_id) vefevences class c_id);
4. 删除约束:
语句
删除主键约束:alter table 表名 drop primary key;
删除外键约束:alter table 表名 drop foreign key 约束名称;
删除唯一索引约束:alter table 表名 index 约束名称;
删除非空约束:alter table 表名 modify 列名 数据类型 null;
注意事项:
创建表时必须先创建父表再创建子表
删除表时先删除子表再删除父表
可以创建表时指定级联删除,当主表数据被删除时将自动删除子表中的相关数据