一文带你了解MySQL的约束

文章目录

  • ☃️概述
  • ☃️分类
  • ☃️常用约束
  • ☃️外键约束
    • ❄️❄️外键删除/更新行为


在这里插入图片描述

欢迎来到 请回答1024 的博客

🍎🍎🍎欢迎来到 请回答1024的博客

关于博主: 我是 请回答1024,一个追求数学与计算的边界、时间与空间的平衡,0与1的延伸的后端开发者。

博客特色: 在我的博客中,开设了如下专栏(点击可以进入专栏奥~): Java、MySQL、Redis、Spring、SpringBoot、SpringCloud、RabbitMQ、微服务、分布式 等相关技术专栏。期待与您一起,探索编程世界中的发现和创新之旅。

🌈我的主页 : https://reply1024.blog.csdn.net

敬请期待定期更新、见解和教程!让我们一起踏上这段编码冒险之旅!

数学与计算的边界 时间与空间的平衡 0与1的延伸

☃️概述

MySQL 约束是用于确保数据库中数据完整性和一致性的规则。它们定义了对表中数据的限制,以确保数据的准确性和可靠性。MySQL 支持多种类型的约束,包括以下几种:

主键约束(Primary Key Constraint):主键约束用于唯一标识表中的每一行数据。主键必须是唯一且非空的,每个表只能有一个主键。通过定义主键约束,可以确保表中的每一行都可以被唯一地标识。

唯一约束(Unique Constraint):唯一约束确保表中的某个列或一组列的值是唯一的,但允许空值(NULL)。唯一约束可用于确保某些列的数值不重复,但允许其中部分为空。

外键约束(Foreign Key Constraint):外键约束用于创建表之间的关联关系。它指定了一个列或一组列与另一表中的主键或唯一键列之间的关系。外键约束确保了数据的引用完整性,即一个表中的外键值必须在相关联的表中存在。

检查约束(Check Constraint):检查约束用于限制表中某列的取值范围。它定义了一个表达式,该表达式必须为真才能插入或更新表中的数据。通过检查约束,可以确保数据满足特定条件。

这些约束可以在创建表时定义,也可以在已存在的表上添加或修改。它们提供了一种强大的机制,用于确保数据库中的数据完整性,并帮助维护数据的一致性。


☃️分类

约束描述关键字
非空约束限制该字段的数据不能为nullNOT NULL
唯一约束保证该字段的所有数据都是唯一、不重复的UNIQUE
主键约束主键是一行数据的唯一标识,要求非空且唯一PRIMARY KEY
默认约束保存数据时,如果未指定该字段的值,则采用默认值DEFAULT
检查约束(8.0.1版本后)保证字段值满足某一个条件CHECK
外键约束用来让两张图的数据之间建立连接,保证数据的一致性和完整性FOREIGN KEY

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


☃️常用约束

在这里插入图片描述

create table user(id int primary key auto_increment,name varchar(10) not null unique,age int check(age > 0 and age < 120),status char(1) default '1',gender char(1)
);

☃️外键约束

添加外键

CREATE TABLE 表名(字段名 字段类型,...[CONSTRAINT] [外键名称] FOREIGN KEY(外键字段名) REFERENCES 主表(主表列名)
);
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名) REFERENCES 主表(主表列名);-- 例子
alter table emp add constraint fk_emp_dept_id foreign key(dept_id) references dept(id);

删除外键

ALTER TABLE 表名 DROP FOREIGN KEY 外键名;

❄️❄️外键删除/更新行为

在这里插入图片描述
更改删除/更新行为

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

在这里插入图片描述



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

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

相关文章

怎么在海外平台买东西?Nike海淘攻略

不管在那个海外平台买东西首先要进入官网&#xff0c;最好注册一个gmail账号&#xff0c;这样使用范围比较宽广&#xff0c;在对应平台进行注册账号&#xff0c;比如亚马逊、ebay、Etsy等等 一、Nike海淘攻略 1、然后如果已经会员的话直接输入账号密码登录&#xff0c;如果不…

02 面向切面编程(AOP)核心概念:Aspect

02 面向切面编程&#xff08;AOP&#xff09;核心概念&#xff1a;Aspect 一 定义二 构成要素1. Advice&#xff08;通知&#xff09;2. Pointcut&#xff08;切点&#xff09;3. Join Point&#xff08;连接点&#xff09; 三 织入&#xff08;Weaving&#xff09;四 样例代码…

为什么3d模型都没有细分---模大狮模型网

在3D设计领域&#xff0c;3D模型是设计师和艺术家们创作的重要作品之一&#xff0c;它们在游戏开发、影视制作、工程建设等领域中扮演着重要角色。然而&#xff0c;尽管有着如此广泛的应用&#xff0c;但在互联网上搜索3D模型时&#xff0c;常常会发现缺乏足够的细分分类。为什…

DSP实验

实验准备&#xff1a; 首先&#xff0c;确保仿真器已经正确连接到计算机并与实验箱相连。接着&#xff0c;将试验箱上电&#xff0c;并确保实验板的电源开关处于打开状态。这样可以保证实验板能够正常供电。 启动 Code Composer Studio v5&#xff1a; 打开你的计算机上已安装…

AtCoder Beginner Contest 351 A~F

A.The bottom of the ninth(思维) 题意 有两只队伍正在进行棒球游戏&#xff0c;每只队伍都有 9 9 9个回合&#xff0c;先手已经结束了所有的回合&#xff0c;并获得了 A 1 , A 2 , … , A 9 A_1, A_2, \ldots, A_9 A1​,A2​,…,A9​分数&#xff0c;而后手只进行了8轮&…

