MySQL表的完整性约束

概览

为了规范数据库数据格式。在用户进行插入,修改,删除等操作时。DBMS(Database Management System)自动按照约束条件对数据进行监测,使不符合规范的数据不能进入数据库。以确保数据库中存储的数据正确,有效
约束条件和数据类型的宽度一样,都是可选参数,主要分为以下几种。

not null

当前这一列的内容不能为空,性别
如果没有设置表名这一列内容可有可无

unique

唯一可以有一个空,姓名,身份证号,用户名等

primary key

主键

  • 自动创建索引
  • 唯一 + 非空
  • 加速查询,通过输入主键查询对应的内容非常快
  • 每张表只能有一个主键
    应用: 员工号码,学号,用户名,用户id
    例1:
    unique,primary key实例
    创建一个表
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    windows系统怎样设置mysql为严格模式
    在这里插入图片描述
    在这里插入图片描述
    再重启数据库服务器,退出客户端,再登录客户端。查询数据库模式
    在这里插入图片描述
    unique key不能输入重复的值
    在这里插入图片描述
    primary key 主键也不能重复
    在这里插入图片描述

foreign key

外键,支持外键的存储引擎只有Innodb
不在一个表的键
例:一个公司50000000人,有5个部门,有5个办公室,如果存在一张表上,部门和办公室重复了很多次。非常浪费内存。为了节省空间,可以建两个表,一张表存员工信息,一张表只有5行,存部门信息。员工信息中部门id对应了部门表的id。部门id相对于员工信息表就是他的外键。
在这里插入图片描述

完整性约束实例:
如果没有设置主键,那么第一个非空唯一的字段会被设置成主键。
在这里插入图片描述
在这里插入图片描述
非空 + 唯一 约束不能插入空值
在这里插入图片描述
指定主键后,其他非空+唯一约束都不会成为主键。
在这里插入图片描述
联合主键:给一个以上的字典设置唯一非空约束
在这里插入图片描述
联合唯一
在这里插入图片描述
设置默认值实例
设置默认值后,如果该字段没输就是默认值
在这里插入图片描述
如果输入了就为输入的值。
在这里插入图片描述
设置外键实例
外键,只有另一个表中设置了unique的字段才能作为本表的外键
在这里插入图片描述

  • 如果一个表的字段作为外键对另一个表提供服务,那么默认不能直接删除外表中正在使用的数据
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
  • 外键 on delete cascade连级删除, on update cascade连级更新
    在这里插入图片描述
    删父表,子表中对应的记录跟着删
    在这里插入图片描述
    更新父表,子表中对应的记录跟着改
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值