关系数据库系统中的 NULL 值及其用途
创始人
2024-04-11 07:41:24
0

在数据库中,NULL值具有非常特殊的含义。因此,重要的是要理解NULL值不同于零值或包含空格的字段。在今天的博客中,我们将探讨 NULL 值的含义以及如何在 Navicat Premium 中使用NULL。

什么是NULL?

应该注意的是,NULL值不是数据库唯一的。在大多数计算机编程语言中也都可以找到它,它演变成值为零的内置常数。实际上,是字符0终止了C语言中的字符串。但是,随着时间的流逝,它的意思是“什么也没有”。具体来说,NULL是指向表示NULL的特殊位模式的指针。这就是通常所说的“null pointer”。

在数据库中,零是一个有意义的值,因此NULL变成一个特殊的标记,表示不存在任何值。从这种意义上讲,NULL不像在编程语言中那样指向存储位置。在数据库中,NULL值表示缺少值,这与零值不同。为了说明,请考虑以下问题:“Rob拥有多少CD?”答案可能是“零”(0)或NULL。在后一种情况下,NULL值可能意味着我们不知道Rob拥有多少CD。以后,一旦我们确定了Rob拥有的CD数量,就可以使用数字值更新该值。

允许将NULL作为列值

任何属于键值的列都不允许使用NULL,但是对于其他字段,则完全由您决定。在创建表时,在列定义旁边包含NOT NULL子句将强制用户在INSERT和UPDATE操作中为该列包含一个值。否则,将引发错误,并且操作将失败。Navicat Premium 的“表设计”界面包括“不为空”列,用于将字段指定为可为空或不可为空。这是Navicat 15的新深色模式:

在新字段上,将自动取消选中“不是 null”复选框。

在查询中引用NULL值

编写查询时,有时您会希望过滤出具有NULL值的行。其他时候,您会特别想检索包含NULL的行。 这是两种方法的结合:

查询可以使用IS NOT NULL子句过滤掉null。这是一个示例,该示例从Sakila数据库中排除了original_language_id列中值为NULL的电影:

同样,您可以通过从NOT NULL子句中删除NOT来找出哪些行包含NULL值。现在,仅返回那些original_language_id列为NULL值的行:

总结

在今天的博客中,我们探讨了NULL值的含义以及如何在关系数据库中使用此特殊值。

有兴趣了解有关 Navicat Premium 的更多信息吗?您完全可以免费试用14天,以进行评估!

往期回顾

1. 盗版引发设备瘫痪 | 官方严正声明:切勿在非官方渠道购买或下载 Navicat 软件

2. Navicat 荣获 Microsoft 金牌合作伙伴

3. Navicat 16.3 正式支持 OceanBase 企业版

4. 免费试用 Navicat 16

5. Navicat 发展史

6. SQL 语句中 WHERE 1=1 的作用

7. 在 SQL 中计算总行数的百分比

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...