SQLite NULL 值
SQLite NULL 是用来表示缺失值的术语。在表中,NULL 值是在字段中显示为空的值。
具有 NULL 值的字段是没有值的字段。非常重要的是要理解 NULL 值与零值或包含空格的字段是不同的。
语法
以下是使用 NULL 创建表时的基本语法。
SQLite> CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
在这里, NOT NULL 表示该列应该始终接受给定数据类型的明确值。我们有两列没有使用NOT NULL,这意味着这些列可以为空。
一个具有NULL值的字段是在记录创建过程中被留空的字段。
示例
NULL值在选择数据时可能会引发问题,因为当将未知值与任何其他值进行比较时,结果始终是未知的,并且不包含在最终结果中。考虑以下表格COMPANY,其中包含以下记录 –
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
让我们使用UPDATE语句将一些可为空的值设置为NULL,如下所示−
sqlite> UPDATE COMPANY SET ADDRESS = NULL, SALARY = NULL where ID IN(6,7);
现在,COMPANY表将有以下记录。
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22
7 James 24
接下来,让我们看一下 IS NOT NULL 运算符的用法,以列出所有SALARY不为空的记录。
sqlite> SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM COMPANY
WHERE SALARY IS NOT NULL;
上述SQLite语句将产生以下结果−
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
以下是 IS NULL 运算符的用法,它将列出所有 SALARY 为空的记录。
sqlite> SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM COMPANY
WHERE SALARY IS NULL;
上述SQLite语句将产生以下结果。
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
6 Kim 22
7 James 24