如何在 SQL 中将列值设置为 Null?


将列值设置为 Null

要将列值设置为 NULL,请使用 SQL UPDATE 语句,该语句允许修改表中现有的记录。将列值设置为 NULL 的基本语法如下:

语法

UPDATE table_name
SET column_name = NULL
WHERE conditions;

其中 -

  • table_name: 将其替换为您要更新的表的名称。
  • column_name: 用要更新的列的名称替换此名称。
  • NULL: 表示 SQL 中的 NULL 值。
  • WHERE: 此可选子句指定要更新的行。

示例

首先,让我们使用 CREATE TABLE 命令创建表,如下所示:

CREATE TABLE Customers (
   Customer_ID integer, 
   Customer_Name varchar(20), 
   Gender varchar(2)
);

以下查询将值插入到上面创建的表中:

INTO Customers VALUES (1, 'Nidhi', 'F');
INSERT INTO Customers VALUES (2, 'Ram', 'M');
INSERT INTO Customers VALUES (3, 'Nikhil', 'M');
INSERT INTO Customers VALUES (4, 'Riya', 'F');

如果您尝试检索表的内容,则会显示如下所示:

Customer_ID Customer_Name Gender
1 Nidhi F
2 Ram M
3 Nikhil M
4 Riya

F

以下示例将女性客户的性别设置为“NULL”:
UPDATE 
Customers 
SET Gender = NULL 
WHERE Gender = 'F';
SELECT * FROM Customers;

上述查询的结果将如下所示:

Customer_ID Customer_Name Gender
1 Nidhi
2 Ram M
3 Nikhil M
4 Riya

将列值设置为 NULL

您也可以在不使用 WHERE 子句的情况下将列值设置为 NULL:

示例

UPDATE Customers SET Gender = NULL;
SELECT * FROM Customers;

输出

Customer_ID Customer_Name Gender
1 Nidhi
2 Ram
3 Nikhil
4 Riya

如果已设置约束以阻止特定列值为空,则随后尝试将其设置为 NULL 将导致错误。

示例

让我们通过向名为“Gender”的列添加“NOT NULL”约束来重新创建上一个表。

CREATE TABLE Customers (
   Customer_ID integer, 
   Customer_Name varchar(20), 
   Gender varchar(2) NOT NULL
);

让我们填充表:

INSERT INTO Customers VALUES (1, 'Nidhi', 'F');
INSERT INTO Customers VALUES (2, 'Ram', 'M');
INSERT INTO Customers VALUES (3, 'Nikhil', 'M');
INSERT INTO Customers VALUES (4, 'Riya', 'F');

创建的表将如下所示:

Customer_ID Customer_Name Gender
1 Nidhi F
2 Ram M
3 Nikhil M
4 Riya F

以下查询尝试将“Gender”列的值更新为NULL

UPDATE Customers SET Gender = NULL WHERE Gender = 'F';

输出

ERROR: Gender cannot be NULL.

在本文“如何在 SQL 中将列值设置为 Null”中,我们介绍了一些基本要点:

  • 在 UPDATE 语句中包含表名。
  • 将 NULL 分配给指定的列。
  • 使用 WHERE 子句选择要更新的行。
  • 执行 SQL 查询以应用更改。

更新于:2024年10月11日

23 次查看

开启您的职业生涯

通过完成课程获得认证

开始学习
广告