7.MySQL数据库中的约束

2022-10-26 15:15:06 浏览数 (3)

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

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

建立两个表

代码语言:javascript复制
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表被其他表依赖着,就无法被删除。

0 人点赞