小心 SQL 中的空值陷阱!

上一篇我们以分析世界银行全球 GDP 和人口数据为案例,回顾了基础篇所学的各种 SQL 基本查询和分析功能。

从本篇开始我们将会学习进阶篇的内容。进阶篇将会介绍更加复杂的多表查询、子查询、集合运算以及各种高级的数据分析技术,能够让我们真正体会到 SQL 数据处理和分析的强大。

作为进阶篇的开始,我们先来讨论一下 SQL 中的空值问题,因为空值的特殊性导致我们很容易出现一些错误和问题。

空值与三值逻辑

SQL 中的空值(NULL)是一个特殊的值,代表了缺失/未知的数据或者不适用的情况。例如,用户在注册时没有提供电子邮箱地址,那么该用户的邮箱就未知;是否怀孕对于男性员工就不适用。

对于大多数的编程语言而言,逻辑运算的结果只有两种情况:真(Ture)或者假(False)。但是对于 SQL 而言,逻辑运算结果存在三种情况:真、假或者未知(Unknown)

![threevalue](https://img-blog.csdnimg.cn/2019072917153780.png?x-oss-process=image/watermark,typeZmFuZ3poZW5naGVpdGk,shadow10,textaHR0cHM6Ly90b255ZG9uZy5ibG9nLmNzZG4ubmV0,size16,colorFFFFFF,t70#pic_center =178x)

对于 SQL 查询中的 WHERE 条件,只有结果为真的数据才会返回,结果为假或者未知都不会返回。

因此,SQL 中的逻辑运算符 AND、OR

猜你喜欢

转载自blog.csdn.net/horses/article/details/108729102