文章目录

  • 前言
  • 唯一约束
  • 定义
  • 插入数据
  • 添加和删除唯一约束
  • 创建复合唯一约束
  • 主键约束
  • 定义
  • 测试
  • 插入数据
  • 删除主键约束
  • 添加主键约束
  • 在这里插入图片描述
  • 总结



前言

本期学习唯一约束、主键约束噢~


唯一约束

定义

唯一约束用于保证数据表中字段的唯一性,即表中字段的值不能重复出现。唯一约束是通过unique定义的。语法如下:

#列级约束
字段名 数据类型 unique;
#表级约束
unique(字段名1,字段名2…);

列级约束定义在一个列上,只对该列起约束作用。 表级约束是独立于列的定义,可以应用在一个表的多个列上。

插入数据

如下,我们创建my_unique1和my_unique2两个表来进行测试,为两个表分别添加列级约束和表级约束,然后查看表的结构,会发现两个表的结构是相同的。

当表级约束仅建立在一个字段上时,其作用效果与列级效果相同。

mysql 指定值的唯一约束 mysql设置唯一约束_主键


mysql 指定值的唯一约束 mysql设置唯一约束_字段_02


由以下结果我们可以发现,添加唯一约束后,插入重复记录会失败。

mysql 指定值的唯一约束 mysql设置唯一约束_mysql_03


mysql 指定值的唯一约束 mysql设置唯一约束_主键_04

添加和删除唯一约束

若为一个现有的表添加或删除唯一约束,无法通过修改字段属性的方式操作,而是按照索引的方式来操作。

mysql 指定值的唯一约束 mysql设置唯一约束_主键_05


mysql 指定值的唯一约束 mysql设置唯一约束_数据库_06

创建复合唯一约束

在表级唯一性约束创建时,unique()的字段列表中,可以添加多个字段,组成复合唯一键,特点是只有多个字段的值相同时才视为重复记录。

mysql 指定值的唯一约束 mysql设置唯一约束_字段_07


mysql 指定值的唯一约束 mysql设置唯一约束_mysql 指定值的唯一约束_08

主键约束

定义

在MySQL中,为了快速查找表中的某条信息,可以通过设置主键实现。主键可以唯一标识表中的记录。主键约束通过primary key 定义,它相当于唯一约束和非空约束的组合,要求被约束字段不允许重复,也不允许出现null值
每个表中最多只允许含有一个主键
主键约束的创建分为列级和表级,语法如下:

列级约束:
字段名 数据类型 primary key
表级约束:
primary key(字段名1,字段名2,…)

表级约束的字段若只有一个,则为单字段主键与列级约束添加的效果相同;若有多个,则为复合主键,复合主键需要用多个字段来确定一条记录的唯一性,类似于复合唯一键。

测试

我们创建一个表进行测试,为id添加主键约束,查看表结构,由图可以看出,id字段的key列为PRI,表示该字段为主键,同时,id字段的null列为NO,表示该字段不能为NULL。

mysql 指定值的唯一约束 mysql设置唯一约束_主键_09

插入数据

mysql 指定值的唯一约束 mysql设置唯一约束_字段_10


插入NULL时,会插入失败,提示id字段不能为NULL

mysql 指定值的唯一约束 mysql设置唯一约束_数据库_11


插入重复值也会失败,提示”1“已经存在主键。

mysql 指定值的唯一约束 mysql设置唯一约束_字段_12

删除主键约束

由下图我们可以发现,删除主键约束后,非空约束并没有删除,如果需要删除非空约束,则需要使用modify。

mysql 指定值的唯一约束 mysql设置唯一约束_字段_13


mysql 指定值的唯一约束 mysql设置唯一约束_数据库_14

添加主键约束