news 2026/2/28 5:27:14

MySQL新手入门:吃透2个最常用的约束,少踩入门坑

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL新手入门:吃透2个最常用的约束,少踩入门坑

我是一名大一新生,之前学过一点Java基础,对数据库的了解只停留在“知道MySQL是存数据的”这个层面。

因为平时没有项目和实战经历,写MySQL建表语句也只是照着课本敲,根本不知道“约束”有什么用,直到老师布置的简单练习里,我因为没加约束,敲出来的数据乱得一塌糊涂,才慢慢重视起这个知识点。

其实约束一点都不难懂,说白了就是给数据表定的小规矩,哪些数据能存、哪些不能存,都按规矩来,数据自然就整齐准确了。

我没有实战经验,就从最基础、最常用的两个约束学起,慢慢搞懂它们的用法,今天就跟和我一样的新手小伙伴,唠唠主键约束和非空约束。

一、非空约束:必填项的“守护神”

非空约束,看名字就知道意思,就是某个字段不能空着,必须填点东西。就像我们平时填表单,标了星号的必填项,不填就提交不了,非空约束干的就是这个活儿。

比如建个用户表,姓名和手机号肯定得填吧,总不能有个用户没名字、没联系方式,这时候就给这两个字段加上非空约束。

举个最简单的例子,建表时写“name VARCHAR(20) NOT NULL”,这里的NOT NULL就是非空约束,意思是name字段必须填值。加上之后,要是我忘了填姓名,想插数据进去,MySQL就会报错,不让我弄,这样就不会出现无效数据了。

这里跟新手们提个醒,非空约束只管字段不能空,不管你填的是什么,只要有值就可以。而且一旦加了这个约束,后面想把有值的字段改成空,也改不了,除非先把这个约束取消。

二、主键约束:数据表的“唯一身份证”

主键约束比非空约束更严格一点,它的作用就是给表里面每一条数据,弄一个独一无二、还不能空的标识,就跟我们的身份证号一样,每个人都不一样,也不可能没有。

还是拿用户表举例,我们可以加一个用户ID字段,给它设为主键约束。

简单写就是“id INT PRIMARY KEY”,PRIMARY KEY就是主键约束。这样一来,每个用户的ID都是独一份的,比如用户A是1,用户B就只能是2,不会出现两个用户都是1的情况,而且ID也不能空,每一条数据都有自己的标识。

我刚开始学的时候,踩过两个小坑,跟大家说一下,记好就能避开:

第一,一张表只能有一个主键,不能给好几个字段都设主键;

第二,主键最好用数字,比如自增的那种,简单还不容易重复,别用姓名、手机号当主键,万一后续要修改,就麻烦了。

新手小结

总结一下,新手学约束不用贪多求全,刚开始写建表语句,记住两点就够了:必填的字段加非空约束,需要唯一标识的字段加主键约束,这样数据表就能整整齐齐,后续也不用花时间清理混乱的数据。

我也是刚摸清这些门道,试着把约束用到建表里面,才发现是真的实用——原来MySQL不只是用来存数据的,还能帮我们把数据守好。

后面再慢慢学其他的约束,一步一步来,相信我们这些新手,慢慢也能把MySQL学明白~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/27 22:23:59

Matplotlib 绘图线

Matplotlib 绘图线 引言 Matplotlib 是一个功能强大的 Python 库,用于创建高质量的 2D 和 3D 图形。在数据分析、数据可视化等领域,Matplotlib 凭借其灵活性和易用性,成为了数据科学家和工程师的必备工具。本文将详细介绍 Matplotlib 中绘制线图的方法,包括基本概念、常用…

作者头像 李华
网站建设 2026/2/18 13:53:15

双喷嘴挡板电液伺服阀故障诊断方法研究

✅ 博主简介:擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导,毕业论文、期刊论文经验交流。✅成品或者定制,扫描文章底部微信二维码。1)伺服阀数学建模与典型故障机理分析双喷嘴挡板电液伺服阀的工作过程涵盖…

作者头像 李华
网站建设 2026/2/26 1:39:17

Shell test 命令详解

Shell test 命令详解 引言 Shell 是一种常用的命令行解释器,用于执行操作系统中的命令。在 Shell 编程中,test 命令是一个非常基础的命令,它主要用于条件测试。本文将详细介绍 test 命令的用法、参数、返回值以及与其他命令的结合使用。 一、test 命令的基本用法 test 命…

作者头像 李华
网站建设 2026/2/21 20:20:19

GPU 是怎么从 VBO 读顶点数据、按 VAO 的“说明书”把它拼成顶点着色器能吃的“结构化输入”的?——用大白话讲清楚这一口“顶点数据”到底怎么喂进去

你学 OpenGL 或 OpenGL ES 的时候,最容易被一堆缩写绕晕:VBO、VAO、VertexAttribPointer、layout(location=0)… 然后你照着教程抄完,屏幕上出个三角形,你心里只有一句: “我好像成功了,但我完全不知道为啥。” 尤其是这一步最魔幻: 你明明只是把一串 float 塞进了 VBO,…

作者头像 李华
网站建设 2026/2/21 13:04:17

【计算机毕业设计案例】基于springboot的养老院预约系统基于微信小程序的养老院系统的设计与实现(程序+文档+讲解+定制)

java毕业设计-基于springboot的(源码LW部署文档全bao远程调试代码讲解等) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、…

作者头像 李华