/

SQL, 處理空值儲存格

SQL, 處理空值儲存格

如何處理 SQL 資料庫中的空資料

當我們以以下方式建立表格時:

1
2
3
4
CREATE TABLE people (
age INT,
name CHAR(20)
);

SQL 可以自由接受空值作為記錄:

1
INSERT INTO people VALUES (null, null);

這可能是個問題,因為現在我們有一個具有 null 值的列:

1
2
3
4
5
 age | name 
-----+--------
37 | Flavio
8 | Roger
|

為了解決這個問題,我們可以在表格的列上宣告限制條件,使用 NOT NULL 來防止空值:

1
2
3
4
CREATE TABLE people (
age INT NOT NULL,
name CHAR(20) NOT NULL
);

如果我們再次執行相同的查詢:

1
INSERT INTO people VALUES (null, null);

我們會得到一個錯誤,像這樣:

1
2
ERROR: null value in column "age" violates not-null constraint
DETAIL: Failing row contains (null, null).

請注意,空字串是一個有效的非空值。

tags: [“SQL”, “database”, “constraints”, “null values”]