暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

第32讲:MySQL唯一约束和主键约束

何先振 2023-11-15
394

以下文章来源于何先振,责编小何


唯一约束



确保数据的唯一性,可以使用SQL语法:unique添加唯一约束


特点:


同一个表可以有多个唯一约束。


唯一约束可以是某一个列的值唯一,也可以多个列组合的值唯一。


唯一约束允许列值为空。


在创建唯一约束的时候,如果不给唯一约束命名,就默认和列名相同。


MySQL会给唯一约束的列默认创建一个唯一索引。


添加方式:


create table时添加约束,一种以列级方式添加,一种以表级方式添加。





添加完,可以查看是否添加成功。





也可以通过MySQL的默认表进行查询唯一约束





添加完一条数据





如果继续添加id重复,就会报错,因为添加了唯一约束。





email字段也不能重复添加。





不过唯一约束可以添加null值,并且可以添加多个不限制重复。





alter table时添加约束:


第一种方式:





注意,如果有重复数据,需要先改成不重复。否则会添加唯一约束不成功。








先把全部工资弄成null,因为唯一约束允许为空。








再执行添加唯一约束,此时没有报错





添加成功。





第二种方式添加唯一约束:


通过modify添加





添加成功





复合唯一约束


多个列可以一起加唯一约束








也可以通过另外一种方式添加





删除唯一约束


添加唯一约束的列上会自动创建唯一索引,要删除唯一约束只能通过删除唯一索引的方式删除。


删除时需要指定删除的索引名,索引名和约束名一样,如果创建唯一约束时未指定名称,如果是单列,就默认和列名相同。如果是组合列,那么就默认第一个列名。


删除唯一索引先查看约束名称





约束名就是唯一索引名,通过唯一索引名进行删除。





此时查看,已经被删除了。





主键约束



主键约束,用来唯一标识表中的一行记录。通过SQL语法:primary key表示。


特点:


主键约束相当于唯一约束+非空约束的组合,主键约束不允许重复,也不允许出现空值。


主键约束对应着表的一列或者多列(复合主键)。


如果是多列组合的复合主键约束,那么这些列都不允许为空值,并且组合的值不允许重复。


MySQL的主键名总是primary


当创建主键约束时,系统默认会在所在的列或组合上建立主键索引,如果可以根据主键查询,查询效率会很高。如果删除主键约束,主键约束对应的主键索引就会自动删除。


需要注意不要修改主键字段的值,因为主键是数据记录的唯一标识,如果修改了主键的值,会破坏数据的完整性。


举栗子:


create table时添加主键约束:


添加方式一,列级主键约束





添加方式二,表级主键约束





添加复合主键





alter table时添加主键约束:


先创建表,没添加主键约束


然后通过alter方式添加







删除主键约束,在实际开发中不会删除主键约束





推荐阅读书籍

点击上方"何先振"关注并选择设为星标
各类IT技术文章不会错过!

文章转载自何先振,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论