浅谈null

简介: 前言: 我们平时对SQL的数值处理的过程中,经常会纠结一个问题,要不要设置为null?那么null到底是什么意思?在这篇文章中,我将为大家简单的介绍一下我们使用的null。

前言:

  我们平时对SQL的数值处理的过程中,经常会纠结一个问题,要不要设置为null?那么null到底是什么意思?在这篇文章中,我将为大家简单的介绍一下我们使用的null。


第一,定义

  Null的本意是指,空的,无结果或空集合。NULL 值是遗漏的未知数据。默认地,表的列可以存放 NULL 值。null是未知的或不适用的值的占位符


第二,SQL中的null

  如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。这意味着该字段将以 NULL 值保存。


第三,图解:

20160515204752047.png


从图中可以看出我的实验类型:

数据类型为整形时,为null的情况;

数据类型为字符串,为null的情况;

一个元组的数据都为null的情况;

数据类型为整形时为空的情况(在数据库中自动默认为0);

数据类型为字符串时为空的情况;

还有数据库填写一个元组的数据时,在下一行自动生成的null元组。

  我们通过使用SQL语句,在数据库中查询来一一实验


1、is null与=null


20160515203400945.png

20160515203408450.png


这两张图,说明,is null与=null是不一样的,而且null不是一种数据类型。但是,null并不表示空,它是已经占了位置的,只是该位置的内容为null;


2、null在整型和字符串类型中

20160515203914150.png


   Addmoney的数据类型为整形,RechargeTime的数据类型也为整形,都可以设置为null,null可以为任何数据类型占位,更说明它不专属某个数据类型。


3、null和0

20160515204059713.png


 此时,AddMoney的数据类型为整型,我们的查询条件为AddMoney=0,只查到了一条数据,说明,null与0是不同的;(其实是无法比较 NULL 和 0;它们本来就是不等价的。


4、null和‘’


20160515204444058.png


从这张图中,可以看出“”和null也是不一样的。“” 是指长度为0的字符串。所以,我们不能写 integer a="",而只能写 string a=""。



第四,未解决问题:

    不知道大家有没有注意到,我们向数据库中填充数据时,向第一个元组中填写数据,在下一行会自动出来一行全为null的元组。在SQL中刚生成的数据表也会有一全为null的一元组(不知道怎么描述这一行,暂时拿元组来替一下),如第一张表中的最后一条数据。我们在查询null时,并查询不到这一行“null”,这一行null的作用是什么呢?占了哪里的位置呢?


总结:

      null是未知的或不适用的值的占位符

      (菜鸟初次了解关于NUll的知识,如有不足或者需要补充的地方,希望读者不吝指教





相关文章
|
5月前
|
计算机视觉
detectMultiScale
【6月更文挑战第8天】
241 4
|
开发工具 Python
ignatureNonceIsNull
ignatureNonceIsNull
71 1
我应该使用 NULL 还是 0?
我应该使用 NULL 还是 0?
|
Serverless 程序员 云计算
Serverful
Serverful
178 0
Helpful Maths
Helpful Maths
138 0
Helpful Maths
|
IDE Java 程序员
What is null?
按照惯例还是在文章开头随便聊聊。之前这个环节是借鉴的why哥,叫“荒腔走板”。现在决定还是换一个有自己特色的名字,冥思苦想,最终拍板“Y说”。 有一段时间没在公众号更新文章了,其实也不是忙,就是有点懒(主要原因),再加上没有太多灵感,所以,很抱歉~
241 0
|
人工智能
Colorful Slimes
题目描述 Snuke lives in another world, where slimes are real creatures and kept by some people. Slimes come in N colors. Those colors are conveniently numbered 1 through N. Snuke currently has no slime. His objective is to have slimes of all the colors together.
96 0
|
JavaScript 前端开发