MySQL 6:数据库约束
1.概念与类型概念数据库约束是指对数据库表中的数据所施加的规则或条件用于确保数据的准确性和可靠性。这些约束可以是基于数据类型、值范围、唯一性、非空等规则以确保数据的正确性和相容性。约束类型2.NOT NULL 非空约束定义表时某列不允许为NULL时可以为列添加非空约束。对于明确不会为空的列建议主动添加该约束这不仅保障数据完整性也能优化查询效率。举例创建一个学生表约束学生名的列不能为NULL。•为所有列添加非空约束•由于name列有非空约束插入NULL值时报错。•正常值可以成功插入drop table if exists student; create table student( id bigint, name varchar(20) not null );NULL列为NO表示值不允许为NULLYES表示值可以为NULL。•查看表结构name列的Null 属性值为NO。3.DEFAULT 默认值约束DEFAULT 约束用于向列中插入默认值如果没有为列设置值那么会将默认值设置到该列。举例为年龄列加入默认值•重构学生表新增年龄列为年龄列加入默认约束。•插入一条记录不指定年龄的值时列使用了默认值若没有设置默认约束时会为NULL。drop table student; create table student ( id bigint, name varchar(20) not null, age int default 18 );•查看表结构age列的Default 属性值为18。4.UNIQUE 唯一约束指定了唯一约束的列该列的值在所有记录中不能重复比如⼀个人的身份证号学生的学号等。对于明确是唯一的列建议主动添加该约束这不仅保障数据完整性也能优化查询效率。注意唯一约束只确保非 NULL 值的唯一性通常允许存在多个 NULL值。举例设置学号唯一•重构学生表新增学号列并设置唯一约束。•插入重复的学号时报错唯一约束生效。drop table student; create table student ( id bigint, name varchar(20) not null, age int default 18, sno varchar(10) unique );•查看表结构sno列的Key 属性值为UNI表示该学号列已成功添加唯一约束。5.PRIMARY KEY 主键约束5.1定义5.2示例举例将学生表的id 列设为主键•重构学生表为id列添加主键约束。•查看表结构id列的Key 属性值为PRI表示id已被成功设为主键。drop table student; create table student ( id bigint primary key, name varchar(20) );•当Id列的重复时会发生主键冲突通常把主键列设置为自动增长让数据库维护主键值一个表中只能有一个自增列。•重构学生表将学生表的id 列设为自增主键。•插入数据时设置主键列的值为NULL或不设置主键列的值推荐主键列的值都会自动生成。drop table student; create table student ( id bigint primary key auto_increment, name varchar(20), age int );•查看表结构id列的Extra 属性值为auto_increment表示自增。•如果某条记录写入失败新生成的主键值将会作废。由于id 重复产生了唯一冲突导致插入失败ID为3的主键值作废。修改 id 后成功插入数据查询后发现新记录 id 列的值为4。•主键值可以不连续手动指定⼀个值下一次自增从主键的最大值开始。当然也可以手动指定中间的值但是下一次自增仍从主键的最大值开始。•主键或唯一键有冲突时的更新操作•替换如果存在冲突则替换不存在冲突则插入。•一个表中只能有一个主键一个主键可以包含多个列•复合主键由多个列共同组成的主键主键是否冲突以多个列的组成进行判定。6.FOREIGN KEY 外键约束举例•创建班级表(主表)并初始化数据•重构学生表(从表)加入外键约束create table class ( id bigint primary key auto_increment, name varchar(20) not null );# 创建外键约束 class_id bigint, foreign key (class_id) references class(id)•查看表结构class_id列的Key 属性值为MUL表示该列已成功添加外键约束。•正常向从表中插入数据班级编号在主表中存在插入成功。•插入班级Id为NULL的记录可以成功表示当前学生还没有分配班级。•删除主表前请先处理依赖关系可选择删除从表或解除所有外键约束或清空从表数据。解除所有外键约束清除从表数据7.CHECK 约束

相关新闻

企业招聘流程优化与智能筛选系统实践

企业招聘流程优化与智能筛选系统实践

1. 招聘困境的本质解析 最近三年企业招聘成功率持续走低,某招聘平台数据显示:78%的HR表示"收到大量简历却找不到匹配人选",而求职端却有63%的人反馈"投递后石沉大海"。这种供需错位的矛盾背后,隐藏着招聘流程…

