为什么建议 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。
热门推荐
小狗尿红?别慌,原因揭秘!
女人吃桑葚的好处
不吃主食能减肥吗?医生的专业解答来了
留守儿童,需要哪些社会支持?
常用的求导公式大全
金命相克的是啥命?和木命吗?
创伤急救知识,你了解多少?
维多利亚时期的英国为何如此强大?
意甲前瞻:威尼斯11场不胜为保级急需抢分,那不勒斯冲胜或登榜首
指数榜丨湖南白酒市场综合实力指数榜出炉 茅台稳居榜首
希特勒明知两线作战必败,为何击败英国前就去进攻苏联
从银幕到现实 从观影到赏景!更多外国友人爱上了“中国行”
老年呼吸系统感染应用抗生素有哪些注意事项
瓜车前叉年度排行榜及选购指南大全
张红甫教你做羊蝎子美食
散光轴位是什么意思
猫咪拆家,宠物行为解析
如何确保中药材生产质量管理规范的有效实施?
什么是认购倍数?认购倍数对投资决策有什么参考价值?
北京三日游最佳路线安排!你绝对想不到的北京三日游超实用攻略!
焰色反应为什么是发射光谱
执行跟强制执行有什么区别
盐碱地里育良种
手部碰伤肿胀如何快速消肿
骨骼肌收缩是什么?一文详解人体运动的奥秘
农业行业观察模式研究!工厂化育秧如何助力传统农业降低60%成本,附商业模式
无人驾驶之激光雷达深度剖析
奶油蘑菇汤没有黄油怎么办?多种替代方案让你轻松制作美味汤品
宋金战争的演变与战争策略
脑震荡治疗费用详解:从急诊到康复的全面解析