设为首页 加入收藏

TOP

MySQL NULL值特性
2018-12-27 14:14:34 】 浏览:73
Tags:MySQL NULL 特性

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


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


 



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


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


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




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


 


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


 
span>


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


 


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


 


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


 




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


 


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


 


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


 




 



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


 


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


 




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


 


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


 



编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Redis偶发连接失败案例分析 下一篇TIDB 数据库集群部署

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(217) }