2026/7/26 11:35:35阅读更多 →
负载均衡实战:从Nginx到Kubernetes的高可用架构

负载均衡实战:从Nginx到Kubernetes的高可用架构

1. 项目概述:为什么需要负载均衡?三年前我接手过一个电商项目,大促时服务器直接宕机的惨痛经历让我深刻认识到负载均衡的重要性。当时单台服务器在3000QPS时CPU就冲到100%,而部署了Nginx负载均衡集群后,同样的硬件支撑…

2026/7/26 11:35:35阅读更多 →
Linux文件系统核心:inode结构体深度解析

Linux文件系统核心:inode结构体深度解析

1. Linux内核中的inode结构体探秘 在Linux文件系统的日常开发中,inode就像是一个文件的"身份证",记录着文件的所有元数据信息。我第一次在内核代码中看到struct inode这个结构体时,就被它复杂的成员变量震撼到了——这个看似简单的…

2026/7/26 11:33:35阅读更多 →
Hashcat密码恢复实战:从GPU加速到攻击模式全解析

Hashcat密码恢复实战:从GPU加速到攻击模式全解析

1. 项目概述:为什么我们需要了解Hashcat?如果你在网络安全、渗透测试或者数据恢复领域工作过一段时间,那么“Hashcat”这个名字对你来说一定不陌生。它不是什么新潮的玩具,而是被业界公认为“密码破解领域的瑞士军刀”。我最初接触…

2026/7/26 13:07:54阅读更多 →
智能体与扣子技术:从理论到生产环境的AI工程实践

智能体与扣子技术:从理论到生产环境的AI工程实践

1. 智能体与扣子的技术演进脉络 在AI工程化领域,我们正经历着从"概念验证"到"生产部署"的关键转折。三年前当我第一次部署对话式AI时,系统只能处理预设的20种意图,而今天基于大语言模型的智能体已经能够自主拆解复杂任务…

2026/7/26 13:07:54阅读更多 →
异步FIFO深度解析:跨时钟域数据传输的核心架构设计

异步FIFO深度解析:跨时钟域数据传输的核心架构设计

异步FIFO深度解析:跨时钟域数据传输的核心架构设计 【免费下载链接】async_fifo A dual clock asynchronous FIFO written in verilog, tested with Icarus Verilog 项目地址: https://gitcode.com/gh_mirrors/as/async_fifo 在现代数字电路设计中&#xff0…

2026/7/26 13:07:54阅读更多 →
在Linux和macOS上解包Windows安装程序:innoextract的3种实用场景解析

在Linux和macOS上解包Windows安装程序:innoextract的3种实用场景解析

在Linux和macOS上解包Windows安装程序:innoextract的3种实用场景解析 【免费下载链接】innoextract A tool to unpack installers created by Inno Setup 项目地址: https://gitcode.com/gh_mirrors/in/innoextract 你是否曾经需要在Linux或macOS系统上处理W…

2026/7/26 13:07:54阅读更多 →
5分钟HTML转Figma终极指南:让网页设计转换变得简单快速

5分钟HTML转Figma终极指南:让网页设计转换变得简单快速

5分钟HTML转Figma终极指南:让网页设计转换变得简单快速 【免费下载链接】figma-html Convert any website to editable Figma designs 项目地址: https://gitcode.com/gh_mirrors/fi/figma-html 你是否曾为将网页转换为可编辑的设计稿而烦恼?HTML…

2026/7/26 13:07:54阅读更多 →
UI.Vision RPA:3步开启你的桌面自动化新时代

UI.Vision RPA:3步开启你的桌面自动化新时代

UI.Vision RPA:3步开启你的桌面自动化新时代 【免费下载链接】RPA Ui.Vision Open-Source RPA Software with Computer Vision, OCR, Anthropic Computer Use/LLM. Selenium IDE import/export. 项目地址: https://gitcode.com/gh_mirrors/rp/RPA 你是否曾幻…

2026/7/26 13:05:54阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/26 0:01:28阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/26 0:01:28阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/26 0:01:28阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/26 0:01:28阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/26 0:01:28阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/26 0:01:28阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/25 23:03:25阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/25 19:03:04阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/25 19:03:04阅读更多 →