为什么建议 MySQL 数据库字段一定要设置 NOT NULL
创作时间:
作者:
@小白创作中心
为什么建议 MySQL 数据库字段一定要设置 NOT NULL
引用
CSDN
1.
https://blog.csdn.net/linyichao1314/article/details/137569898
在数据库设计中,是否应该为字段设置NOT NULL约束一直是一个值得探讨的话题。本文将从多个角度分析使用NOT NULL的重要性和必要性,并给出具体的使用建议。
为什么建议使用NOT NULL
在实际开发中,对是否使用NOT NULL约束,很多人并没有一个明确的标准。要知道某个字段需不需要添加NOT NULL,首先,要知道NULL和NOT NULL之间的区别,这样你才能更好地玩转NOT NULL,也避免了在项目中可能遇到的一些坑。
一、语义不清晰
NULL和NOT NULL使用空值代表的含义是不一样的。NULL我们可以认为这一列的值是未知的,空值则可以认为我们知道这个值,只不过它是空的而已。比如一张表的name字段是NULL,我们可以认为不知道名字是什么,反之如果是空字符串我们知道没有名字,它就是一个空值。
二、聚合函数计算不准确
对于NULL值的列,使用聚合函数的时候会忽略NULL值。比如表里面有两条数据,其中一条数据的name字段值为NULL,如果对name进行count,表示对非NULL列进行统计,所以查出来的结果为1,这显然是不符合我们的预期的。但是,在实际开发中一般都是对id字段进行统计数量。
三、导致等号表达式失效
比如表的name字段是NULL,如果使用等号查询,是查不到的,必须使用is NULL才能查询出来。
四、导致值运算失效
比如表的age字段值是NULL,加1之后结果还是NULL,name字段值是NULL,concat之后结果也变成了NULL,这也是不符合我们预期的。
五、一些意想不到的问题
比如表里面只有一条name为高启强的数据,但是查询不等于高启强的数据时,显示只有一条,这显然不符合我们的预期。
是否应该使用NOT NULL
个人开发建议,大多数字段应该设置NOT NULL,配合默认值default使用更好。比如:
- 用户状态字段status,只有两个值0禁用1正常。应该设置NOT NULL并设置默认值为1。
热门推荐
网上贷款平台的合法性:如何辨别真假平台,保障自身权益
“火神”又火,上线四年,《原神》何以长红
痛风患者应该如何科学饮食?
AI如何优化图像识别
空气炸锅的利弊是什么
张曼玉重返时装周:岁月无损的优雅与魅力
专家科普:来自生命远古的感知——嗅觉
免费展出,200余件石器、古生物化石等还原“东方人类的故乡”
科学研究揭示:感情越处越好的情侣都在做这4件事
尿尿出现泡沫,是肾不好?医生提醒:或是这3种疾病“通知”
阻焊层如何影响PCB的性能和可靠性
品读红楼:多元解读秦可卿
防水十大品牌PK:涂料VS卷材,家装防水该咋选?
别再乱存米饭!冰箱保存时长有讲究!
Kafka如何提高消息处理速度?
日系合资车企:产能调整挑战与未来转型之路
《钱谦益的诗文、生命与身后名》:还原一个立体的钱谦益
游戏历史上的今天:《幻想水浒传 2》,《洛克人》
哪吒导演饺子的另类人生:穷了十年,十年磨一剑
9个不需要门面的生意 不用店面的小生意盘点 小本生意做点什么好
丝印网版制作流程详解
论文阅读和代码实现EfficientDet(BiFPN)
泡脚能祛除体内湿气吗
商成汤:殷商文明的开创者,第一个有史料记载的古国
理论上雨滴能砸死人,可实际上却砸不死,你知道这是为什么吗?
告别“小蛀牙”系列之蛀牙的四大元凶与预防妙招
可扩展视频搜索:级联基础模型的革新与挑战
【技术观念】文献所见古人测度山川的技术方法
红参片的功效与作用及食用方法
顺风车的收费标准是怎样的?这种收费标准是如何制定的?