java.net.BindException: Address already in use: no further information

项目场景&#xff1a; 基于Netty实现的文件管理&#xff0c;对客户端windows系统上的大量中小文件进行上传&#xff0c;并回调rest接口记录文件上传状态。 问题描述 在运行了一段时间后&#xff0c;文件传输过程中出现如下异常&#xff1a; io.netty.channel.AbstractChannel…

【打工日常】云原生之使用Docker部署开源云笔记工具Leanote

一、Leanote蚂蚁笔记介绍 1.Leanote简介 Leanote 蚂蚁笔记是一款国产开源的私有云笔记工具。它支持普通格式笔记、Markdown语法、专业数学公式编辑、和思维导图,并且支持vim&emacs等编辑模式。 2.Leanote功能 拥有Markdown 语法支持、无干扰写作模式、Vim和Emacs编辑模式…

华为鸿蒙应用--封装通用标题栏:CommonTitleBar(鸿蒙工具)-ArkTs

0、效果图 自定义通用标题栏 支持左、中、右常规标题栏设置&#xff1b; 支持自定义视图&#xff1b; 支持搜索功能 一、CommTitleBar代码 import router from ohos.router; import { Constants } from ../../constants/Constants; import { StyleConstants } from ../../…

数据结构 - 顺序表

一. 线性表的概念 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构&#xff0c;也就说是连续的…

django小技巧

1、django model中的表注释和字段注释迁移到数据库中 参考链接&#xff1a;https://blog.csdn.net/htsssss/article/details/131932381

调用示例、python语言调用翔云发票查验接口、发票OCR接口

python语言调用翔云发票查验接口、发票OCR接口其实方法很简单&#xff0c;只需要能看懂开发代码&#xff0c;然后在翔云开发者中&#xff0c;下载所需要的语言开发示例&#xff0c;更换产品参数即可。 发票管理是企业日常工作中不可或缺的一环&#xff0c;但传统的发票查验和识…

Github进行fork后如何与原仓库同步[解决git clone 太慢的问题]

前言 fork了一个仓库以后怎么同步源仓库的代码&#xff1f; 先说一下git clone太慢的问题&#xff0c;可以通过代理拉取代码&#xff0c;具体请看&#xff1a; https://gitclone.com/ 步骤 1、执行命令 git remote -v 查看你的远程仓库的路径。 以一个实际例子说明&#x…

23种设计模式简单记录

23种设计模式主要分为三大类&#xff1a;创建型模式、结构型模式和行为型模式。下面是这些设计模式的概览&#xff1a; 创建型模式&#xff08;Creational Patterns&#xff09; 单例模式&#xff08;Singleton&#xff09;&#xff1a;确保一个类只有一个实例&#xff0c;并…

Swift - Hello World

文章目录 Swift - Hello World1. Hello World Swift - Hello World 1. Hello World 不用编写main函数&#xff0c;Swift将全局范围内的首句可执行代码作为程序入口一句代码尾部可以省略分号&#xff08;;&#xff09;&#xff0c;多句代码写到同一行时必须用分号&#xff08;…

docker容器通俗理解

前言 如果大家没使用过Docker,就在电脑上下载一个VMware Workstation Pro&#xff0c;创建一个虚拟机安装一个windows操作一下感受一下,为什么我的电脑上还以再安装一台windows主机&#xff1f;其实你可以理解为Docker就是Linux系统的一个虚拟机软件。 我的Windows也可以安装…

【高校科研前沿】东北地理所孙敬轩博士为一作在《中国科学:地球科学(中英文版)》发文:气候变化下东北地区农业绿水安全风险评估

目录 01 文章简介 02 研究内容 03 文章引用 04 期刊简介 01 文章简介 论文名称&#xff1a;Risk assessment of agricultural green water security in Northeast China under climate change&#xff08;气候变化下东北地区农业绿水安全风险评估&#xff09; 第一作者及…

unity计算三维空间下点到线,点到面,线到线,线到面,面到面最短距离的点的方法

通用的一个方法GetDistance&#xff0c;计算两个点的距离&#xff0c;不开平方 /// <summary> /// 获取两个点的距离&#xff0c;不开平方 /// </summary> /// <param name"a"></param> /// <param name"b"></param>…

猫咪冻干究竟怎么选不踩雷?这几款生骨肉冻干一定适合你家喵

315中国之声的报道揭示了河北省邢台市南和区某宠粮代工厂的“行业秘密”&#xff0c;这无疑给广大宠物主人敲响了警钟。配料表上标注的鸡肉含量高达52%&#xff0c;新鲜鸡小胸占20%&#xff0c;然而所谓的鲜鸡肉实际上却是鸡肉粉。我们养宠物本是为了心灵上的慰藉&#xff0c;但…

栈和队列总结

文章目录 前言一、栈和队列的实现1.栈的具体实现2.循环顺序队列的具体实现 二、栈和队列总结总结 前言 T_T此专栏用于记录数据结构及算法的&#xff08;痛苦&#xff09;学习历程&#xff0c;便于日后复习&#xff08;这种事情不要啊&#xff09;。所用教材为《数据结构 C语言版…

揭秘Linux文件系统

前言 在上一篇文件描述符详解中谈论的都是打开的文件&#xff0c;但是在我们的系统中不仅有打开的文件还有许多未打开的文件&#xff0c;那么这些未打开的文件又该如何理解呢?阅读完本篇文章相信你会得到答案。 如果觉得文章内容对你有所帮助的话&#xff0c;可以给博主一键三…