如何在 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 次檢視

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告