MySQL 数据库约束知识点整理(主键、自增、外键完整案例)
文章目录一、数据库约束1.1 常见约束类型1.2 NOT NULL1.3 UNIQUE1.4 DEFAULT1.5 主键PRIMARY KEY1.6 外键FOREIGN KEY一、数据库约束是关系型数据库的一个重要功能约束一般是指定在列上的。1.1 常见约束类型约束类型作用NOT NULL字段不能为空UNIQUE字段值不能重复PRIMARY KEY唯一 非空FOREIGN KEY建立表与表之间的关联DEFAULT设置默认值约束的作用保证数据的准确性和完整性。1.2 NOT NULLNOT NULL 表示某列不能存储NULL值NOT NULL的作用如果要把一个列定义为必填项就可以使用NOT NULL非空约束示例在创建表时可以在相应字段加入约束类型示例NO 表示当前列不能为空YES 表示当前列可以为空写入数据时会报错提示不能写入NULL值这是因为数据库做了校验1.3 UNIQUE保证某列的每行必须有唯一值也就是说某列的值在整个表中不能重复示例所以需要加入unique约束去创建表示例示例⚠️ 注意NULL值可以重复插入1.4 DEFAULT规定没有给列赋值时的默认值示例在插入时只指定了id没有指定name此时name用默认值填充示例⚠️ 注意虽然指定了默认约束但是当我们手动将这一列的值设置为NULL时插入的值依然是NULL因为此时的这个NULL值是我们手动指定的也可以理解为我们想要的值。用户指定的优先级高于默认约束示例1.5 主键PRIMARY KEYNOT NULL 和 UNIQUE的结合有助于更容易快速的找到表中特定的记录。特点唯一不能为空一张表只能有一个主键示例createtablestudent(idint,namevarchar(50),primarykey(id));id列指定的非空和唯一约束列被表示为了PRI表示他是一个主键示例主键两个约束同时生效⚠️ 注意设置主键的核心作用唯一标识一条记录 提高查询效率 维护数据完整性 支持表关联在实际开发中每张表都应该设计主键一般使用自增 id。让数据库帮我们去维护主键的增长在插入的时候先找到最大值然后在这个基础上加1生成一个新的值作为新一个数据行主键id列的值。示例全列插入在写入数据时不具体指定主键列的值而是用NULL代替示例指定列插入当指定列插入也会自动生成id作为数据行的主键示例可以指定主键可以指定主键只要主键不重复即可示例主键值自增1在最大值的基础上加1所以主键值在数据表中有可能是不连续的一个表中不允许有两个主键示例⚠️ 注意一个主键可以同时包含多个列复合主键示例这里id和name复合主键中的列值都相同所以被判定为相同第二条数据插入失败1.6 外键FOREIGN KEY外键用于建立两张表之间的联系。foreignkey(字段名)references主表(列)说明foreign key创建外键的关键字字段名表示当 前表中哪个字段与主表建立主外键关系references关键字表示后面要引用哪个表中的哪个列主表(列)指定主表和相应的列⚠️ 注意外键字段必须与被关联字段类型一致用于维护数据之间的关联关系示例创建班级表和学生表但不创建外键学生表中有一个字段是班级编号写入数据时这个编号必须是有效的在class表中插入几个班级在student表中插入了编号5这个班级但这个班级根本不存在此时数据依然能写入成功是不合理的。示例创建班级表和学生表但创建外键这里不存在编号为5的班级所以插入数据失败。⚠️ 注意当子表中存在对主表的依赖的时候能不能删除主表中相应的记录依然会报主外键关系的错误。所以如果想要删除主表中的记录子表中不能有对该记录的依赖。也就意味着需要先删除子表中的记录再去删主表中的记录。

相关新闻

从理论到实践:大数据诊断性分析的完整教程

从理论到实践:大数据诊断性分析的完整教程

从理论到实践:大数据诊断性分析的完整教程 关键词:大数据、诊断性分析、理论、实践、数据分析 摘要:本文旨在为大家提供一个从理论到实践的大数据诊断性分析完整教程。我们将先介绍大数据诊断性分析的背景知识,包括目的、预期读者等。接着详细解释核心概念,阐述它们之间的…

2026/7/4 22:19:11 阅读更多 →
芒格的“赢家的诅咒“提醒在高科技并购中的应用

