什么是 NULL ?举一个例子来说明在 SQL 中测试 NULL。什么是悬空元组问题?
什么是 NULL ?
在结构化查询语言中,Null Or NULL 是一种特殊类型的标记,用于告诉我们数据库中不存在数据值。在结构化查询语言 (SQL) 中,Null 是用于标识此标记的预定义词。了解 NULL 值与零值完全不同是非常重要的。
换句话说,我们可以说 NULL 属性值等同于 nothing,这意味着在数据库中有一个属性的值表示什么都没有或 Null,一个属性不存在或者我们可以说它丢失了。在数据库中,表中的 Null 值是字段中显示为空白的值。这是一个没有价值的领域。
说明在 SQL 中测试 NULL 的示例:
假设有一个名为 CUSTOMERS 的表,其记录如下所示。ID
NAME
AGE
ADDRESS
SALARY
1 RAJESH 45 INDORE 48000.00 2 ANURAG 40 UJJAIN 57000.00 3 MAYANK 38 BHOPAL 45000.00 4 GAURAV 23 PUNE 35000.00 5 DEEPAK 29 MUMBAI 28000.00 6 NAMAN 25 NOIDA 7 AYUSH 33 GWALIOR
现在我们可以使用 IS NOT NULL运算符并编写如下查询。
SQL> SELECT *
FROM CUSTOMERS
WHERE SALARY IS NOT NULL;
执行后,此查询将产生以下结果 -
ID | NAME | AGE | ADDRESS | SALARY |
1 | RAJESH | 45 | INDORE | 48000.00 |
2 | ANURAG | 40 | UJJAIN | 57000.00 |
3 | MAYANK | 38 | BHOPAL | 45000.00 |
4 | GAURAV | 23 | PUNE | 35000.00 |
5 | DEEPAK | 29 | MUMBAI | 28000.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
6 NAMAN 25 NOIDA 7 AYUSH 33 GWALIOR
在这里,我们可以在 CUSTOMERS 表中找到 ID 号。 6 和 7 分别命名为 NAMAN 和 AYUSH,其工资栏为空,即为 Null。这就是为什么在查询执行后它会生成一个表,其中不存在这两个名称 NAMAN 和 AYUSH 因为我们使用 IS NULL运算符。
什么是悬空元组问题?
在 DBMS 中,如果有一个不参与自然连接的元组,我们将其称为悬空元组。它可能会在数据库中给出指示一致性问题。
悬空问题元组的另一个定义是,具有未出现在引用关系中的外键值的元组称为悬空元组。在 DBMS 中,当悬空元组表示问题时,参照完整性约束准确地指定了我们。