📜  什么是 NULL ?举一个例子来说明在 SQL 中测试 NULL。什么是悬空元组问题?

📅  最后修改于: 2022-05-13 01:55:47.121000             🧑  作者: Mango

什么是 NULL ?举一个例子来说明在 SQL 中测试 NULL。什么是悬空元组问题?

什么是 NULL ?
在结构化查询语言中,Null Or NULL 是一种特殊类型的标记,用于告诉我们数据库中不存在数据值。在结构化查询语言 (SQL) 中,Null 是用于标识此标记的预定义词。了解 NULL 值与零值完全不同是非常重要的。

换句话说,我们可以说 NULL 属性值等同于 nothing,这意味着在数据库中有一个属性的值表示什么都没有或 Null,一个属性不存在或者我们可以说它丢失了。在数据库中,表中的 Null 值是字段中显示为空白的值。这是一个没有价值的领域。

说明在 SQL 中测试 NULL 的示例:
假设有一个名为 CUSTOMERS 的表,其记录如下所示。

ID

NAME

AGE

ADDRESS

SALARY

1RAJESH45INDORE48000.00
2ANURAG40UJJAIN57000.00
3MAYANK38BHOPAL45000.00
4GAURAV23PUNE35000.00
5DEEPAK29MUMBAI28000.00
6NAMAN25NOIDA 
7AYUSH33GWALIOR 

现在我们可以使用 IS NOT NULL运算符并编写如下查询。

SQL> SELECT * 
FROM CUSTOMERS 
WHERE SALARY IS NOT NULL;

执行后,此查询将产生以下结果 -

ID

NAME

AGE

ADDRESS

SALARY

1RAJESH45INDORE48000.00
2ANURAG40UJJAIN57000.00
3MAYANK38BHOPAL45000.00
4GAURAV23PUNE35000.00
5DEEPAK29MUMBAI28000.00

在这里我们可以看到在 CUSTOMERS 表中,ID 号。 6 和 7 分别命名为 NAMAN 和 AYUSH ,他们的工资列是空的,也就是 Null 。这就是为什么在查询执行后它会生成一个表,其中不存在这两个名称 NAMAN 和 AYUSH,因为我们使用 IS NOT NULL运算符。

现在我们可以使用 IS NULL运算符并编写查询。

SQL> SELECT * 
FROM CUSTOMERS 
WHERE SALARY IS NULL;

执行后,此查询将产生以下结果 -

ID

NAME

AGE

ADDRESS

SALARY

6NAMAN25NOIDA 
7AYUSH33GWALIOR 

在这里,我们可以在 CUSTOMERS 表中找到 ID 号。 6 和 7 分别命名为 NAMAN 和 AYUSH,其工资栏为空,即为 Null。这就是为什么在查询执行后它会生成一个表,其中不存在这两个名称 NAMAN 和 AYUSH 因为我们使用 IS NULL运算符。

什么是悬空元组问题?
在 DBMS 中,如果有一个不参与自然连接的元组,我们将其称为悬空元组。它可能会在数据库中给出指示一致性问题。

悬空问题元组的另一个定义是,具有未出现在引用关系中的外键值的元组称为悬空元组。在 DBMS 中,当悬空元组表示问题时,参照完整性约束准确地指定了我们。