查漏补缺17--mysql中的null值

1 在数据库中NULL表示 未知的、不确定的。
NULL不等于零或空格,NULL 值不视作大于、小于或等于任何其它值。因此不能与其他变量直接进行比较。判断某列或者变量为 NULL 是只能用IS(NOT) NULL 去判断他的返回值是 true 还是 false。
① 一个NULL不与其他任何值相等;一个NULL不与其他任何值不等;
② 在对一个NULL值应用函数时,一般都会得到一个NULL值作为结果。
③ 一般而言,只要执行涉及一个或多个NULL值的比较操作,那个比较的结果也是NULL值,它不同于TRUE或FALSE,因而这样的比较除了失败,没有任何帮助作用。

2 在数据库中NULL表示未知的,但是其占用空间,不走索引

3 NULL参与排序时总是作为最小值存在,即ORDER BY COL ASC时COL为NULL的行在最前面,反之在最后面。所以升序排列并把null 放在最后一般用下面的方式

<select id="queryPage" resultType="io.sportii.common.entity.pension.ServerEntity">
        SELECT
        s.id,
        sc.`name` AS server_category_name,
        s.`name`,
        sb.`name` AS business_name,
        s.display,
        (select d.value from sys_dict d where d.type='isdisplay' and d.code=s.display) as display_name,
        s.create_date,
        s.sidx
        FROM
        pension_server AS s
        INNER JOIN pension_server_category AS sc ON s.server_category_id = sc.category_id
        INNER JOIN sys_business AS sb ON s.business_id = sb.id
        <where>
            <if test="serverCategoryName!=null and serverCategoryName!=''">
                sc.`name` = #{serverCategoryName}
            </if>
        </where>
        ORDER BY
        <choose>
            <when test="sidx != null and '' != sidx">
                ${sidx} ${order}
            </when>
            <otherwise>
                isnull(s.sidx),s.sidx,s.create_date desc
            </otherwise>
        </choose>
    </select>

4 空值 和null值之间的差异:
① 在进行count()统计某列的记录数的时候,如果采用的NULL值,会被系统自动忽略掉,但是空值是会进行统计到其中的。(count(*)会将NULL和空值都统计上)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
② 判断NULL 用IS NULL 或者 IS NOT NULL,SQL 语句函数中可以使用 ifnull() 函数来进行处理,判断空字符用 = 或者 <> 来进行处理
使用where进行查询会去除空值,如果想返回空值,则加上 字段 is null ,如下所示
在这里插入图片描述
在这里插入图片描述

③ 对于MySQL特殊的注意事项,对于timestamp数据类型,如果往这个数据类型插入的列插入NULL值,则出现的值是NULL。插入空值,则会出现 ‘0000-00-00 00:00:00’

5 数据库中的null 值和空字符串在前端的表现形式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
① 首先在数据库中任何类型的值都可以被指定为null 值,insert 未填入的值都null值,例如上面的sidx 值
② 只有varchar类型的数据可以填 空格(也就是空字符串) 如上面的name值
③ datetime类型的字段输入空格 直接转为0000-00-00 00:00:00
④ 空格字符串返回给前端时 “”

如下所示
在这里插入图片描述
⑤ null返回给前端解析的是null,如下所示
在这里插入图片描述
在这里插入图片描述

参考:JAVA与SQL 中的null与NULL

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值