搞清这些陷阱,NULL和三值逻辑再也不会作妖
发布时间:2019-11-09 01:26:50 所属栏目:建站 来源:youzhibing2904
导读:副标题#e# NULL NULL 用于表示缺失的值或遗漏的未知数据,不是某种具体类型的值。数据表中的 NULL 值表示该值所处的字段为空,值为 NULL 的字段没有值,尤其要明白的是:NULL 值与 0 或者空字符串是不同的。 两种NULL 这种说法大家可能会觉得很奇怪,因为 S
假设我们有学生表:t_student:
表中数据 yzb 的 age 是 NULL,也就是说 yzb 的年龄未知。在现实世界里,yzb 是 20 岁,或者不是 20 岁,二者必居其一,这毫无疑问是一个真命题。那么在 SQL 的世界里了,排中律还适用吗? 我们来看一个 SQL :
咋一看,这不就是查询表中全部记录吗?我们来看下实际结果: yzb 没查出来,这是为什么?我们来分析下,yzb 的 age 是 NULL,那么这条记录的判断步骤如下:
SQL 语句的查询结果里只有判断结果为 true 的行。要想让 yzb 出现在结果里,需要添加下面这样的 “第 3 个条件”: (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |