惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Cybersecurity and Infrastructure Security Agency CISA
D
Darknet – Hacking Tools, Hacker News & Cyber Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
S
Schneier on Security
L
Lohrmann on Cybersecurity
S
Securelist
P
Palo Alto Networks Blog
SecWiki News
SecWiki News
T
Troy Hunt's Blog
H
Hacker News: Front Page
AWS News Blog
AWS News Blog
Latest news
Latest news
Hacker News - Newest:
Hacker News - Newest: "LLM"
NISL@THU
NISL@THU
The Hacker News
The Hacker News
F
Full Disclosure
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
大猫的无限游戏
大猫的无限游戏
O
OpenAI News
P
Proofpoint News Feed
Know Your Adversary
Know Your Adversary
G
GRAHAM CLULEY
博客园_首页
Attack and Defense Labs
Attack and Defense Labs
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Security Latest
Security Latest
云风的 BLOG
云风的 BLOG
K
Kaspersky official blog
WordPress大学
WordPress大学
www.infosecurity-magazine.com
www.infosecurity-magazine.com
宝玉的分享
宝玉的分享
L
LINUX DO - 热门话题
博客园 - 叶小钗
L
LINUX DO - 最新话题
Martin Fowler
Martin Fowler
N
News | PayPal Newsroom
Project Zero
Project Zero
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
PCI Perspectives
PCI Perspectives
月光博客
月光博客
IT之家
IT之家
Recent Announcements
Recent Announcements
T
The Exploit Database - CXSecurity.com
D
DataBreaches.Net
J
Java Code Geeks
酷 壳 – CoolShell
酷 壳 – CoolShell
Last Week in AI
Last Week in AI
Google Online Security Blog
Google Online Security Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - Adrian wang

簇表BSEG在联合查询时用什么表去替代 [推荐] 对日软件开发文档式样书写常用日语精粹 几个常用的T-Code 001 SAP R/3财务基本概念及集成性浅释---总帐等概念 SAP R/3 财务基本概念及集成性浅释 —— 主数据篇 SAP技术人员必会技能(转帖) 使用 Microsoft .NET 的企业解决方案模式 T-SQL 编码标准(择自MSDN) 总结:ADO.NET在开发中的部分使用方法和技巧 (转贴) 编译器错误信息 CS1595 学日语、记单词是有规律的 不用鼠标换了日语输入法 外语学习忌 ! RegisterStartupScript和RegisterClientScriptBlock的用法 数据库开发个人总结(ADO.NET) 使用ADO.NET轻松操纵数据库 关于何种情况下使用DataGrid、DataList或Repeater的一些讨论 如何把string解析为int? 彻底删除项目的VSS源代码管理信息
数据库表中的空值(NULL)
Adrian wang · 2006-03-30 · via 博客园 - Adrian wang

空值

空 (NULL) 值表示数值未知。空值不同于空白或零值。没有两个相等的空值。比较两个空值或将空值与任何其它数值相比均返回未知,这是因为每个空值均为未知。

空值通常表示未知、不可用或将在以后添加的数据。例如,客户的中间名首字母在客户下定单时可能不知道。

下面是有关空值的一些信息:

  • 若要测试查询中的空值,请在 WHERE 子句中使用 IS NULL 或 IS NOT NULL
  • 在 SQL 查询分析器中查看查询结果时,空值在结果集内显示为 (null)
  • 可通过以下方法在列中插入空值:在 INSERT 或 UPDATE 语句中显式声明 NULL,或不使此列进入 INSERT 语句,或使用 ALTER TABLE 语句在现有表中新添一列。
  • 不能将空值用于区分表中两行所需的信息(例如,外键或主键)。

在程序代码中,可以检查空值以便只在具有有效(或非空)数据的行上进行某些计算。例如,报表可以只打印社会安全列中数据不为空的列。执行计算时消除空值很重要,因为如果包含空值列,某些计算(如平均值)会不准确。

如果数据中可能包含空值,创建查询或数据修改语句消除空值或将空值转换成其它值是一个好办法(如果不想在数据中出现空值)。

重要  为了减少对已有查询或报表的维护和可能的影响,建议尽量少使用空值。对查询和数据修改语句进行规划,使空值的影响降到最小。

如果数据出现空值,则逻辑运算符和比较运算符有可能返回 TRUE 或 FALSE 以外的第三种结果 UNKNOWN。需要三值逻辑是导致许多应用程序出错之源。下面这些表概括了引入空值比较的效果。

下表显示将 AND 运算符应用到两个布尔操作数的结果。

AND TRUE UNKNOWN FALSE
TRUE TRUE UNKNOWN FALSE
UNKNOWN UNKNOWN UNKNOWN FALSE
FALSE FALSE FALSE FALSE

下表显示将 OR 运算符应用到两个布尔操作数的结果。

OR TRUE UNKNOWN FALSE
TRUE TRUE TRUE TRUE
UNKNOWN TRUE UNKNOWN UNKNOWN
FALSE TRUE UNKNOWN FALSE

下表显示 NOT 运算符求反或反转方式,以及布尔运算符的结果。

应用了 NOT 运算符的布尔表达式 取值为
TRUE FALSE
UNKNOWN UNKNOWN
FALSE TRUE

SQL-92 标准引入了关键字 IS NULL 和 IS NOT NULL 来测试空值。

应用了 IS NULL 运算符的布尔表达式 取值为 应用了 IS NOT NULL 运算符的布尔表达式 取值为
TRUE FALSE TRUE TRUE
NULL TRUE NULL FALSE
FALSE FALSE FALSE TRUE

Transact-SQL 还提供扩展空值处理。如果 ANSI_NULLS 选项设为关,则空值之间的比较(如 NULL = NULL)等于 TRUE。空值与任何其它数据类型之间的比较等于 FALSE。