4、数据库中的缺失值、关系及 SQL 语言解析

数据库中的缺失值、关系及 SQL 语言解析

1. 缺失值(NULLs)

在数据库里,常常会遇到某列值未知的情况。以往,人们习惯用“无效”值来表示电子表格中未知或缺失的值,例如使用古老日期、负数、’UNKNOWN’ 或 ‘N/A’ 等文本字符串。不过,处理这些值需要特殊编码,像 IF (value<>'UNKNOWN') THEN … 这样的语句,若仅使用一次还可行,但每次新增列类型时都要编写特殊代码,就显得很繁琐。

相比之下,使用 NULL 值更为简便。在数学中,NULL 表示空集或无值的集合。根据相关规则,关系数据库管理系统(RDBMS)支持使用 NULL 值(与空字符串、空白字符串或零不同)以系统的方式表示缺失信息,且与数据类型无关。

NULL 具有以下特性:
- 任何值与 NULL 连接结果都为 NULL。因为 NULL 可代表任何有效值,所以未知值与已知值连接后,结果仍是未知值。
- 所有涉及 NULL 的数学运算结果都为 NULL,原因和值与 NULL 连接结果为 NULL 相同。
- 引入 NULL 后,逻辑比较会变得复杂。

当在布尔数学中引入 NULL 时,真值表会更复杂。评估条件时,有三种可能结果:TRUE、FALSE 或 UNKNOWN。只有当搜索条件评估为 TRUE 时,行才会出现在结果中。例如,“if NULL=1”,很多人可能认为答案是 FALSE,但实际上是 UNKNOWN,因为 NULL 代表缺失值,“缺失”意味着值可能存在。

以下是一个有趣的查询示例:

select
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值