首页/新闻资讯/正文详情

MySQL约束条件一览

发布时间:2026/11/6 1:36:24 来源:云帆数科 栏目:资讯中心
MySQL约束条件一览
文章目录1 前言2 空属性 null/not null3 默认值 default4 列描述 comment5 零填充 zerofill6 主键 primary key7 自增长 auto_increment8 唯一键 unique9 外键 foreign key1 前言约束数据库通过技术手段限制用户插入的数据保证数据合法、正确、完整、可预期。在插入/修改数据时如果按照约束条件插入/修改那么数据库中的数据就比较符合预期符合人类逻辑。常见的约束有空属性、默认值、列描述、ZEROFILL、主键、自增长、唯一键、外键站在程序猿角度必须按照约束插入数据。站在MySQL角度成功插入的数据一定符合约束。2 空属性 null/not nullNULL表示什么都没有不等于空字符串不等于0。NULL 的比较不能用等于要用is null/is not null。一般情况下插入的值不指定默认值默认值就是NULL。eg原语句createtableifnotexistst1(id itnunsignednotnull,namechar(20));优化后name字段增加了默认值NULL。CreateTable:CREATETABLEt1(idintunsignedNOTNULL,namechar(20)COLLATEutf8mb4_unicode_ciDEFAULTNULL)ENGINEInnoDBDEFAULTCHARSETutf8mb4COLLATEutf8mb4_unicode_ci3 默认值 defaultdefault的使用就像C中的缺省值。使用方法createtableifnotexistst2(namechar(20),agetinyintunsignednotnulldefault18,genderchar(1)default男);需要注意的是not null和default并不冲突只是两者同时存在的情况比较少。当指定插入字段为null时不会触发dafault但会触发not null。4 列描述 commentcomment就像注释一样不是给mysql看的是给程序猿看的。之所以说comment是一种约束是因为它是一种程序猿之间的约束。5 零填充 zerofillzerofill不影响底层存储的数据只是以更规整的格式显示。如果数据位数大约显示位数则按照数据显示否则补充0到显示位数。createtableifnotexistst3(idint(5)zerofill);6 主键 primary key主键用于标识一条记录的唯一性。即不能重复、非空。主键可以是一个字段构成也可以是多个字段构成即符合主键。数据库会在主键字段建立索引加快查询效率。主键通常是int类型。注意主键字段尽量不要是业务当业务变化时主键字段就非常尴尬。eg:createtableifnotexistst4(idintprimarykeycomment这是主键,namevarchar(20)notnull,agetinyintunsignednotnulldefault18);主键的功能约等于uniquenot null但意义不同。一张表中只能有一个primary key。7 自增长 auto_increment自增长主要是解决主键冲突问题的。常与主键、唯一键、索引搭配使用。自增长是表级约束可以指定默认值开始增长不指定则为1。自定从10开始增长egcreatetableifnotexistst5(idintprimarykeyauto_increment,namevarchar(20)notnull)auto_increment10;如果指定了一个较大的 id 下次从较大值下一个数字开始增长且以后不能指定更小的值。获取最后一次插入自增值selectlast_insert_id();早期QQ号通过auto_increment实现的。8 唯一键 unique唯一键保证某一字段不重复加上not null可以模拟primary key的效果但意义不同。一个表可以有多个unique字段mysql 会在unique字段自动建立索引。unique也是用于保证数据完整性的例如电话号码、身份证等。createtableifnotexistst6(idintprimarykey,namechar(20)notnull,telphonechar(11)notnullunique);虽然电话号码在现实一定不会重复但是加上unique约束对数据的要求更加严格避免了程序猿的粗心操作。9 外键 foreign keyforeign key也是表级约束强调的是表与表之间的关联、表与表之间的约束。从表的foreign key字段一般依赖主表的primary key或者unique字段。如下两表存在依赖关系。eg:createtableifnotexistsclassroom(idintprimarykey,NumOfTeachertinyintnotnull);createtableifnotexistsstudent(idintprimarykey,namechar(20)notnull,class_idintnotnull,foreignkey(class_id)referencesclassroom(id));-------------------------------------------------- | Field | Type | Null | Key | Default | Extra | -------------------------------------------------- | id | int | NO | PRI | NULL | | | NumOfTeacher | tinyint | NO | | NULL | | -------------------------------------------------- mysql desc student; ----------------------------------------------- | Field | Type | Null | Key | Default | Extra | ----------------------------------------------- | id | int | NO | PRI | NULL | | | name | char(20) | NO | | NULL | | | class_id | int | NO | MUL | NULL | | -----------------------------------------------

相关推荐

