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