约束作用: 限制数据的插入和删除
主键约束
知识点:
主键约束关键词: primary key
主键约束特点: 限制主键键入的数据不能为空, 不能重复
建表的时候添加主键约束: create table 表名(主键名 主键类型 primary key, 其他字段...);
注意: 一个表中只能有一个主键
示例:
# 1.主键约束
# 特点: 数据不能为空不能重复
# 添加主键约束方式1: 先有表,再单独添加(了解)
alter table stu1 add primary key (id); # 报错,因为stu1中有重复数据以及空数据
truncate stu1; # 清除数据
alter table stu1 add primary key (id); # 执行成功
desc stu1;
# 添加主键约束方式2: 建表的时候直接添加(建议)
# 创建表
create table stu2(
id int primary key ,
name varchar(100),
age int
);
# 查看表结构
desc stu2;
# 演示主键约束的特点: 限制对应数据不能重复不能为空
insert into stu2(id, name, age) VALUES (1,'张三',18); # 成功
insert into stu2(id, name, age) VALUES (1,'张三',18); # 报错,因为数据重复
insert into stu2(id, name, age) VALUES (2,'李四',28); # 成功
insert into stu2(id, name, age) VALUES (null,'王五',38); # 报错,因为数据是null
insert into stu2(id, name, age) VALUES (0,'王五',38); # 成功,id就是0
# 演示如何删除主键
alter table stu1 drop primary key;
# 查看表结构
desc stu1;
# 注意: 删除主键默认只删除了唯一约束,非空约束依然存在
# 如何删除非空约束? 使用change
alter table stu1 change id id int;
主键自增
自增关键字: auto_increment
自增特点: 默认从1 开始,每次自动加1
注意: 如果插入数据的时候制定了 主键字段, 可以使用 null 或者 0 展位表示自动使用自增
建表的时候添加主键自增约束: create table 表名(主键名 主键类型 primary key auto_increment , 其他字段...);
非空约束
非空约束关键字: not null
非空约束特点: 限制对应数据不能为空null
建表的时候添加非空约束: create table 表名(主键名 主键类型 primary key ,字段名 字段类型 not null , 其他字段...);
注意: 一个表中可以有多个非空约束
唯一约束
唯一约束关键字: unique
唯一约束特点: 限制对应的数据不能重复
建表的时候添加唯一约束: create table 表名(主键名 主键类型 primary key ,字段名 字段类型 unique, 其他字段...);
注意: 一个表中可以有多个唯一约束
默认约束
默认约束关键字: default
默认约束特点: 可以提前给字段设置默认值
建表的时候添加默认约束: create table 表名(主键名 主键类型 primary key ,字段名 字段类型 default 默认值, 其他字段...);
注意: 一个表中可以有多个默认约束