目录
基本概念
主键约束
概念
主键约束相当于 唯一约束 + 非空约束 的组合,主键约束列不允许重复,也不允许出现空值。
每个表最多只允许一个主键,建立主键约束可以在列级别创建,也可以在表级别创建。
当创建主键的约束时,系统默认会在所在的列和列组合上建立对应的唯一索引。
操作
- 单列主键
注释:其中‘constraint 约束名’可以省略
如下,test2插入成功,test1插入失败
- 联合主键
注释:联合主键的值不全部相等就可以插入,且每一列均不能为空
- 添加主键
示例
- 删除主键
- 主键约束与“not null unique”区别:
给某个字段添加主键约束之后,该字段不能重复也不能为空,效果和”not null unique”约束相同,但是本质不同。
主键约束除了可以做到”not null unique”之外,还会默认添加”索引——index”
自增长约束
概念
操作
- 指定初始值
- 区别
用delete from 删除:
用truncate删除(回到默认值1开始):
非空约束
概念
操作
12插入失败,34插入成功
可以通过desc查看是否可以为空
唯一约束
概念
唯一约束是指定table的列或列组合不能重复,保证数据的唯一性。
唯一约束不允许出现重复的值,但是可以为多个null。
同一个表可以有多个唯一约束,多个列组合的约束。
在创建唯一约束时,如果不给唯一约束名称,就默认和列名相同。
唯一约束不仅可以在一个表内创建,而且可以同时多表创建组合唯一约束。
操作
如图,第二句插入失败
如图,插入成功:在mysql中null和任何值都不等,和自己也不等
删除唯一约束
create table if not exists e8
(id int primary key auto_increment,
name varchar(5),
tele int unique);
alter table e8 drop index tele;
insert into e8 values(NULL,'x1',138);
insert into e8 values(NULL,'x2',138);
如果没有设置约束名,那么就是默认的表名
默认约束
概念
操作
零填充约束
概念
约束总结