在 SQLite 中,NULL 表示一个缺失或未知的值。以下是关于 SQLite 中 NULL 值的一些重要事项:

1. 插入 NULL: 当插入数据时,如果某一列没有提供值,或者使用 INSERT INTO table_name DEFAULT VALUES; 插入一行时,该列的值将被设置为 NULL。
    -- 创建一个示例表
    CREATE TABLE example (
        id INTEGER PRIMARY KEY,
        name TEXT,
        age INTEGER
    );

    -- 插入一行,未提供 age 值,age 将被设置为 NULL
    INSERT INTO example (name) VALUES ('John');

2. 比较和 NULL: 在比较中,NULL 不等于任何值,包括其他的 NULL。例如,NULL = NULL 的结果是未知的(不是 true 或 false)。
    -- 查询所有 age 不是 NULL 的行
    SELECT * FROM example WHERE age IS NOT NULL;

3. 处理 NULL: 可以使用 IS NULL 或 IS NOT NULL 来检查列是否为 NULL。
    -- 查询所有 age 为 NULL 的行
    SELECT * FROM example WHERE age IS NULL;

4. COALESCE 函数: 用于返回参数列表中的第一个非 NULL 值。
    -- 返回 name 列的非 NULL 值,如果所有值都是 NULL,则返回 NULL
    SELECT COALESCE(name, 'N/A') FROM example;

5. IFNULL 函数: 用于返回第一个非 NULL 参数。
    -- 返回 age 列的值,如果为 NULL,则返回 -1
    SELECT IFNULL(age, -1) FROM example;

处理 NULL 值时,确保在查询和操作中考虑到可能存在的 NULL 值,以避免产生不正确的结果。


转载请注明出处:http://www.zyzy.cn/article/detail/14187/SQLite