Mysql-约束

概念:

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

目的:

保存数据库中数据的正确,有效性和完整性。

分类:

注意事项:约束是作用在数据表中的字段上的,可以在创建表或修改表的时候添加约束。

案例一:根据要求,完成表结构的创建

外键约束

概念:

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

表示例:

添加外键的两种方式

在新增数据表时进行新增:

create table 表名(
        字段名 数据类型,

        ....

        constaraint [外键名称] foreign key (外键字段名) references 主表(主表列名)

)

数据表已存在,添加字段外键:

alter table 表名 add constraint 外键名称 foreign key (外键字段名) references 主表 (主表列名)

注意:父表与子表如果已经提前存在,外键还没创建,那么在创建外建时,如果要创建外键的那个字段,子表该字段已存在的所有数据与父表该字段已存在的所有数据如果有差集,那么就会出现如下错误:

删除外键,测试外键的功能,数据完整性功能

案例一:

案例二:

删除外键语句

alter table 表名 drop foreign key 外键名称;

外键约束

删除/更新行为

注意:如果修改已存在的外键约束的策略,你需要先删除旧的外键约束,然后重新创建它,并在创建时指定具体你想要的行为。

指定行为的语句为:

alter table 表名 add constraint 外键名称 foreign key (外键字段名) references 主表 (主表列名)  on delete restrict on update restrict

测试 NO ACTION

新增外键为NO ACTION 行为

alter table emp add constraint fk_dept_id foreign key (dept_id)  references dept(id) on delete no action on update no action;

结果:

注意:
历史原因:RESTRICT 和 NO ACTION 的不同关键字源于 SQL 标准,但 MySQL 实现中它们的行为相同。

兼容性:MySQL 支持这两个关键字是为了与其他数据库系统的兼容性。

内部实现:在 MySQL 中,RESTRICT 和 NO ACTION 没有区别,都表示相同的行为。


当指定外键为 no action 时,数据库会显示RESTRICT,因为 no action 与 RESTRICT是相等的行为;且将no action 显示为 RESTRICT ,只不过是mysql的一种内部处理方式而已。

删除子表数据时:

删除父表数据时

由于父表不存在11这个id,所以修改失败了

新增外键为RESTRICT 行为

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

修改:

删除:

新增外键为cascade行为

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

更新

删除

新增外键为set null行为

alter table emp add constraint fk_dept_id foreign key (dept_id)  references dept(id) on delete set null on update set null

删除:

新增外键为set null行为

alter table emp add constraint fk_dept_id foreign key (dept_id)  references dept(id) on delete set default on update set default

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/399932.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【开端】Java 分页工具类运用

