新闻详情

新闻详情

首页 / 资讯中心 / 详情

数据库原理及运用(初识)第五节:#外键与外键约束

发布时间:2026/11/14 6:30:23来源:尧图网络
数据库原理及运用(初识)第五节:#外键与外键约束
欢迎回来本篇文章为不了解数据库或者将要学数据库却不知道它具体是什么的伙伴们介绍数据库的基础知识同时小编也会用每一小节学到的新知识一步一步搭建出一个完整的大一新生数据库系统小编争取每天都会更新一节零基础的小伙伴也可以跟着小编一起搭建自己的一个数据库系统前面我们讲解了的约束一部分知识点这一章我们重点讲解一下外键约束并用实际案例演示一遍在讲解外键约束之前我们先在我们史莱克新生数据库系统里添加一个记录我们学校老师的表格顺便演示一下上节我们学习到的约束的用法# 创建具有约束条件的表格我们先来分析一下一张表格会用上哪些约束条件首先这个表格中要有id他就像我们每个人的省份证号一样是我们身份的一种证明标识他必须具备唯一性同时我还希望他能够自动增长最好这样我们就不用在创建表格时一个一个的输入id了那么要实现这些需求我们需要用到的约束条件就是‘主键’‘自动增长’。他们对应的约束关键字是‘primary key’和‘auto_increment’。其次表格中还有姓名而考虑到学校这么多人我们希望姓名不为空就可以了约束关键字为‘not null’然后是年龄和和课程序号每个人年龄坑定都是大于0的而且如果没有特殊情况的话在座的大部分人年龄应该是要小于150的修仙的几个先站起来一下课程序号也同理所以这里我们需要用检查约束约束关键字‘check’注意这里的检查约束需要8.0.16版本之后才具备接着是教授的课程和性别这两个就没什么要求所以可以不加约束。OK分析完了就让我们动手创建一个有约束条件的教师表如果大家嫌手动建表太麻烦了也可以在MySQL里面直接新建一个同时也可以直接选择表中每个字段所需要的约束可以看到就算我们在添加数据时没有管id他也会自动填写并且自动增加。接着小编在演示一下如果我们填写的数据超过了约束条件会怎样可以看到我们的数据一旦超出了约束的范围执行后后就会报错。这里我们直接就创建好了一个由于是条件的教师表## 外键与外键约束外键是用来让两张表的数据之间建立连接保证数据的一致性和完整性。接下来大家可以思考一个问题当一个学校的每一门课是有好几个老师教而一个老师也有可能任教好评几门课程那么如果我们把课程信息和老师记录在一张表上就像我们上面那一张teacher表格一样那么我们要怎样表示学生的选课信息呢这样两张表就没法很好的表达出所有信息了。这个时候我们就需要把课程信息单独用一张表来记录。然后我们只需要将学生选的课的id填在学生表的课程那一栏就可以了这样学生表里面的c_id就与课程表里id产生了关联学生表叫做子表课程表叫做父表我不过现在这种关联还只是我们逻辑上的是我们知道课程表id为3的课刚好是某同学选的课所以我们把3写在了学生选课的c_id里但如果某天我们一不小心误删了课程表id为3的字段或者那天我们把id为3的表改下名字那岂不是要把所有学生的课程id全都改一遍这显然是不可能的为了解决这个问题我们就需要给这两个表建立外键约束具体语法在上一节已经告诉大家了而有了外间的关联这个时候我们再去删除或者修改course表中的数据就会报错下面我们补充一下外键的删除和更新行为NO ACTION当在父表中删除/更新对应记录时首先检查该记录是否有对应外键如果有则不允许删除/更新。RESTRICT当在父表中删除/更新对应记录时首先检查该记录是否有对应外键她果有则不允许删除/更新。与NO ACTION一致)CASCADE当在父表中删除/更新对应记录时首先检查该记录是否有对应外键如果有则也删除/更新外键在子表中的记录。SET NULL当在父表中删除对应记录时首先检查该记录是否有对应外键如果有则设置子表中该外键值为null这就要求该外键允许取null)。SET DEFAULT父表有变更时子表将外键列设置成一个默认的值(Innodb不支持)下面我把外键改为了cascade在修改课程表主键名试试看可以看到我们又可以修改父表数据了我们删掉了id为7的字段而选了这门课的学生数据也一起被删除了。那么以上就是这小节的全部内容我们下一节再见
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/14 3:51:47

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/12 23:59:09

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/13 10:09:00

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/13 13:31:48

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/13 16:11:45

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/14 3:51:43

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