🙋 哈喽大家好,本次是MySQL数据库原理系列第七期
⭐本期是MySQL的表的约束——唯一约束、主键约束
🏆系列专栏:MySQL数据库
😄笔者还是前端的菜鸟,还请大家多多指教呀~
👍欢迎大佬指正,一起学习,一起加油!
前言
本期学习唯一约束、主键约束噢~
唯一约束
定义
唯一约束用于保证数据表中字段的唯一性,即表中字段的值不能重复出现。唯一约束是通过unique定义的。语法如下:
#列级约束 字段名 数据类型 unique; #表级约束 unique(字段名1,字段名2…);
列级约束定义在一个列上,只对该列起约束作用。
表级约束是独立于列的定义,可以应用在一个表的多个列上。
插入数据
如下,我们创建my_unique1和my_unique2两个表来进行测试,为两个表分别添加列级约束和表级约束,然后查看表的结构,会发现两个表的结构是相同的。
当表级约束仅建立在一个字段上时,其作用效果与列级效果相同。
由以下结果我们可以发现,添加唯一约束后,插入重复记录会失败。
添加和删除唯一约束
若为一个现有的表添加或删除唯一约束,无法通过修改字段属性的方式操作,而是按照索引的方式来操作。
创建复合唯一约束
在表级唯一性约束创建时,unique()的字段列表中,可以添加多个字段,组成复合唯一键,特点是只有多个字段的值相同时才视为重复记录。
主键约束
定义
在MySQL中,为了快速查找表中的某条信息,可以通过设置主键实现。主键可以唯一标识表中的记录。主键约束通过primary key 定义,它相当于唯一约束和非空约束的组合,要求被约束字段不允许重复,也不允许出现null值。
每个表中最多只允许含有一个主键
主键约束的创建分为列级和表级,语法如下:
列级约束: 字段名 数据类型 primary key 表级约束: primary key(字段名1,字段名2,…)
表级约束的字段若只有一个,则为单字段主键与列级约束添加的效果相同;若有多个,则为复合主键,复合主键需要用多个字段来确定一条记录的唯一性,类似于复合唯一键。
测试
我们创建一个表进行测试,为id添加主键约束,查看表结构,由图可以看出,id字段的key列为PRI,表示该字段为主键,同时,id字段的null列为NO,表示该字段不能为NULL。
插入数据
插入NULL时,会插入失败,提示id字段不能为NULL
插入重复值也会失败,提示”1“已经存在主键。
删除主键约束
由下图我们可以发现,删除主键约束后,非空约束并没有删除,如果需要删除非空约束,则需要使用modify。
添加主键约束
总结
以上就是今天的学习内容啦~
如果有兴趣的话可以订阅专栏,持续更新呢~
咱们下期再见~