English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQLite 基础教程

SQLite 高级教程

SQLite 程序接口

Значение NULL в SQLite

SQLite NULL是用来表示缺失值的术语。表中的空值是字段中看起来为空的值。

具有 NULL 值的字段是没有值的字段。理解 NULL 值与零值或包含空格的字段是不同的,这一点非常重要。

语法

Ниже приведеныNULL创建表时使用的基本语法。

SQLite> CREATE TABLE COMPANY,
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE           INT     NOT NULL,
   АДРЕС       CHAR(50),
   ЗАРАБОТНАЯ ПЛАТА       REAL);

Здесь,NOT NULLЭто означает, что данная колонка всегда должна принимать явное значение заданного типа данных. У нас есть две колонки, для которых мы не используем NOT NULL, что означает, что эти колонки могут быть 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 КОМПАНИЯ SET АДРЕС = NULL, ЗАРАБОТНАЯ ПЛАТА = NULL where ID IN(6,7);

Теперь таблица КОМПАНИЯ будет иметь следующие записи.

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Использование оператора, чтобы показать все записи с ЗАРАБОТНАЯ ПЛАТА не как NULL.

sqlite> SELECT ID, NAME, AGE, АДРЕС, ЗАРАБОТНАЯ ПЛАТА
        FROM КОМПАНИЯ
        WHERE ЗАРАБОТНАЯ ПЛАТА 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Использование оператора, который покажет все записи с ЗАРАБОТНАЯ ПЛАТА как NULL.

sqlite> SELECT ID, NAME, AGE, АДРЕС, ЗАРАБОТНАЯ ПЛАТА
        FROM КОМПАНИЯ
        WHERE SALARY IS NULL;

Введенные выше предложения SQLite приведут к следующим результатам.

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
6           Kim         22
7           James       24