1.9 数据库之约束


概述

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

  • 约束一定有名字(若不显式命名,则默认命名)
  • 查看约束方式: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非空约束,要先将那些非空的数据剔除,才行

实例

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


查询约束

在这里插入图片描述


在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值