为什么建议 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。
热门推荐
冬季咳嗽哮喘高发,麻黄是常用中药但需遵医嘱使用
中老年朋友,冬天来了,你的腿还好吗?
冬季感冒常用药麻黄:疗效显著但需遵医嘱使用
麻黄碱有升压作用,高血压患者慎用麻黄
老年人如何科学应对下肢动脉硬化?
艾灸新疗法,拯救下肢动脉硬化闭塞症!
三星堆文物首次进京,265件重器揭秘古蜀文明
冬季高发!如何正确识别肺结节?
从应急到陪伴:智能监控设备助力破解独居老人照护难题
从入门到疗愈:在家制作陶艺全攻略
湛江举报信泄露事件:谁来保护举报人的信息安全?
教育局严保匿名举报隐私,让公众监督无后顾之忧
工业废水处理的化学智慧:从酸碱反应到资源再生
新型复合改良剂破解南方土壤酸化难题,增产15%-50%
2025年2月起禁用脱氢乙酸钠,7类食品防腐剂使用受限
2025年2月起,脱氢乙酸钠使用范围大幅受限
脱氢乙酸钠将被禁用,月饼等食品防腐剂使用受限
风寒咳嗽颗粒:5克两次,这些人群慎用
硅藻泥和无机涂料:环保装修的新宠儿
手指养生操:告别手部皱纹疼痛,还能预防老年痴呆
装修污染,孕妇和儿童如何远离“隐形杀手”?
装修后有害物质超标?这款空气净化器救场!
新房装修后,如何科学快速除醛?
装修污染与白血病:一个真实案例引发的警示
不只是冻疮!冬季脚背肿胀的5大原因及应对方法
十笏园里的非遗文化:传统与创新的完美融合
十笏园:一座古典园林的现代转型之路
十笏园:古风打卡圣地,穿越时空的美景
北京旅游必打卡:四大经典景点推荐
上海明珠医院范杰主任教你识别肺结节早期信号