所谓的NULL就是什么都没有,连\0都没有,\0在字符串中是结束符,但是在物理内存是占空间的,等于一个字节,而NULL就是连这一个字节都没有。在数据库里是严格区分的,任何数跟NULL进行运算都是NULL, 判断值是否等于NULL,不能简单用=,而要用IS关键字, Mysql3.23.0或以后支持用 <=> 用来比较两个NULL值是否相等, 即 select * from table where id <=> NULL。
空 (NULL) 值表示数值未知(在实际意义中,如果使用null,就是代表变量值是未知的,比如手机号码设为null,说明不知道手机号码是什么)。空值不同于空白或零值。没有两个相等的空值。比较两个空值或将空值与任何其它数值相比均返回未知,这是因为每个空值均为未知。
在写入数据的时候,空字符串” 也是一个确定的值,所以就算你定义了 NOT NULL 也可以被写入。
更详细的解释如下:
null和空值的区别–转载自这里
相关文章
- xxx==null和xxx.equals(null)的区别
- VB中判断空的几种方法,Null, Missing, Empty, Nothing, vbNullString区别
- mysql numeric 空值_mysql数据库不能添加NULL值,该怎么解决 - numeric
- 解决返回json数据,属性值为null或空被省略的问题。
- MySQL IS NULL:空值查询和MySQL使用GROUP BY分组查询
- 简单聊聊Oracle和MySQL数据库的区别和使用场景
- java中的值传递和引用传递的区别?
- 拦截器获取被拦截方法的参数和返回值,并判断传参是否为空
- 前端传参了但是到了后端为null_后台只能接收get请求,使用post传值接收的数据为空,这是为什么?...
- Oracle数据库中,BLOB、CLOB 和 NCLOB的区别和使用场景及注意事项