前言

最近发现带的小伙伴写sql对于空值的判断方法不正确,导致程序里面的数据产生错误,在此进行一下整理,方便大家以后正确的判断空值。以下带来示例给大家进行讲解。

建表

create table test (colA varchar(10) not null,colB varchar(10) null);

向test表中插入数据

插入colA为null的数据

insert into test values (null,1);

此时会报错,因为colA列不能为null。

插入colB为null的数据

insert into test values (1,null);

发现插入成功。

插入都为空的数据

insert into test values ('','');

插入colA为空的数据

insert into test values ('',null);

发现向colA一列插入空值成功,而colB列既可以插入空值,也可以插入NULL值。

总结一下,定义为NOT NULL的字段只能插入空值,不能插入null值,而NULL字段可以插入空值,也可以插入null值。

插入都不为空的数据

insert into test values (1,2);

开始查询

可以发现 is not null 只会过滤为null值的列,而<>会同时过滤空值和null值,所以要根据实际情况选择过滤方式。

另外,判断null值只能用 is null 或 is not null ,不能用 = 或 <>。

特别注意

1、在进行count()统计某列的记录数的时候,如果采用的NULL值,会别系统自动忽略掉,但是空值是会进行统计到其中的。

2、判断NULL 用IS NULL 或者 is not null,SQL 语句函数中可以使用ifnull()函数来进行处理,判断空字符用 = 或者 <> 来进行处理

3、对于MySQL特殊的注意事项,对于timestamp数据类型,如果往这个数据类型插入的列插入NULL值,则出现的值是当前系统时间。插入空值,则会出现 ‘0000-00-00 00:00:00'

4、对于空值的判断到底是使用is null 还是 = 要根据实际业务来进行区分。

5、当使用ORDER BY时,首先呈现NULL值。如果你用DESC以降序排序,NULL值最后显示。当使用GROUP BY时,所有的NULL值被认为是相等的,故只显示一行。

总结

mysql group by 区分null 值和非null_你知道mysql中空值和null值的区别吗相关推荐

  1. 你还不知道mysql中空值和null值的区别吗?

    前言 最近发现带的小伙伴写sql对于空值的判断方法不正确,导致程序里面的数据产生错误,在此进行一下整理,方便大家以后正确的判断空值.以下带来示例给大家进行讲解. 建表 create table tes ...

  2. mysql两个空值相同吗_你知道mysql中空值和null值的区别吗

    前言 最近发现带的小伙伴写sql对于空值的判断方法不正确,导致程序里面的数据产生错误,在此进行一下整理,方便大家以后正确的判断空值.以下带来示例给大家进行讲解. 建表 create table tes ...

  3. mysql 中空值平均_mysql中空值和null值的区别及处理方法总结

    原帖:https://blog.csdn.net/weixin_42214393/article/details/80463912 一.首先就是在概念上的不同: 1. 空值不占空间 2. null值占 ...

  4. mysql中0和空值_SQL中空值 和NULL的概念:

    在详细讲解null之前,我们先看一个例子 表数据如下: 3306>select * from t1; +------+-------+ | id | name | +------+------- ...

  5. list中抽出某一个字段的值_使用LINQ获取List列表中的某个字段值

    使用LINQ获取列表中的某个字段值,下面以获取员工列表中的编号字段为例子. 1.使用Select方法 1 List emplayeeList = GetEmplayeeList(); //获取员工信息 ...

  6. freemaker中空值,null值,不存在的属性的判断

    freemaker中的"!"和"??"的区别 第一种情况:属性不存在 !--freemaker <label class="lab-item&q ...

  7. angular监听输入框值的变化_如何检测Angular中@Input()值何时发生变化?

    Actually, there are two ways of detecting and acting up on when an input changes in the child compon ...

  8. java中 byte 取值范围_【二进制基础-java中byte的取值范围-推导过程】

    java中用补码表示二进制数,补码的最高位是符号位,最高位为"0"表示正数,最高位为"1"表示负数. 正数补码为其本身: 负数补码为其绝对值各位取反加1: 例如 ...

  9. MySQL约束-自增长约束(auto_increment)、非空约束(not null)、唯一约束(unique)

    目录 自增长约束概念 特点 自增字段初始值 delete和truncate在删除后自增列的变化 非空约束概念 删除非空约束 唯一约束概念 文末资源推荐 每文一语 自增长约束概念 在 MySQL 中,当 ...

最新文章

  1. MySQL复制经常使用拓扑结构具体解释
  2. sql server自动备份
  3. Android 使用XmlPullParser解析xml
  4. mongoose 入门以及 mongoose 实现数据 的增、删、改、查
  5. puppet语法学习
  6. PostgreSQL 12系统表(5)pg_index
  7. 漫画:为什么下载电影进度总是卡在 99% 就不动了?
  8. 回调函数 EnumFontFamProc
  9. SDUT_经典线型DP
  10. 管理新论:少谈精神文化,强调工作作风
  11. MathType快捷键
  12. Fishermen Gym - 101964E(二分+前缀数组)
  13. 黑群晖折腾之docker系列之迅雷远程下载
  14. 将格林威治时间转换为北京时间
  15. 基于JavaEE的智能化网吧服务系统的设计与实现毕业设计论文
  16. stm32控制步进电机
  17. 谢谢这世间,所有不动声色的善良
  18. MQTT Web Toolkit - MQTT 在线测试工具正式发布
  19. 2023年湖北建筑工程类中级职称评审条件和要求是什么?启程别
  20. 【Paper Reading】Privacy-Preserving Aggregation in Federated Learning: A Survey

热门文章

  1. 多设备同步表数据_利用Excel数据透视表解决两份报表数据不同步问题
  2. webpack多个Html,少量修改webpack配置支持打包多页面
  3. python 物联网开发板_物联网学什么开发板好?
  4. 双目标帕累托优化_多目标稳健性决策规划(MORDM)
  5. 抽奖 | 送树莓派PICO开发板、机械键盘、声控鼠标
  6. 三种常见嵌入式设备通信协议
  7. 在python中用import或者from_[转]python基础之---import与from...import....
  8. java wav 切割_WAV音频定长分段切取
  9. android 获取元素的下标_Appium中定位方式by_android_uiautomator
  10. IDEA模块(module)的概念和使用_对比Eclipse