如何正确理解 SQL 中的 NULL

 我来答
tjrmgs
推荐于2018-03-22 · TA获得超过5765个赞
知道大有可为答主
回答量:2161
采纳率:94%
帮助的人:1036万
展开全部
SQL中Null的中文叫法是“空值”,其意思为"没有值"的值,它的数据类型是未知的,在数据库表里Null不占用物理磁盘空间,因为Null就是空无一物嘛,没有东西自然就没有占用。数据库表实际是二维表,新建表时所有的字段值都是Null(空值),同样添加新纪录时未指定字段值前每个字段值也是Null,每个网格由横向(字段名)和纵向记录行确定,当一个网格没有写入数据前其存储的值就是Null(空值),这是天然属性使然,写入数据后其值就变为非"空值",如果我们再将该网格里的数据值擦除掉它又会变为“空值”。筛选含“空值”的记录可以使用"expr is null",反之可以使用“expr is not” 。

说到Null不得不提到"零长度字符串"或者说"空字符串"(Sql中用一对没有间隔单引号''表示),对于这两者很多人会搞混淆。其实它们有根本上的区别,前者的数据类型是未知的,而后者的数据类型则是明确的即字符型,存储“空字符串”是要占用物理磁盘空间的。在不存在约束的情况下我们几乎可以将Null值写入任何数据类型的字段里(请注意写入Null值其背后的含义是擦除对应数据表网格中的数据值),而空字符串''只能写入字符串型字段里。还有Null值可以是“天然”就存在的,而空字符串则不会“天然”存在,它必须人为或以默认值形式写入数据表才会出现。

Null在Sql语言中是一个很重要的概念,只有正确理解它才能把握好这门语言。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式