约束 [MySQL][数据库]

约束(constraint)

那么什么是约束?

约束就是对表中字符的限制

为什么需要约束?

为了保证数据的完整性

那么什么又是数据的完整性?

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

  • 为了保证数据的完整性,SQL规范以约束的方式对表数据进行额外的条件限制,从以下四个方面考虑:
  1. 实体完整性(Entity Integrity)

    • eg:同一个表中,不能存在两条完全相同无法区分的记录
    • 通过主键约束
  2. 域完整性(Domain Integrity)

    • eg:年龄范围: 0 - 120, 性别范围: ‘男/女’
  3. 引用完整性(Referential Integrity)

    • eg: 员工所在部门,在部门表中一定要有这个部门
  4. 用户自定义完整性(User Definal Integrity)

    • eg:用户名唯一,密码不能为空,本部门经理工资不能超过本部门平均工资的5倍

约束的分类(我们通过三个角度进行分类):

角度一: 约束的字段的个数:

分为单列约束和多列约束

角度二: 约束的作用范围

分为列级约束和表级约束

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

角度三: 约束的作用(或者功能)

  1. not null (非空约束)
  2. unique (唯一性约束)
  3. primary key (主键约束)
  4. foreign key (外键约束)
  5. check (检查约束)
  6. default (默认值约束)

如何添加/删除约束?

①在CREATE TABLE 时添加约束

②在ALTER TABLE 是添加约束,删除约束

如何查看表中的约束?

我们可以通过一个固定的语句就可以查看指定表中的约束

SELECT * 
FROM information_schema.table_constriaints
WHERE table_name = '表名称';
  • 这里的information_schema是一个数据库名(系统库)
  • 这里的 table_constrains是一个表名称(这个表中专门存储各个表中约束)

猜你喜欢

转载自blog.csdn.net/m0_57001006/article/details/123564397