二修板越修越烂?避开这几个前人挖的坑,少赔不少钱
二修板越修越烂?避开这几个前人挖的坑,少赔不少钱

干维修这行,最头疼的活不是炸得黢黑的新故障板,是被别人修过一遍的二修板。上家挖的坑全藏在焊锡底下,看不见摸不着。新手没经验,拿过来就上电、就拆件,钱没赚到不说,炸了零件、搞坏焊盘,最后锅… · 2026/11/6 1:35:24

一项跨模型系列的潜空间安全探针可复现性研究
一项跨模型系列的潜空间安全探针可复现性研究

大家读完觉得有帮助记得关注和点赞!!!摘要研究表明在单个8B模型(LLaMA-3.1-8B)的最后一层激活上训练的轻量级MLP探针,使用每个基准测试一个探针,就能以与大1000倍的防护模型相当的F1分数检测有害… · 2026/11/6 1:35:24

Transformers加载Huihui-Qwen3.8-27B-abliterated实战:流式输出、思考模式与推理指标代码全解析
Transformers加载Huihui-Qwen3.8-27B-abliterated实战:流式输出、思考模式与推理指标代码全解析

人工智能大模型多模态本地部署 【免费下载链接】Huihui-Qwen3.8-27B-abliterated 项目地址: https://ai.gitcode.com/dbe/Huihui-Qwen3.8-27B-abliterated 点击查看 免费下载 Huihui-Qwen3.8-27B-abliterated 是 huihui-ai 基于 Qwen3.8-27B 制作的"abliterat… · 2026/11/6 1:35:24

Folia 歌词动画播放器 4 个关卡零基础上手:第一次播通你的第一首歌
Folia 歌词动画播放器 4 个关卡零基础上手:第一次播通你的第一首歌

Folia 歌词动画播放器 4 个关卡零基础上手:第一次播通你的第一首歌 【免费下载链接】folia-major 专注于绚丽的歌词动画效果的本地音乐/navidrome/第三方多平台在线音乐播放器 A multi-platform music player for local files, Navidrome, and online streaming ser… · 2026/11/6 1:38:26

AgentCraft的Minecraft Mod是如何造出来的:把AI日志变成实时办公室场景全解析
AgentCraft的Minecraft Mod是如何造出来的:把AI日志变成实时办公室场景全解析

【免费下载链接】agentcraft Manage your real AI agents, using Minecraft as your interface! 项目地址: https://gitcode.com/gh_mirrors/agen/agentcraft 点击查看 免费下载 AgentCraft 是一个开源 Minecraft Mod(配合 Foreman 编排器)&… · 2026/11/6 1:38:26

Terra Packages 完全指南:Fedora 滚动更新仓库如何让你一键用上 1300+ 软件包的最新版本
Terra Packages 完全指南:Fedora 滚动更新仓库如何让你一键用上 1300+ 软件包的最新版本

【免费下载链接】packages Monorepo for Terra Packages 项目地址: https://gitcode.com/gh_mirrors/packages28/packages 点击查看 免费下载 Terra Packages 是一个面向 Fedora 用户的滚动更新软件仓库(rolling-release repository)&#x… · 2026/11/6 1:38:26

如何 10 分钟把微信聊天记录做成网页存档:留痕(WeChatMsg)导出工具全流程
如何 10 分钟把微信聊天记录做成网页存档:留痕(WeChatMsg)导出工具全流程

如何 10 分钟把微信聊天记录做成网页存档:留痕(WeChatMsg)导出工具全流程 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: http… · 2026/11/6 1:38:26

水电费收到了反馈
水电费收到了反馈

水电费水电费水电费首付款水电费 收到 · 2026/11/6 1:38:26

把“怎么做研究”写进文件:从 scientific-agent-skills 看科研 Agent 的程序性知识层
把“怎么做研究”写进文件:从 scientific-agent-skills 看科研 Agent 的程序性知识层

目录 一、一个没有运行时的仓库为什么会登上周榜 (一)从一周七千余星说起 (二)问题与结论说明 二、科研 Agent 工具化的三代路径 (一)第一代:领域工具集 (二)第二代… · 2026/11/6 1:37:26

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07

三菱PLC数据采集到数据库的时序设计:Python+MC协议实战
三菱PLC数据采集到数据库的时序设计:Python+MC协议实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11

ASIC主模式RTL设计:状态机与三态驱动的流片级实现
ASIC主模式RTL设计:状态机与三态驱动的流片级实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11

STM32嵌入式C++开发:GDB调试与Renode仿真实战指南
STM32嵌入式C++开发:GDB调试与Renode仿真实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码