前言:
我们平时对SQL的数值处理的过程中,经常会纠结一个问题,要不要设置为null?那么null到底是什么意思?在这篇文章中,我将为大家简单的介绍一下我们使用的null。
第一,定义
Null的本意是指,空的,无结果或空集合。NULL 值是遗漏的未知数据。默认地,表的列可以存放 NULL 值。null是未知的或不适用的值的占位符
第二,SQL中的null
如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。这意味着该字段将以 NULL 值保存。
第三,图解:
从图中可以看出我的实验类型:
数据类型为整形时,为null的情况;
数据类型为字符串,为null的情况;
一个元组的数据都为null的情况;
数据类型为整形时为空的情况(在数据库中自动默认为0);
数据类型为字符串时为空的情况;
还有数据库填写一个元组的数据时,在下一行自动生成的null元组。
我们通过使用SQL语句,在数据库中查询来一一实验
1、is null与=null
这两张图,说明,is null与=null是不一样的,而且null不是一种数据类型。但是,null并不表示空,它是已经占了位置的,只是该位置的内容为null;
2、null在整型和字符串类型中
Addmoney的数据类型为整形,RechargeTime的数据类型也为整形,都可以设置为null,null可以为任何数据类型占位,更说明它不专属某个数据类型。
3、null和0
此时,AddMoney的数据类型为整型,我们的查询条件为AddMoney=0,只查到了一条数据,说明,null与0是不同的;(其实是无法比较 NULL 和 0;它们本来就是不等价的。)
4、null和‘’
从这张图中,可以看出“”和null也是不一样的。“” 是指长度为0的字符串。所以,我们不能写 integer a="",而只能写 string a=""。
第四,未解决问题:
不知道大家有没有注意到,我们向数据库中填充数据时,向第一个元组中填写数据,在下一行会自动出来一行全为null的元组。在SQL中刚生成的数据表也会有一全为null的一元组(不知道怎么描述这一行,暂时拿元组来替一下),如第一张表中的最后一条数据。我们在查询null时,并查询不到这一行“null”,这一行null的作用是什么呢?占了哪里的位置呢?
总结:
null是未知的或不适用的值的占位符
(菜鸟初次了解关于NUll的知识,如有不足或者需要补充的地方,希望读者不吝指教