MySQL学习-约束

112 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情

前言

上篇我们学习了MySQL中的数据类型中的JSON与空间类型。有兴趣的小伙伴可以阅读(# MySQL学习-数据类型-JSON与空间类型)。
下面学习MySQL中的约束。

约束

关键字constraint。

SQL中需要约束的原因

数据完整性指数据的精确性和可靠性。它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。

为了保证数据的完整性,SQL规范以约束的方式对表数据进行额外的条件限制。从以下四个方面考虑:

  • 实体完整性:例:同一个表中,不能存在两条完全相同无法区分的记录。
  • 域完整性:例:年龄范围0-120,性别范围“男/女”。
  • 引用完整性:例:员工所在的部门,在部门表中要能找到这个部门。
  • 用户自定义完整性:例:用户名唯一,密码不能为空。

约束定义

约束是表级的强制规定。对表中字段的限制。

可以在创建表时规定约束,或者在创建表后通过ALTER TABLE语句规定约束。

约束的分类

角度1

按约束的字段的个数:单列约束与多列约束。

角度2

按约束的作用范围:

  • 列级约束:将此约束声明在对应字段的后面。
  • 表级约束:在表中所有字段都声明完,在所有字段的后面声明的约束。

角度3

按约束的作用:

  • nout null:非空约束
  • unique:唯一性约束
  • primary key:主键约束
  • foreign key:外键约束
  • check:检查约束
  • default:默认值约束

如何添加/删除约束

  • CREATE TABLE时添加约束。
  • ALTER TABLE时增加约束、删除约束。

查看表中的约束

通过使用information_schema.table_constraints来查看。

SELECT * FROM information_schema.table_constraints
WHERE table_name = 'employees'

通过运行以上查询语句,可以查看employees表的约束。