鍍金池/ 教程/ 數(shù)據(jù)庫(kù)/ SQLite NULL 值
SQLite Having 子句
SQLite 運(yùn)算符
SQLite 注入
SQLite Delete 語(yǔ)句
SQLite – Python
SQLite 數(shù)據(jù)類(lèi)型
SQLite 簡(jiǎn)介
SQLite 創(chuàng)建數(shù)據(jù)庫(kù)
SQLite Vacuum
SQLite Group By
SQLite 日期 & 時(shí)間
SQLite AND/OR 運(yùn)算符
SQLite 刪除表
SQLite Distinct
SQLite Alter 命令
SQLite PRAGMA
SQLite 約束
SQLite 創(chuàng)建表
SQLite Like 子句
SQLite Limit 子句
SQLite Autoincrement
SQLite 子查詢(xún)
SQLite – C/C++
SQLite – PHP
SQLite 命令
SQLite Order By
SQLite Select 語(yǔ)句
SQLite Unions 子句
SQLite – Perl
SQLite – Java
SQLite 別名
SQLite 常用函數(shù)
SQLite Explain(解釋?zhuān)?/span>
SQLite NULL 值
SQLite Glob 子句
SQLite 表達(dá)式
SQLite 視圖
SQLite Where 子句
SQLite Truncate Table
SQLite 索引
SQLite Insert 語(yǔ)句
SQLite 安裝
SQLite Indexed By
SQLite 分離數(shù)據(jù)庫(kù)
SQLite 觸發(fā)器
SQLite 語(yǔ)法
SQLite Joins
SQLite Update 語(yǔ)句
SQLite 附加數(shù)據(jù)庫(kù)
SQLite 事務(wù)

SQLite NULL 值

SQLite 的 NULL 是用來(lái)表示一個(gè)缺失值的項(xiàng)。表中的一個(gè) NULL 值是在字段中顯示為空白的一個(gè)值。

帶有 NULL 值的字段是一個(gè)不帶有值的字段。NULL 值與零值或包含空格的字段是不同的,理解這點(diǎn)是非常重要的。

語(yǔ)法

創(chuàng)建表時(shí)使用 NULL 的基本語(yǔ)法如下:

    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 表示列總是接受給定數(shù)據(jù)類(lèi)型的顯式值。這里有兩個(gè)列我們沒(méi)有使用 NOT NULL,這意味著這兩個(gè)列不能為 NULL。>

帶有 NULL 值的字段在記錄創(chuàng)建的時(shí)候可以保留為空。

實(shí)例

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