【MySQL】MySQL 字段为 NULL 的5大坑

数据准备

建立一张表
在这里插入图片描述
数据如下:
在这里插入图片描述

1.count 数据丢失

count(*) 会统计值为 NULL 的行,而 count(列名) 不会统计此列为 NULL 值的行。

select count(*),count(name) from person;
-----------------------
count(*) |  count(name)10      |  8-------------------------

从结果可以看出,count(*)和count(name)的值不一样,即当使用的是 count(name) 查询时,就丢失了两条值为 NULL 的数据。

2.distinct 数据丢失

当使用语句count(distinct column1,column2)时,如果有一个字段值为空,即使另一列有不同的值,那么查询的结果也会将数据丢失, SQL如下所示:

select count(distinct name,mobile) from person;
-----------------------count(distinct name,mobile)8-------------------------

3.select 数据丢失

如果某列存在 NULL 值时,如果执行非等于查询(<>或者!=)会导致为 NULL 值的结果丢失,比如下面的这些数据:

select * from person where name <> 'Java' order by id
-------------------------------------
id    |   name    |  mobile
2     |   MySQL   |  13333333333331
3     |   Redis   |  13333333333332
4     |   Kafka   |  13333333333333
5     |   Spring  |  13333333333334
6     |   MyBatis |  13333333333335
7     |   RabbitMQ|  13333333333336
8     |   Golang  |  13333333333337------------------------------------

可以看出id=9和id=10的name为 NULL 的两条数据没有查询出来,这个结果并不符合我们的正常预期。
要全部查出可以用以下sql:

select * from person where name != 'Java' or isnull(name) order by id

4.导致空指针异常

表数据如下:
在这里插入图片描述

select sum(num) from goods where id>4;-----------------------
sum(num)NULL-------------------------

解决方法:可以使用ifnull()对空值进行处理来避免空指针异常:

select ifnull(sum(num),0) from goods where id>4;

5.增加了查询难度

当字段中有了空值,对于null值或者非null值的查询难度就增加了,必须使用与null匹配的查询方法,比如IS NULL或者IS NOT NULL又或者是IFNULL(cloumn)这样的表达式进行查询,传统的 =、!=、<>…这些表达式就不能使用了,这就增加了查询的难度。
在这里插入图片描述

select * from person where name !=null;
//没有任何数据
-------------------------------------
id    |   name    |  mobile------------------------------------select * from person where name is not null
//这种就有数据
-------------------------------------
id    |   name    |  mobile
2     |   MySQL   |  13333333333331
3     |   Redis   |  13333333333332
4     |   Kafka   |  13333333333333
5     |   Spring  |  13333333333334
6     |   MyBatis |  13333333333335
7     |   RabbitMQ|  13333333333336
8     |   Golang  |  13333333333337------------------------------------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/254328.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python模块安装方法全解析

Python模块安装方法全解析 Python是一种功能强大的编程语言&#xff0c;拥有大量的开源库&#xff0c;这些库是在各种应用程序中使用的重要组件&#xff0c;它们能加速开发过程。不管你是初学者、中级者还是高级者&#xff0c;总会遇到需要安装第三方库的情况。但是安装库是一…

如何在码云上面上传本地项目

一. 首先&#xff0c;我暂时不知道 如何直接从本地上传&#xff0c;所以提供的是一种笨方法&#xff0c;首先建立一个空仓库。 二. 在码云上面下载一个空仓库 三. 进入到相关目录&#xff0c;也就是存放项目的目录&#xff0c;打开该路径的cmd&#xff0c; 将复制好的网址 打…

chatgpt赋能python:Python中浮点数的表示方法

Python中浮点数的表示方法 在Python中&#xff0c;浮点数是一种数字类型&#xff0c;用于表示带有小数点的数值。但是&#xff0c;由于计算机在表示浮点数时存在精度限制&#xff0c;因此需要特别注意。本文将介绍Python中浮点数的表示方法及其可能导致的错误。 Python中浮点…

使用git上传本地项目到码云

因为老师要求要将近期的项目全部提交到码云上&#xff0c;故将上传方法记录下来&#xff0c;以便以后随时查阅使用。 一、git bash 首先进入项目文件中右击&#xff0c;选择git bash git init #初始化 git add . …

码云上传文件步骤

前期准备 1.码云账号&#xff0c;在官网注册https://gitee.com/ 2.安装git&#xff0c;这里有Git-2.17.0&#xff0c; 链接&#xff1a;https://pan.baidu.com/s/13cj10gRGE-kfFQllqZEXkg 提取码&#xff1a;wr47 创建码云仓库 在右上角创建 然后在这里填仓库名字和路径&am…

本地代码怎么上传到码云?

针对之前操作过码云&#xff0c;但是一段时间之后忘记改怎么操作码云的小伙伴 准备操作 第一步打开官网&#xff1a; 点击当前页的创建之后&#xff0c;跳转到这一页&#xff1a; 里面有用的就是ssh&#xff0c;将ssh里面的地址复制 然后打开项目所在目录&#xff1a;比如我的…

如何把项目上传到码云平台?

(1)登录“码云账号” (2)创建项目,也叫创建仓库。如图: (3)在本地创建一个文件夹,暂时命名为b。 (4)把码云项目克隆一份

