为什么建议 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。
热门推荐
机器学习和统计学有什么关系
流行趋势——设计师必知:针织世界的“提花之美“
马斯克和SpaceX因违反安全报告规则面临审查
AI时代,外语人才怎样“突围”?北京第二外国语学院强势“应答”
身上长了这几种小红点,要抓紧就医
变频泵与普通泵区别
贝尔麻痹与面瘫的区别
摩托车使用哪种导航可以避开禁摩城市?
「最不會賺錢」的5個MBTI人格公開!全球富豪榜沒FP人,原因不是「賺不到錢」
攻略 | 盘点最具香港特色的地道美食!
红薯升糖指数:烹饪方式如何影响其GI值?
防晒霜和防晒衣使用指南:物理防晒vs化学防晒,系数解读与搭配建议
猪肉香菇馅饺子大变身!还能加啥?怎么搭配才好吃?
农药信息学在线平台助力绿色农药研发
什么是现货交易中的风险控制工具?这种工具的实际操作和效果如何?
四川达州:巴人故里、中国气都
心学问教育咨询,自主探索的启明星:家庭如何激发孩子的内在动力
非小细胞肺癌晚期痛不痛?非小细胞肺癌晚期怎么治?
泰中定临床研究成果获国际认可,荣登权威医学期刊 《柳叶刀》 子刊
如果打错电话,应该如何表达歉意
梅兰竹菊象征着什么?它们的深层含义是什么?
洛阳市洛龙区:提升、守护、志愿服务 多措并举保障城区“文旅长红”
如何在电子邮件服务器上实现邮件转发?
酒后体温真的会升高吗?专家解析酒精影响体温的三大机制
如何使用IDL建立光谱数据库
国考申论出题规律与应试技巧:2024年最新指南
基于高频强调滤波的图像锐化
新车到手即贬值,中国车主换车快?汽车真的开15年就不能开了吗?
网络安全应急响应演练:构建坚不可摧的数字防线
体质辨识与临证用药:从张志远教授的案例看中医个体化治疗的重要性