芒格的“赢家的诅咒“提醒在高科技并购中的应用

芒格的“赢家的诅咒”提醒在高科技并购中的应用 关键词:赢家的诅咒、高科技并购、估值偏差、信息不对称、协同效应 摘要:本文聚焦于芒格提出的“赢家的诅咒”概念在高科技并购领域的应用。首先介绍了“赢家的诅咒”的背景知识及其在高科技并购中的重要性,接着阐述了相关核心…

2026/7/3 19:32:57 阅读更多 →
【YOLOv11多模态涨点改进】独家复现创新首发 | CVPR 2025 | 引入 FEFM 频率穷举融合机制和二次创新CFEM交叉融合增强模块,适合红外与可见光融合,多模态融合目标检测、实例分割

【YOLOv11多模态涨点改进】独家复现创新首发 | CVPR 2025 | 引入 FEFM 频率穷举融合机制和二次创新CFEM交叉融合增强模块,适合红外与可见光融合,多模态融合目标检测、实例分割

一、本文介绍 本文介绍使用 FEFM(Frequency Exhaustive Fusion Mechanism)模块改进 YOLOv11 多模态目标检测框架,可有效提升模型在复杂场景下的检测精度。FEFM 通过强化跨模态(如 RGB 与 NIR)间的共性特征并补充差异性高频纹理信息,使得特征表达更加丰富和鲁棒,尤其在低…

2026/5/17 4:24:18 阅读更多 →

最新新闻

Umi-OCR终极指南:免费离线文字识别软件的完整配置与优化教程

Umi-OCR终极指南:免费离线文字识别软件的完整配置与优化教程

Umi-OCR终极指南:免费离线文字识别软件的完整配置与优化教程 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多…

2026/7/4 22:12:22 阅读更多 →
postcss-write-svg:革命性CSS SVG编写工具,让图形开发效率提升10倍!

postcss-write-svg:革命性CSS SVG编写工具,让图形开发效率提升10倍!

postcss-write-svg:革命性CSS SVG编写工具,让图形开发效率提升10倍! 【免费下载链接】postcss-write-svg Write SVGs directly in CSS 项目地址: https://gitcode.com/gh_mirrors/po/postcss-write-svg 你是否厌倦了在CSS和SVG文件之间…

2026/7/4 22:12:21 阅读更多 →
3大架构优化策略:如何构建高可用AI网关服务

3大架构优化策略:如何构建高可用AI网关服务

3大架构优化策略:如何构建高可用AI网关服务 【免费下载链接】new-api A unified AI model hub for aggregation & distribution. It supports cross-converting various LLMs into OpenAI-compatible, Claude-compatible, or Gemini-compatible formats. A cent…

2026/7/4 22:12:21 阅读更多 →
Agent Skills技能发现机制:如何让AI助手智能匹配任务与技能

Agent Skills技能发现机制:如何让AI助手智能匹配任务与技能

Agent Skills技能发现机制:如何让AI助手智能匹配任务与技能 【免费下载链接】agentskills Specification and documentation for Agent Skills 项目地址: https://gitcode.com/GitHub_Trending/ag/agentskills Agent Skills是GitHub推荐项目精选(…

2026/7/4 22:10:20 阅读更多 →
RestFB实战教程:10个常见Facebook API操作示例

RestFB实战教程:10个常见Facebook API操作示例

RestFB实战教程:10个常见Facebook API操作示例 【免费下载链接】restfb RestFB is a simple and flexible Facebook Graph API client written in Java. 项目地址: https://gitcode.com/gh_mirrors/re/restfb 想要在Java应用中快速集成Facebook功能&#xff…

2026/7/4 22:10:20 阅读更多 →
如何搭建Leela Chess Zero环境?5分钟快速启动你的AI象棋之旅

如何搭建Leela Chess Zero环境?5分钟快速启动你的AI象棋之旅

如何搭建Leela Chess Zero环境?5分钟快速启动你的AI象棋之旅 【免费下载链接】leela-chess **MOVED TO https://github.com/LeelaChessZero/leela-chess ** A chess adaption of GCPs Leela Zero 项目地址: https://gitcode.com/gh_mirrors/le/leela-chess L…

2026/7/4 22:08:18 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