mysql null 风险_MySQL为Null会导致5个问题(个个致命)

正式开始之前,我们先来看下 MySQL 服务器的配置和版本号信息,如下图所示:

8e5493b5e61d8cb63a8baa73439b2554.png

“兵马未动粮草先行”,看完了相关的配置之后,我们先来创建一张测试表和一些测试数据。

-- 如果存在 person 表先删除

DROP TABLE IF EXISTS person;

-- 创建 person 表,其中 username 字段可为空,并为其设置普通索引

CREATE TABLE person (

id INT PRIMARY KEY auto_increment,

name VARCHAR(20),

mobile VARCHAR(13),

index(name)

) ENGINE='innodb';

-- person 表添加测试数据

insert into person(name,mobile) values('Java','13333333330'),

('MySQL','13333333331'),

('Redis','13333333332'),

('Kafka','13333333333'),

('Spring','13333333334'),

('MyBatis','13333333335'),

('RabbitMQ','13333333336'),

('Golang','13333333337'),

(NULL,'13333333338'),

(NULL,'13333333339');

select * from person;

构建的测试数据,如下图所示:

c003674e6c4d515fa76d0758dbdc48ea.png

有了数据之后,我们就来看当列中存在 NULL 值时,究竟会导致哪些问题?

1.count 数据丢失

当某列存在 NULL 值时,再使用 count 查询该列,就会出现数据“丢失”问题,如下 SQL 所示:

select count(*),count(name)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值