news 2026/6/10 15:24:47

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/6/10 12:32:25

领域知识库数据增强提示专业性:提示工程架构师的进阶技巧

提示工程架构师的进阶技巧:从“写Prompt”到“设计提示系统” 一、引言:为什么你需要从“Prompt工程师”升级为“提示工程架构师”? 1. 一个让所有Prompt工程师崩溃的场景 你是否曾遇到过这样的困境? 为客服AI设计的prompt&#x…

作者头像 李华
网站建设 2026/6/10 12:25:36

【课程设计/毕业设计】基于springboot智慧医疗APP基于springboot+安卓的智慧医疗系统设计与实现【附源码、数据库、万字文档】

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

作者头像 李华
网站建设 2026/6/10 14:31:39

AI时代必备技能:用户意图理解在原生应用中的落地实践

AI时代必备技能:用户意图理解在原生应用中的落地实践关键词:AI时代、用户意图理解、原生应用、落地实践、自然语言处理摘要:本文聚焦于AI时代下用户意图理解在原生应用中的落地实践。首先介绍了相关背景知识,包括目的、预期读者等…

作者头像 李华
网站建设 2026/6/10 12:34:33

Java高频面试题:Spring和SpringBoot的关系和区别?

大家好,我是锋哥。今天分享关于【Java高频面试题:Spring和SpringBoot的关系和区别?】面试题。希望对大家有帮助; Java高频面试题:Spring和SpringBoot的关系和区别? Spring和Spring Boot是两种与Java开发相…

作者头像 李华