当前位置: 首页 > news >正文

数据库约束

文章目录

    • 1. 简介
    • 2. 代码演示
    • 3. 外键约束
    • 4. 外键删除和更新行为

1. 简介

  • 概念:约束时作用于表中子段上的规则,用于限制存储在表中的shuju
  • 目的:保证数据库中数据的正确、有效性和完整性
  • 分类:
约束描述关键字
非空约束限制该字段不能为nullNOT NULL
唯一约束保证该字段的所有数据都是唯一、不重复的UNIQUE
主键约束主键时一行数据的唯一标识,要求非空且唯一Primary key
默认约束保存数据时,如果未指定该字段的值,则采用默认值Default
检查约束保证字段值满足某一个条件check
外键约束用来让两张表的数据之间建立连接,保证数据的一致性和完整性foreign key

2. 代码演示

create table user(id int primary key auto_increment comment '主键',name varchar(10) not null unique comment '姓名',age int check(age>0 && age<=120) comment '年龄',status char(1) default '1' comment '状态'
)

3. 外键约束

用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性

alter table user add constraint f_id foreign key(dept_id) references dept(id)
#user表的dept_id字段外键引用dept表的id字段

4. 外键删除和更新行为

  • 删除/更新行为
行为说明
no action当在父表中删除/更新对应记录时,首先检查该记录是否有对应的外键,如果有则不允许删除/更新
restrict当在父表中删除/更新对应记录时,首先检查该记录是否有对应的外键,如果有则不允许删除/更新
cascade当在父表中删除/更新记录时,首先检查记录是否存在外键,如果有,则也删除/更新外键所在子表中的记录
set null当在父表中删除对应记录时,首先检查记录是否存在对应外键,如果有则设置子表中该外键值为null(这就要求该外键允许取null)
set default父表中有变更时,子表将外键列设置成一个默认的值(innodb不支持)
alter table 表名 add constraint 外键名称 foreign key references 主表名(主表名字段) on update cascade on delete cascade
http://www.lryc.cn/news/148930.html

相关文章:

  • Unity实现MQTT服务器
  • Linux(centos) 下 Mysql 环境安装
  • 决策树(Decision Tree)
  • 解决 PaddleClas 下载预训练模型报错 ModuleNotFoundError No module named ‘ppcls‘ 的问题
  • 视觉化洞察:为什么我们需要数据可视化?
  • C语言函数概述——拜佛代码
  • 防火墙日志分析工具
  • Autofac中多个类继承同一个接口,如何注入?与抽象工厂模式相结合
  • Django系列之日志配置
  • 四轴飞行器传感器(SimulinkMatlab代码实现)
  • 学习 使用pandas库 DataFrame 使用
  • C++字符串详解
  • vant2 van-calendar组件增加清除按钮和确定按钮
  • Spring redis使用报错Read timed out排查解决
  • C语言每日一练-------Day(9)
  • SpringCloud(十)——ElasticSearch简单了解(三)数据聚合和自动补全
  • 二叉查找树(binary search tree)(难度7)
  • windows环境装MailHog
  • Ubuntu 22.04.2 LTS 安装python3.6后报错No module named ‘ufw‘
  • Flutter小功能实现-咖啡店
  • JavaSE 集合框架及背后的数据结构
  • -9501 MAL系统没有配置或者服务器不是企业版(dm8达梦数据库)
  • 云备份——第三方库简单介绍并使用(上)
  • MySQL数据库之索引
  • OpenCV(四):Mat支持的运算
  • WebRTC音视频通话-WebRTC推拉流过程中日志log输出
  • 用Jmeter压测问题解决
  • C语言:字符函数和字符串函数(一篇拿捏字符串函数!)
  • 问道管理:成交量买卖公式?
  • 【MySQL】5、MySQL高阶语句