news 2026/7/15 5:07:24

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/7/1 9:29:21

小程序毕设选题推荐:基于springboot+Android的养宠交流系统基于Android的宠物社区app设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/7/1 22:55:50

谷歌为BigQuery增添对话式智能体和自定义工具

谷歌在其BigQuery数据仓库中新增了对话式分析功能,该公司表示这将允许企业数据团队和业务用户以自然语言的方式询问数据相关问题,从而加速AI应用场景的数据分析工作。对话式分析智能体的工作原理这个目前处于预览阶段的智能体,可以在BigQuery…

作者头像 李华
网站建设 2026/7/1 20:54:07

mss 截图所有的显示器 python

import mss import matplotlib.pyplot as plt from PIL import Image import platform# 自动启用中文字体 def setup_chinese():sys platform.system()if sys "Windows":plt.rcParams[font.sans-serif] [Microsoft YaHei, SimHei]elif sys "Darwin":…

作者头像 李华
网站建设 2026/7/1 9:29:27

小程序毕设项目:基于Vue+Node.js的民艺探索传承之旅微信小程序设计(源码+文档,讲解、调试运行,定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华