关系数据库系统中的 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 中计算总行数的百分比

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...