MySQL中NULL和空字符串的区别
相信很多⽤了MySQL很久的⼈,对这两个字段属性的概念还不是很清楚,⼀般会有以下疑问:
1. 字段类型是NOT NULL,为什么可以插⼊空值?
2. NOT NULL的效率⽐NULL⾼?
3. 判断字段不为空的时,到底要select * from table where column <>还是要⽤select * from table wherecolumn is not null呢?
带着上⾯⼏个疑问,我们来深⼊研究⼀下NULL 和 NOT NULL到底有什么不⼀样。
⾸先,我们要搞清楚“空字符串” 和 “NULL” 的概念:
空值是不占⽤空间的。
MySQL中的NULL是占⽤空间的
打个⽐⽅来说,你有⼀个杯⼦,空值代表杯⼦是真空的,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还是=''要根据实际情况来进⾏区分。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论