一、绪论 Java系统中,分页查询的场景随处可见,本节介com.baomidou.mybatisplus.core.metadata.IPage;来分页的工具类 二、分页工具类 public class PageUtils implements Serializable { private static final long serialVersionUID 1L; /**…

Luatos-lua For MacOSX

0x00 缘起 看到Luatos-soc-pc项目能够编译到MacOS平台并且运行,所以尝试编译;可是Apple Clang编译器太过于严格,导致编译不通过。遂换到gcc-11编译通过,虽然其中依旧会报错(宏定义LUA_USE_MACOSX不起作用,导…

Android 10.0 SystemUI下拉状态栏QSTileView去掉着色效果显示彩色图标功能实现

1.前言 在10.0的系统rom定制化开发中,在关于SystemUI的下拉状态栏中QSTileView的背景颜色设置过程中,在由于 系统原生有着色效果,导致现在某些彩色背景显示不是很清楚效果不好,所以需要去掉QSTileView的默认着色 背景显示原生的彩色背景,接下来就来实现相关功能 如图: 2.…

直击Vue2/3watch的底层逻辑,字符串长度对侦听效率的影响

目录 直击Vue2/3watch的底层逻辑,字符串长度对侦听效率的影响 一、Vue 2的底层原理 二、Vue 3的底层原理 三、基础类型性能消耗 四、数据变化比较原理 1、Vue 2 中的引用类型比较 2、Vue 3 中的引用类型比较 3、字符串比较(基础类型比较&#xf…

ARM——体系结构

计算机体系结构:冯诺伊曼 哈佛 冯诺依曼结构 冯诺依曼结构,也称冯诺依曼模型或普林斯顿结构,是根据冯诺依曼提出的存储程序概念设计的计算机体系结构。其主要特点包括: 存储程序:指令与数据都…

解决手机按键失灵!全新检测方案了解一下!

手机按键在手机设备中起着至关重要的作用,手机按键用于执行各种操作,如接听电话、挂断电话、调节音量、开关机等,方便用户进行基本操作。在生产过程中视觉检测需要确保按键的尺寸、形状和表面光滑度符合设计要求,以保证按键的正常…

基于Spring Boot的企业产品档案管理系统

目录 前言 功能设计 系统实现 获取源码 博主主页:百成Java 往期系列:Spring Boot、SSM、JavaWeb、python、小程序 前言 随着企业规模扩张和产品种类增多,手动管理方式不再适应不断增长的需求。因此,本研究的目标是设计和开发…

Cesium 缓冲区分析和查询

Cesium 缓冲区分析和查询 loadLabel() {this.collection new Cesium.BillboardCollection()this.viewer.scene.primitives.add(this.collection);this.points [];return new Promise((resolve,reject)>{fetch("../../public/json/hfty-point.json").then(res &g…

设计模式-标识域(Identity Field)

目的 为了在内存对象和数据库行之间维护标识而在对象内保存的一个数据库标识域。 关系数据库和内存对象的区别 区分行:关系数据库使用键来区分数据行,而内存对象不需要这样一个键 引用方法:对象系统中通过原始内存位置直接区分对象&#x…

【资源】wordpress 子比主题

简介 子比主题是一款功能强大的WordPress主题模板,支持社区论坛、商城、支付、古腾堡编辑器等多种功能。很多资源类网站都是基于此搭建的。搭建后的效果基本上和官网一致,可查看官网的演示效果。 官方网站:https://www.zibll.com/ 如要获取…

安装MySQL数据库【后端 8】

安装MySQL数据库 MySQL是世界上最流行的开源关系型数据库管理系统(RDBMS)之一,广泛应用于Web应用程序开发中。无论你是初学者还是有一定经验的开发者,掌握MySQL的安装都是必不可少的技能。本文将指导你如何在不同的操作系统上安装…

Elasticsearch:使用 ES|QL 进行地理空间搜索

作者:来自 Elastic Craig Taverner 多年来,Elasticsearch 一直具有强大的地理空间搜索和分析功能,但其 API 与典型的 GIS 用户习惯的 API 截然不同。在过去的一年中,我们添加了 ES|QL 查询语言,这是一种管道查询语言&a…

MapReduce_Writable序列化

使用序列化封装对象 将输入的csv按照员工号拆分成每个员工&#xff0c;每个员工存储为员工对象 数据处理过程 employee_noheader.csv 1,ZhangSan,101,5000 2,LiSi,102,6000 3,WangWu,101,5500 4,ZhaoLiu,103,7000 5,SunQi,102,6500pom.xml <?xml version"1.0&qu…

【大模型系列】更像人类行为的爬虫框架

随着大规模模型技术的兴起&#xff0c;我们可以看到百模大战、各种智能体、百花齐放的应用场景&#xff0c;那么作为一名前端开发者&#xff0c;以前端的视角&#xff0c;我们应当如何积极做好技术储备&#xff0c;开拓技术视野&#xff0c;在智能体时代保持一定的竞争力呢&…

ElasticSearch聚合操作详解

文章目录 聚合操作聚合的分类测试数据Metric AggregationBucket Aggregation获取job的分类信息限定聚合范围Range & Histogram聚合聚合嵌套 Pipeline Aggregation聚合的作用范围排序ES聚合分析不精准原因分析聚合性能优化启用 eager global ordinals 提升高基数聚合性能插入…

打造高效信息发布平台小程序:设计思路与实践

在当今这个信息爆炸的时代&#xff0c;信息发布平台已成为连接用户与内容的桥梁&#xff0c;小程序以其独特的优势成为众多企业和个人开发者青睐的选择。开发一款专注于信息发布与共享的小程序&#xff0c;旨在为用户打造一个便捷、高效、互动性强的信息获取平台&#xff0c;具…

luckyexcel 编辑预览excel文件

luckyexcel 编辑预览excel文件 支持后端传文件流预览编辑&#xff0c;也支持选择本地文件编辑预览 看效果 上代码 <template><div style"margin: 30px"><div class"button-box2"><div><div style"color: red">…

Windows File Recovery卡在99%怎么解决?实用指南!

为什么会出现“Windows File Recovery卡在99%”的问题&#xff1f; Windows File Recovery&#xff08;Windows文件恢复&#xff09;是微软设计的命令行应用程序。它可以帮助用户从健康/损坏/格式化的存储设备中恢复已删除/丢失的文件。 通过输入相关命令&#xff0c;设置源/…

整理 酷炫 Flutter 开源UI框架 按钮

flutter_percent_indicator Flutter 百分比指示器库 项目地址&#xff1a;https://github.com/diegoveloper/flutter_percent_indicator 项目Demo&#xff1a;https://download.csdn.net/download/qq_36040764/89631340

jenkins 安装以及自动构建maven项目并且运行

在这里找到你对应jdk的版本的jenkins包 War Jenkins Packages 我这里用的使java8,所以下载 https://mirrors.jenkins.io/war-stable/2.60.1/jenkins.war 然后jenkins可以安装到centos系统 在本地windows系统运行命令行 scp C:\Users\98090\Downloads\jenkins.war root@192…