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

【MySQL】约束

4. 约束

4.1 概述

概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。

目的:保证数据库中数据的正确、有效性和完整性。

 注意:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。

 4.2 约束演示

CREATE TABLE tb_user(id int AUTO_INCREMENT PRIMARY KEY COMMENT 'ID唯一标识',name varchar(10) NOT NULL UNIQUE COMMENT '姓名' ,age int check (age > 0 && age <= 120) COMMENT '年龄' ,status char(1) default '1' COMMENT '状态',gender char(1) COMMENT '性别'
);

 4.3 外键约束

 4.3.1 介绍

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

 4.3.2 语法

1). 添加外键

CREATE TABLE 表名(字段名 数据类型,...[CONSTRAINT] [外键名称] FOREIGN KEY (外键字段名) REFERENCES 主表 (主表列名)
);
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名) REFERENCES 主表 (主表列名);

2). 删除外键

ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

4.3.3 删除/更新行为

添加了外键之后,再删除父表数据时产生的约束行为,我们就称为删除/更新行为。

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段) REFERENCES 主表名 (主表字段名) 
ON UPDATE CASCADE ON DELETE CASCADE;

演示如下: 

1). CASCADE

alter table emp add constraint fk_emp_dept_id foreign key (dept_id) 
references dept(id) on update cascade on delete cascade ;

A. 修改父表id为1的记录,将id修改为6

原来在子表中dept_id值为1的记录,现在也变为6了,这就是cascade级联的效果。

在一般的业务系统中,不会修改一张表的主键值

B. 删除父表id为6的记录

父表的数据删除成功了,但是子表中关联的记录也被级联删除了。

2). SET NULL

A. 删除id为1的数据

父表的记录是可以正常的删除的,父表的数据删除之后,再打开子表 emp,我们发现子表emp原来dept_id为1的数据,都被置为NULL了。

 这就是SET NULL这种删除/更新行为的效果。


http://www.mrgr.cn/news/75091.html

相关文章:

  • 【AI绘画】Midjourney进阶:色调详解(上)
  • 开发一套ERP 第三弹 前端构建
  • docker镜像、容器、仓库介绍
  • CentOS 7安装SSHFS 实现远程主机目录 挂载为本地目录
  • C++ STL 容器系列 (二)vector —— 随机访问与高效存储的完美融合
  • Java将PDF保存为图片
  • 三、模板与配置(下)
  • 【MySQL】数据库必备知识:全面整合表的约束与深度解析
  • vue中重置对象的好使方式(封装好的函数,可直接食用)
  • YZ系列工具之YZ10:VBA_梦幻图像
  • Orleans Stream测试
  • 大数据新视界 -- 大数据大厂之 Impala 性能飞跃:动态分区调整的策略与方法(上)(21 / 30)
  • python语言基础-4 常用模块-4.12 namedtuple(名称元组)
  • 第12章 系统部署
  • 一道C语言关于距离的期末题及答案
  • 光伏储能微电网协调控制器
  • 20241114给荣品PRO-RK3566开发板刷Rockchip原厂的Android13下适配RJ45以太网卡
  • STM32学习笔记-----UART的概念
  • 远程开发测试必看:如何在群晖NAS上运行网页版Ubuntu
  • Docker 篇-Docker 详细安装、了解和使用 Docker 核心功能(数据卷、自定义镜像 Dockerfile、网络)
  • 三、模板与配置(上)
  • springboot学科竞赛管理(代码+数据库+LW)
  • P10901 [蓝桥杯 2024 省 C] 封闭图形个数
  • 【话题讨论】AI赋能电商:创新应用与销售效率的双轮驱动
  • 【AiPPT-注册/登录安全分析报告-无验证方式导致安全隐患】
  • python 字典 详解