1.9 数据库之约束

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lwz45698752/article/details/86559952


概述

在这里插入图片描述
在这里插入图片描述

  • 约束一定有名字(若不显式命名,则默认命名)
  • 查看约束方式:1.代码 2.GUI
  • 每个列对应一个数据类型,数据类型即可看作一种约束
  • 空值之间不违反唯一性约束
    在这里插入图片描述

表级约束与列级约束

在这里插入图片描述

  • 只有非空约束(not null)只能定义于列级下,其他都是两种定义方式
  • 列级约束:紧跟列后
  • 表级约束:写在表结构声明后

实例

在这里插入图片描述- 创建表时添加约束的实例

  • 起名要有可读性
  • 最后一行才不用加逗号
  • 表级约束的()中指明表级约束作用的列

小结

  • 列级约束:列名 + 列数据类型 + (数据长度)+ constraint +约束名(要求易懂)+关键字
  • 表级约束:constraint +约束名(易懂)+关键字+(作用的列名列表)
  • 外键:constraint +约束名+关键字(列A)+references+另一个表 (列B)

主键

  • 通过表中某列定位数据记录时,能唯一定位,则该列可声明为主键(通过主键能唯一地定位表中的一条数据记录)

  • 主键隐式包含非空约束,唯一约束

  • 类比身份证号,作为公民表的主键(唯一且非空)


外键

在这里插入图片描述

在这里插入图片描述

  • 两表有相同的列,通过此相同列,两表进行连接,该列称为外键
  • constraint +约束名+关键字(列A)+references+另一个表 (列B)
  • 表示两表通过A列与B列,进行连接
  • 外键作用:限制数据取值范围
  • 如将一员工数据插入员工表中,其部门ID在部门表中没有,则不满足外键约束,从而插入不了
  • 表与表间有关系——》相应地创建外键,使之连接——》限制数据取值范围,保证数据安全

  • 级联删除:一部门ID从部门表中剔除,则员工表中属于该部门的员工记录全部剔除
  • 级联置空:一部门ID从部门表中剔除,则员工表中属于该部门的员工记录的部门ID置为空,等待update新的部门ID

check约束

在这里插入图片描述

修改约束

在这里插入图片描述

  • 非真正修改,广泛意义上的修改
  • 除了用modify关键字修改非空约束,其余操作约束都是add关键字

在这里插入图片描述

  • 添加约束时,参照表级约束的写法

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述- 激活时,要考虑原先数据内容,再enable

  • 如enable非空约束,要先将那些非空的数据剔除,才行

实例

在这里插入图片描述
在这里插入图片描述


查询约束

在这里插入图片描述


在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/lwz45698752/article/details/86559952
1.9