如何将本地项目上传到码云和github,超简单

文章目录 如何将项目上传到码云和github1.找到你要上传的项目目录下1.1在路径上输入cmd&#xff0c;回车1.2输入bash.exe1.3复制你的远程库地址&#xff0c;使用 git remote add gitee [url]1.4 git remote -v 查看远程库 2.使用git add . 添加目录下的文件到本地库中3.使用git…

使用Git上传项目到码云

为了更方便的开发和管理代码&#xff0c;代码托管工具尤为重要&#xff1b;这里列出几个代码托管平台&#xff1a; GitHub https://github.com/开源中国&#xff08;码云&#xff09; http://git.oschina.net/CSDN代码托管平台 https://code.csdn.net淘宝的 http://code.taoba…

码云如何上传项目?

码云上传项目&#xff0c;需要3个步骤&#xff1a; 在码云网站建立一个空项目&#xff1b; 把这个空项目拉到本地&#xff1b; 把自己的项目放到这个空项目里面并提交。 下面是详细图文教程。 在码云网站建立一个空项目 1 在码云的页面&#xff0c;点击右上角的加号 2 选…

码云如何上传项目

码云如何上传项目 在码云的页面上,点击右上角的加号 选择新建项目 在跳转的页面简要填写项目信息,除了名称和路径,其它是非必填的 创建好后 , 就会跳转到新项目界面, 点击右边的克隆按钮,可以复制项目地址 拿到地址后,还需要在本地生成一对公钥与私钥才能克隆和在本地提交项目…

本地项目上传到gitee(码云)

默认的你git已经下载并且可以连接到gitee中 本地项目上传到gitee 1. 新建仓库2. 初始化3. 看到成功4. 使用命令添加远程仓库5. 码云上的仓库pull到本地文件夹6. 保存到缓存区7. 添加文件描述8. 提交远程仓库报错 1. 新建仓库 提示&#xff1a;简易的命令行入门教程: Git 全局设…

码云的首次使用—将本地项目上传到码云

一. 注册登录码云&#xff1a;https://gitee.com/ 二. 安装Git&#xff1a;参考教程&#xff1a;安装Git 三. 上传本地项目到码云&#xff1a;参考博客 把本地项目上传到码云的整个过程 详细步骤 1.新建仓库 2.我们把创建仓库产生的三个文件点击克隆/下载&#xff0c;把这…

如何使用码云Gitee上传本地项目

前言 相信很多同学在gitee中上传项目时会遇到了各种小问题&#xff0c;接下来我将介绍一种简单粗暴的方式来上传项目。执行以下步骤之前首先要在本地安装并配置Git并且在gitee中配置SSH公钥&#xff0c;如果不知道如何配置可以搜索一下相关博文进行学习配置。 上传本地项目 …

关于如何将本地项目上传到码云(gitee)

文章目录 前言一、Git使用前提二、具体步骤1.登录码云&#xff0c;在码云上建立项目仓库2.在项目的文件夹中右键打开Git Bush Here3.输入相关git指令4.相关指令截图 总结 前言 菜鸡本鸡最近正在学git&#xff0c;便打算在这里记录学习过程 一、Git使用前提 1、确保电脑上已经…

码云上传项目步骤

1、打开码云&#xff0c;新建仓库 2、本地新建项目文件夹 3、进入文件夹&#xff0c;右键选择git bash here 4、输入git init 这时候文件夹会多出一个.git文件夹 如果文件夹被隐藏&#xff0c;选择查看打开“显示隐藏文件” 5、进入码云新建的仓库里&#xff0c;复制仓库…

码云的上传、下载项目

添加小程序&#xff0c;兑换各种视频教程/数据资源。 2. 登录注册码云&#xff1b; 3. 创建项目&#xff1a; 4. 克隆码云地址&#xff1a; 5. 下载git到本地电脑&#xff1a; 5.1 window下载安装git方法&#xff1a;在Windows上使用Git&#xff0c;可以从Git官网直接下载安装…

码云上传本地文件夹,码云只能上传20个文件的突破方法

码云官方地址&#xff1a;https://gitee.com/ 很多人不知道码云上传本地文件夹怎么操作&#xff0c;或者如何突破码云只能上传20个文件限制的问题&#xff0c;今天就来说说这事的方法吧。 简介&#xff1a; 码云是媲美GitHub的代码管理平台&#xff0c;个人拥有5GB的免费上长…

如何上传本地代码到码云

码云是开源中国社区团队推出的基于Git的快速的、免费的、稳定的在线代码托管平台,不限制私有库和公有库数量。相较于github的国外服务器&#xff0c;码云在国内的速度那是杠杠的&#xff0c;而且其优势在于私有项目免费&#xff01;github私有项目收费。官网地址&#xff1a;ht…

如何往码云里上传项目文件?

想要往码云里上传一个项目文件&#xff0c;首先&#xff0c;我们需要的工具有&#xff1a;①git shell&#xff08;用来敲git指令&#xff09;②你自己的码云账号 第一步&#xff0c;要注册一个码云账号&#xff0c;很简单&#xff0c;不过多复述&#xff0c;注册成功后登录&a…