7.MySQL数据库中的约束

1. not null

创建表的时候在对应变量类型后面加上“not null”字样,这样在添加这一变量的时候,就不能为空了。

create table student(
id int not null,
name varchar(20),
score decimal(3,1)
);

在这里插入图片描述
如果在这一列中插入null,就会报错
在这里插入图片描述

2. unique

创建表的时候在对应变量类型后面加上“unique”字样,表示该列的所有行是不能重复的,当插入重复数据的时候就会报错。

create table student(
id int unique,
name varchar(20),
score decimal(3,1)
);

在这里插入图片描述

3. default

给列指定默认值

create table student(
id int not null,
name varchar(20) default ‘unknown’
);

在这里插入图片描述

4. primary key

主键约束,等价于“not null + unique”

create table student(
id int primary key,
name varchar(20),
score decimal(3,1)
);
在这里插入图片描述
一般建议,创建每张表的时候都指定主键

5. auto_increment

人工无法保证插入数据不重复,可以借助“auto_increment”来自动生成。如果表中没有记录,自增就从1开始,如果有记录了,自增从上一条记录往下增。
在这里插入图片描述

插入数据时:
在这里插入图片描述
如果把中间的某个数据删了,再插入元素时,刚才删除的那个自增主键的值不会重复利用。

6. foreign key

外键,涉及到两张表之间的关联关系

建立两个表

create table class (id int primary key auto_increment,name varchar(20));

create table student (id int primary key auto_increment,name varchar(20),classId int,foreign key(classId) references class(id));

插入数据:
在这里插入图片描述
查看两个表数据
在这里插入图片描述
如果插入一个超过四个班级的班级,那么就会报错
在这里插入图片描述

使用外键,会对插入操作的效率产生一定的影响,同时外键约束也会影响表的删除。以上两个表中,class表被其他表依赖着,就无法被删除。

猜你喜欢

转载自blog.csdn.net/qq_45136189/article/details/113925206