上周工作中,遇到数据库字段是否设为空的问题。

数据库建表时,对于一些可填可不填的字段,我们尽量把他设置为非空,这种做法:1.可提高性能,2.可在很大

程度上避免空指针一类的问题。具体的好处颇多。

1.节省空间。

大体看上去,好像设置可以为空的时候更节省空间,但实际上,他比NOT NULL要多占用一个bit的空间,用来判

断该字段是否为空。

2.NullPointerException

如前面所说,查询时,可以一定程度上减少NullPointerException,后期开发出现错误时,更好排查(毕竟空指针

是个比较令人头疼的问题)。

3.减少因空值出现的计算错误等

比如:count(),遇到null值时,这条记录不会计算在内;CONCAT(a,null)结果为null等。

4.索引

引用到null,索引会失效。还看到一个说法:空更新到非空时,会引起索引分裂(这句话不是很理解,有大佬看到麻

烦帮忙解释一下~)

5.使用!=, NOT IN的情况

NOT NULL的好处这么多,那么为什么这么多程序员还是在用NULL呢,个人分析,可能跟我一样,平时建表的时候并

没有考虑那么多,NOT NULL

原文:https://blog.csdn.net/didiliu_1111/article/details/79279414

数据库字段非空(null的缺点)相关推荐

  1. 将sql数据库字段中的NULL都替换为空

    NULL与空字符串 '' 是相同的????? 在MySQL中,这两者是完全不同的.NULL是指没有值,而"则表示值是存在的,只不过是个空值.(在Oracle中是相同的) 将sql数据库字段中 ...

  2. oracle判断非空并拼接,oracle sql 判断字段非空,数据不重复,插入多跳数据

     oracle sql 判断字段非空,数据不重复 select distinct(mobile) from wx_user_mobile where active_time is not null ...

  3. java 对象验证非空_判断Bean对象指定字段非空

    判断Bean对象指定字段非空. 方案: 在bean对象上增加注解,指定字段非空,返回异常信息有明确字段描述,省去不必要的if.else判断. 新建注解类 /** * 参数校验,判断字段非空.返回异常文 ...

  4. mybatis多条件查询处理方案(查询条件为数据库字段非传递参数)

    问题说明     关于多条件查询,大部分遇到的场景是根据传递参数的不同查询符合参数字段的数据信息.mybatis中使用频率最高的是if标签.但if标签中的test属性只支持传递参数进行判断是否相等,不 ...

  5. mysql创建字段非空NOT NULL的好处

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt338 很多表都包含可为 NULL (空值) 的列,即使应用程序井不需要保存 ...

  6. php修改数据库字段为空,为何修改信息后数据库表中内容为空

    为什么修改信息后数据库表中内容为空 套用上一套修改课题的代码写了一个修改信息的代码,但是将内容修改提交后,再查询表中内容发现除了xuehao其他内容为空? //#################### ...

  7. mysql修改表的字段非空为可以为空

    语句: ALTER TABLE 表名 MODIFY 字段名 VARCHAR(20) DEFAULT NULL

  8. SQL 判断非空 NULL :IFNUL( ) 、COALESCE( ) 、ISNULL( ) 、NVL( )

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. mysql 支持: IFNULL().COALESCE() 如 IFNULL(UnitsOnO ...

  9. day 06 非空约束、唯一约束、主键约束、外键约束

      由于sql语句不区分大小写,为了书写方便,本文所有命令统一使用小写  往期内容 day 01 初识Mysql以及DDL数据定义语言  day 02 DML数据操作语言​​​​​​ day 03 D ...

最新文章

  1. python ascii函数二进制_python模块介绍- binascii:二进制和ASCII互转以及其他进制转换...
  2. 获取当前应用程序的文件名
  3. 【Matlab 图像】边缘检测算法及效果演示
  4. java web 使用https_如何在Web应用程序中实现HTTPS登录页面?
  5. centos 上yum命令删除还原补救方法
  6. 我的世界1.11服务器咋发信息,我的世界进服务器怎么注册怎么发信息
  7. LeetCode(171)——Excel表列序号(JavaScript)
  8. 自动化测试——接口自动化——requests用法
  9. UnityShader18.1:立方体贴图(下)
  10. 关于集合和字符串的互转
  11. 漫画:如何将一个链表“逆序”?
  12. 转 Java工程师成神之路
  13. 2合1笔记本 android,华为二合一笔记本支持Android可能是鸡肋
  14. 欢度世界杯——倒时差
  15. 关于windows10在学习爬虫是用到appium配置java的jdk出现了,javac不是内部命令的解决方法(¥57)
  16. Springboot餐饮点餐系统毕业设计源码301749
  17. python定位二维码_python实现二维码、条形码识别
  18. c 语言开发什么,c语言能开发什么
  19. js 显示12小时,24小时制时间
  20. 博士申请 | 香港城市大学王鲁生教授招收生物信息学方向全奖博士生

热门文章

  1. 让孩子对外语感兴趣的三个方法
  2. Ubuntu16.04执行sudo apt-get update时出现其他软件更新错误
  3. 如何把excel同一个单元格内的文字和数字分别提取出来?
  4. 安卓录屏怎么录?这些方法可以尝试
  5. c语言 文件流 输出数据类型,总结C++中输入输出流及文件流操作
  6. mysql varchar存储字符数
  7. 2020年,大学生该如何成为一名初级码农
  8. 斜挎包长度到哪里合适_斜挎包怎么搭配好看 包包这样背才潮
  9. [BZOJ2460][BeiJing2011]元素
  10. python浮点数保留两位小数_python float保留两位小数