千家信息网

MySQL系列如何理解关于NUll值

发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,这篇文章主要讲解了"MySQL系列如何理解关于NUll值",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"MySQL系列如何理解关于NUll值"吧!目录1
千家信息网最后更新 2024年11月11日MySQL系列如何理解关于NUll值

这篇文章主要讲解了"MySQL系列如何理解关于NUll值",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"MySQL系列如何理解关于NUll值"吧!

目录
  • 1.测试数据

  • 2.null值带给我们的不便影响

  • 3.空格、空值和null,我们应该怎么判断呢?

    • 1)空格、空值和null的区别

    • 2)出现了null值,我应该怎么办?

1.测试数据

create table test_null (    id int,    name varchar(20),    chinese int,    math int,    english int) charset=utf8;insert into test_null values(1,null,80,70,68),(2,'张三',60,null,null),(3,'李四',null,90,80),(4,'王五',90,60,75),(5,null,null,50,95);

结果如下:

2.null值带给我们的不便影响

1)过滤有所不同,只能使用is null或者is not null;

# null值不能使用 == 或 != 来比较# 下面两种用法都是错误的select *from test_nullwhere name == null;select *from test_nullwhere name != null;# null值一般使用 is null 或 is not null 来比较# 下面两种用法才是正确的select *from test_nullwhere name is null;select *from test_nullwhere name is not null;

2)出现null值,会导致+ - * /运算失效;

select            *,(chinese+math+english) as 总分from test_null;

结果如下:

3)null值对聚合函数无影响,聚合函数会直接忽略null值;

select     sum(chinese) 语文总分,    sum(math) 数学总分,    sum(english) 外语总分from test_null

结果如下:

3.空格、空值和null,我们应该怎么判断呢?

1)空格、空值和null的区别

用一个形象的比喻来说明这三者的区别。首先空格很好理解,一个空字符串吗,占据一定的空间大小。不好理解的其实是空值和null,空值相当于一个杯子是真空状态的,什么也没有,null表示的杯子中有空气。

MySQL中,null是未知的,且占用空间的。null使得索引、索引统计和值都更加复杂,并且影响优化器的判断。空值('')是不占用空间的,注意空值的''之间是没有空格的。在进行count()统计某一列记录数的时候,如果存在null值,会被系统自动忽略掉,但是空值会被统计到其中。判断null使用的是is nullis not null,但判断空字符使用的是= ,!=, <>来进行处理。对于timestamp数据类型,如果插入null值,则出现的值是当前系统时间。插入空值,则会出现0000-00-00 00:00:00。对于已经创建好的表,普通的列将null修改为not null带来的性能提升较小,所以调优时候没有比要注意。

2)出现了null值,我应该怎么办?

通过上面的分析我们已经知道了,当表中存在null值,会导致加、减、乘、除运算失效。那么我们怎么处理这些null值比较好呢?

第一种方式:直接使用is not null将这些null值过滤掉,但是这样会将其它非缺失值的字段过滤掉,造成数据的浪费。

第二种方式:也是我们推荐的方式,我们使用函数进行缺失值的填充。

ifnull()和coalesce()函数的使用:

select             id,            coalesce(name,'无名氏') name,            coalesce(chinese,0) chinese,            ifnull(math,0) math,            ifnull(english,0) englishfrom test_null;

结果如下:

感谢各位的阅读,以上就是"MySQL系列如何理解关于NUll值"的内容了,经过本文的学习后,相信大家对MySQL系列如何理解关于NUll值这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

空格 函数 总分 数据 结果 方式 空间 学习 影响 统计 不便 内容 怎么办 时候 杯子 空字符 系统 索引 缺失 处理 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 实体类跟数据库表不对应 通信弱电网络技术员做什么 国泰安数据库CEO的任期 修武网警开展网络安全宣传 药学数据库怎么相互映射 政务云网络安全自查报告范文 北京网络软件开发价目表 网络安全产业园 建设 物理网络技术就业方向 csgo经常连接不到服务器 安全狗怎样设置服务器 徐州专业性网络技术哪家好 工信部关于网络安全工作 网络安全研究内容有哪些 网络安全危害分析 安全风险数据库样表 怎么描述软件开发需求 网络安全人才培训议论文 湖北电脑软件开发哪家好 暴雪战网不同服务器能加好友吗 幼儿园网络安全宣传周教案 数据库如何记录空字符串 专科计算机网络技术学高数吗 网络安全产品销售个人简历范文 徐汇区智能化软件开发专业服务 qt做服务器和客户端软件 数据库表名与参数名相同 网络技术基础第一课 服务器能改成家用电脑吗 地平线4拍卖场服务器
0