阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL NULL值特性

128次阅读
没有评论

共计 949 个字符,预计需要花费 3 分钟才能阅读完成。

NULL 是一种“没有类型”的值,通常表示“无值”,“未知值”,“缺失值”,“超界”,“不在其中”等,我们在日常运用中很容易和 NULL 字符串混淆,这里大致整理了下 NULL 值的一些特性,以便能够正确使用 NULL 值。

1,创建表时字段时若未添加默认值,则默认为 NULL 值

 MySQL NULL 值特性

MySQL NULL 值特性

2,NULL 值和 NULL 字符串的区别

1)NULL 值不区分大小写,查询时都显示为大写 NULL,而 NULL 字符串则显示为插入时候的大小写,查询的时候根据字符集是否区分大小写筛选,或者通过语句级的 collate 或 binary 指定是否区分大小写。

2)NULL 字符串可以当作普通字符串进行处理,而 NULL 值的判断只有 is null 和 is not null,见第 5 点

MySQL NULL 值特性

MySQL NULL 值特性

3,插入数据时若不指定值,如果没其它默认值,会用默认值 NULL

 MySQL NULL 值特性

4,当插入大写 NULL 字符时,就很难区别 NULL 是 NULL 值还是 NULL 字符串了,这时需要用到 NULL 值的判断,NULL 值的判断只有 is NULL 和 is not NULL

 MySQL NULL 值特性

通过肉眼很难区别,这里通过 NULL 值的判断,可以看到 id2 为 NULL 值的只有 3 行,非 NULL 值的有 7 行,而为 NULL 字符串的有 4 行

 MySQL NULL 值特性

5,SQL 里面对 NULL 值的处理函数有 isnull(expr)(返回 is NULL 的逻辑判断结果) 和 ifnull(expr1,expr2)(如果 expr1 is null 则返回 expr2,否则返回 expr1)

 MySQL NULL 值特性

6,和 NULL 值的比较运算和算术运算,结果仍为 NULL 值,但是 <=> 运算符时,NULL<=>NULL 为真

 MySQL NULL 值特性

MySQL NULL 值特性

MySQL NULL 值特性

7,和 NULL 值的逻辑运算,is NULL 运算只有 null is null 为真返回数字 1,is not NULL 运算只有 null is not null 为假返回数字 0

 MySQL NULL 值特性

8,MySQL 会把单独的 \N(区分大小写) 当作 NULL 值

 MySQL NULL 值特性

9,NULL 值和空字符’’不一样,查询字段为空字符时,可以用等号,不考虑长度,都显示为空,但是长度不一样

 MySQL NULL 值特性

MySQL NULL 值特性

MySQL NULL 值特性

 MySQL NULL 值特性

MySQL NULL 值特性

10,空字符和其他字符做算术运算时当作 0 处理,但是当做分母时运算结果为 NULL

 MySQL NULL 值特性

11,NULL 值会被 count(字段)函数过滤,但是在 count(*) 中不会被过滤

 MySQL NULL 值特性

MySQL NULL 值特性

MySQL NULL 值特性

12,在 group by 函数中 NULL 会当作同一个值放在最最小值前

 MySQL NULL 值特性

13,其他一些函数中如果有 NULL 值,返回结果为 NULL,如:

 MySQL NULL 值特性

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计949字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中