所谓数据库约束,就是规定表的字段取值的规则。今天主要介绍唯一约束、非空约束、主键约束、外键约束。
1. 创建数据库
create database mytest;
use mytest;
2. 唯一约束
2.1 创建表时添加约束
create table test
(
name varchar(20) unique
);
insert into test(name) values('aaa');
insert into test(name) vlaues('aaa'); //会报错。
2.2 通过sql语句添加约束
alter table test modify name varchar(20) unique;
3. 非空约束
3.1 创建表时添加约束
create table test
(
id int,
name varchar(20) not null
);
3.2 通过sql语句创建
alter table test modify name varchar(20) not null;
4. 主键约束
主键要保证非空而且还得是唯一。所以主键约束是非空约束和唯一约束的联合体。
4.1 创建表时添加约束
create table test
(
id int primary key auto_increment,
name varchar(20)
);
4.2 通过sql语句创建
alter table test modify id int primary key auto_increment;
5. 外键约束
当某一个表需要引用另一个表主键产生参照完整性时,需要对改表添加外键约束。
主键和外键是一种不求同生,但求同死的关系。
5.1 创建表时添加约束
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 not null,
constraint student_classid_fk foreign key(classid) references class(id)
); -- 学生表
删除外键约束:
alter table student drop foreign key student_classid_fk ;
5.2 通过代码创建
alter table student add constraint student_classid_fk foreign key(classid) references class(id);
以上就是mysql中常见约束