约束:对表中的数据进行限制,不正确的数据无法调价到表中
举例:当表中约束不能存在“null”值,此时null值不能添加进去。
约束的种类:
一、主键约束
作用:是用来标识数据库中每一条记录,保证每条记录都有一个特定的id值。通常使用整型id设为主键
主键满足不能重复,非空的特性。
关键字:primary key
设置语法:id primary key;
通常和auto_increment一起使用:让主键自增
二、唯一约束
作用:表示某字段的值不能重复
关键字:unique
格式:字段 unique
三、非空约束
作用:表示某字段不能为null值
关键字:not null
一般和default搭配使用,给非null字段设置一个默认值
eg:sex not null default "男";
四、外键约束
作用:一张表的字段的值,受到另一张表的字段的约束
被约束的表叫从表,另一张表叫做主表。
关键字:foreign key
语法:constraint 外键的名称 foreign key(受到约束的外键字段名) references 主表(主键名)
外键级联:
级联操作:当修改和删除主表主键时,外键应该执行对应的操作。
级联关系:
(1)cascade:当更新或He删除主键时,外键也执行更新或者删除操作
(2)setnull:当更新或者删除主键时,外键自动设置为null
(3)no action:当从表中有匹配主表的记录时,不允许对主键进行修改或者删除
(4)restrict:和no action一样
/*
约束:对表中的数据进行限制,不正确的数据无法调价到表中
举例:当表中约束不能存在“null”值,此时null值不能添加进去。
约束的种类:
一、主键约束
作用:是用来标识数据库中每一条记录,保证每条记录都有一个特定的id值。通常使用整型id设为主键
主键满足不能重复,非空的特性。
关键字:primary key
设置语法:id primary key;
通常和auto_increment一起使用:让主键自增
二、唯一约束
作用:表示某字段的值不能重复
关键字:unique
格式:字段 unique
三、非空约束
作用:表示某字段不能为null值
关键字:not null
一般和default搭配使用,给非null字段设置一个默认值
eg:sex not null default "男";
四、外键约束
作用:一张表的字段的值,受到另一张表的字段的约束
被约束的表叫从表,另一张表叫做主表。
关键字:foreign key
语法:constraint 外键的名称 foreign key(受到约束的外键字段名) references 主表(主键名)
外键级联:
级联操作:当修改和删除主表主键时,外键应该执行对应的操作。
级联关系:
(1)cascade:当更新或He删除主键时,外键也执行更新或者删除操作
(2)setnull:当更新或者删除主键时,外键自动设置为null
(3)no action:当从表中有匹配主表的记录时,不允许对主键进行修改或者删除
(4)restrict:和no action一样
*/
#创建一张学生表(id,name,age)将id设置为主键并且自增
create table student(
id int primary key auto_increment, #表示id是主键,并且自增
name varchar(5),
age int
);
desc student;
#往表中添加值,id是主键并且是自动递增,不需要我们手动插入值,在插入值时,可以用null代替
insert into student (id,name,age)VALUES(NULL,"李四",20);
#创建一张员工表(id,name,age) 设置name不能重复,age不能为null, 默认为0
create table emp(
id int PRIMARY key auto_increment,
name varchar(5)UNIQUE,
age int not null DEFAULT 0
);
desc emp;
#此时添加重复的name时,会报错: Duplicate entry '张三' for key 'name'
INSERT into emp(id,name,age)VALUES(null,"张三",18);