MySQL数据库的 NULL 和 空值和字符串NULL

本文探讨了MySQL中NULL值和空字符串的区别,包括它们在存储时的空间占用。通过实例展示了创建表和插入数据的过程,并提到了查询NULL值和空字符串的注意事项,如使用isNULL和=''.同时,强调了count()函数在统计时对NULL值的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.空间占用测试

mysql> select length(NULL), length(''), length('NULL');
+--------------+------------+-------------+
| length(NULL) | length('') | length('1') |
+--------------+------------+-------------+
|         NULL |          0 |           4 |
+--------------+------------+-------------+
1 row in set (0.03 sec)

注:空串是不占用存储空间的

2.实战

-- 创建表
create table tb_test_1(
  id int unsigned primary key auto_increment,   --自增
  one varchar(10) NOT NULL,
  two varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;   -- 字符集格式



create table tb_test_2(
  id int unsigned primary key auto_increment,   
  one varchar(10) NOT NULL,
  two varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;   



-- 模拟数据
insert into tb_test_1(one,two) values (1,NULL);
insert into tb_test_1(one,two) values (2,'');
insert into tb_test_1(one,two) values (2,"NULL");
insert into tb_test_1(one,two) values (3,3);

insert into tb_test_2(one,two) values (4,NULL);
insert into tb_test_2(one,two) values (4,'');
insert into tb_test_2(one,two) values (5,"NULL");
insert into tb_test_2(one,two) values (6,3);

执行结果:

 

注:

         1.  == 如果要单纯查NULL值列,则使用 is NULL去查,单纯去查空值('')列,则使用 ='’

   2. 其他可以关联包括空串,但null不能

   3. count(字段)不会统计null值,count(*)可以 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值