mysql建表中的约束
2020-03-12 本文已影响0人
my木子
mysql建表中的约束
1. 主键约束:它能够唯一确定一张表中的一条记录,增加主键约束之后,就可以使得字段不重复而且不为空
create table info(
id int primary key,
name char(20),
);
// 添加 info 数据表主键
alter table info add primary key(id);
// 修改 info 数据表主键
alter table info modify id int primary key;
// 删除 info 数据表主键
alter table info drop primary key;
2. 联合主键:主键值加起来不重复
create table info(
id int,
name char(20),
gender char(2),
primary key(id,name)
);
3.自增约束:无需传主键值,id 自动增加
create table info(
id int primary key auto_increment,
name char(20)
);
4.唯一约束:约束修饰的字段的值不可重复
create table info(
id int,
name char(20),
unique(name)
);
create table info(
id int,
name char(20) unique
);
create table info(
id int,
name char(20),
unique(id,name)
);
// 删除 info 表中的唯一约束
alter table info drop index name
// 添加 info 表中的唯一约束
alter table info modify unique name varchar(20)
5.非空约束:修饰的字段不能为空 null
create table info(
id int,
name char(20) no null
);
6.默认约束:没传值的时候默认赋值
create table info(
id int,
name char(20) default '张三'
);
7.外键约束:涉及两个表 父表子表
- 主表中没有的数据值,在副表中是不可以使用的
- 主表中的记录被副表引用,是不可以被删除的
// 班级
create table classes(
id int primary key,
name char(20)
);
// 学生表
// class_id 必须来自classes 表中的 id
create table students(
id int primary key,
name char(20),
class_id int,
foreign key(class_id) references classes(id)
);