SQLite Значения NULL
SQLiteNULL— это термин, используемый для обозначения отсутствующего значения. Значение NULL в таблице — это значение, отображаемое как пустое в поле.
Поле со значением NULL — это поле без значения. Очень важно понимать, что значение NULL отличается от нулевого значения или поля, содержащего пробелы.
Синтаксис
Используется при создании таблицыNULLБазовый синтаксис выглядит следующим образом:
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Указывает, что столбец всегда принимает явные значения заданного типа данных. Есть два столбца, в которых мы не использовали 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, в NULL, как показано ниже:
sqlite> UPDATE COMPANY SET ADDRESS = NULL, SALARY = NULL where ID IN(6,7);
Теперь записи таблицы 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
Далее давайте рассмотримIS NOT NULLиспользование оператора, который используется для вывода всех записей, где SALARY не равно NULL:
sqlite> SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM COMPANY
WHERE SALARY 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использование оператора, которое выведет все записи, где SALARY равно NULL:
sqlite> SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM COMPANY
WHERE SALARY IS NULL;
Приведенный выше оператор SQLite выдаст следующий результат:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 6 Kim 22 7 James 24Другие расширения