sqlite
??????; ?? ??? ??????
null
English [n?l] American [n?l]
adj.
SQLite NULL ?? ???
??: SQLite? NULL? ?? ??? ??? ???? ? ?????. ???? NULL ?? ???? ???? ???? ????. NULL ?? ?? ??? ?? ?? ?????. NULL ?? 0 ??? ??? ??? ??? ???? ?? ???? ?? ?????.
??: ????? ?? ? NULL? ???? ?? ??? ??? ????.
SQLite> CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT INT NOT NULL,
ADDRESS CHAR(50) ,
SALARY REAL
);
??? NOT NULL? ?? ?? ?? ??? ??? ??? ??? ?? ????? ?????. ???? NOT NULL? ???? ?? ? ?? ?? ????. ?, ? ? ?? NULL? ? ? ????.
NULL ?? ?? ??? ??? ?? ? ?? ? ? ????.
SQLite NULL ?? ?
NULL 值在選擇數(shù)據(jù)時(shí)會(huì)引起問(wèn)題,因?yàn)楫?dāng)把一個(gè)未知的值與另一個(gè)值進(jìn)行比較時(shí),結(jié)果總是未知的,且不會(huì)包含在最后的結(jié)果中。假設(shè)有下面的表,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 語(yǔ)句來(lái)設(shè)置一些允許空值的值為 NULL,如下所示: sqlite> UPDATE COMPANY SET ADDRESS = NULL, SALARY = NULL where ID IN(6,7); 現(xiàn)在,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 接下來(lái),讓我們看看 IS NOT NULL 運(yùn)算符的用法,它用來(lái)列出所有 SALARY 不為 NULL 的記錄: sqlite> SELECT ID, NAME, AGE, ADDRESS, SALARY FROM COMPANY WHERE SALARY IS NOT NULL; 上面的 SQLite 語(yǔ)句將產(chǎn)生下面的結(jié)果: 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 運(yùn)算符的用法,將列出所有 SALARY 為 NULL 的記錄: sqlite> SELECT ID, NAME, AGE, ADDRESS, SALARY FROM COMPANY WHERE SALARY IS NULL; 上面的 SQLite 語(yǔ)句將產(chǎn)生下面的結(jié)果: ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 6 Kim 22 7 James 24