数据库中的约束分为好多种。
- 主键约束
- 自增约束
- 唯一约束
- 非空约束
- 默认约束
- 外键约束
主键约束
能够唯一的确定一张表中的某个记录,我们通过给某个字段添加约束,就使得该字段不为空,不重复。
create teble student(
id int primary key; //primary key是主键关键字
name varchar(20)
);
我们在使用insert向该表中插入元素时,第一个参数值不能重复,同时也不能为空。
//联合主键:只要两个字段加起来不重复就可以,
create teble student2(
id int ;
name varchar(20)
primary key(id,name);//两个字段都为主键
);
insert into student values(1,'xiaobei');
insert into student values(2,'xiaobei'); //可以插入成功,因为两个组
//件加起来没重复,但是任何一个主键都不能为空
当我们在创建表的时候,忘记加主键约束怎么办,或者我们主键添加错误,想删除怎么办?
- 外部增加主键
alter table 数据表名称 add primary key(主键参数);
- 删除主键
alter table 数据表名称 drop primary key;
- 修改主键
alter table 数据表名称 modify 目标字段 字段类型 primary key;
自增约束
auto_increment
自增关键字,用于管控字段,使得其自动增长。
create table student3(
id int primary key auto_increment;
name varchar(20);
);
insert into student3 (name) values('xiaobei');
由于name不是主键约束,所以可以插入多个相同的值,其中id自增。
唯一约束
约束字段的值不能重复。
- 创建表的时候直接添加。
同时,唯一约束也可以写成组合约束,组合在一起只要不唯一就可以。 - 在表外添加
alter table 数据表名称 add unique(字段);
alter table 数据表名称 madify 字段 字段类型 unique;
我们可以试试,看唯一约束的效果怎么样,是不是唯一的呢?
插入失败!
- 删除唯一约束
alter table 数据表名称 drop index 唯一约束字段;
非空约束
约束一个字段不能为空。
- 创建时定义
字段后面 not null
默认约束
当我们插入字段的时候,如果没有传值,则使用默认约束。
在字段后面加上default 默认数值表示该值为默认约束。
注意:当我们传入值,就不会使用默认值
外键约束
外键约束涉及两个表,一个是主表,一个是副表。
foreign key(副键) references 主表名称(主键);
- 主表:
- 副表:
副表依赖主表,需要在主表中将副表依赖的字段设置为主键。
我们在class表(主表)中插入一些元素信息。
student副表插入信息。
插入失败。