SQL NULL Значения
Что такое нулевое значение?
Поле со значением NULL является полем без значения.
Если поле в таблице является необязательным, можно вставить новую запись или обновить запись без добавления значения в это поле. Затем поле будет сохранено со значением NULL.
Примечание: Очень важно понимать, что значение NULL отличается от нулевого значения или поля, содержащего пробелы. Поле со значением NULL является одним, которое было оставлено пустым во время создания записи!
Как проверить значения NULL?
Невозможно проверить значения NULL с помощью операторов сравнения, таких как =, < или < >.
Нам придется использовать IS NULL и не NULL операторы вместо.
Синтаксис null
SELECT column_names
FROM table_name
WHERE column_name IS NULL;
Синтаксис не равен null
SELECT column_names
FROM table_name
WHERE column_name IS NOT NULL;
Демонстрационная база данных
Предположим, что у нас есть следующая таблица "персоны":
ID | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Doe | John | 542 W. 27th Street | New York |
2 | Bloggs | Joe | London | |
3 | Roe | Jane | New York | |
4 | Smith | John | 110 Bishopsgate | London |
Предположим, что столбец "адрес" в таблице "лица" является необязательным. Если запись вставлена без значения "Address", то столбец "Address" будет сохранен со значением NULL.
Оператор IS NULL
Следующая инструкция SQL использует оператор IS NULL для перечисления всех лиц, не имеющих адреса:
SELECT LastName, FirstName, Address FROM Persons
WHERE Address IS NULL;
The result-set will look like this:
LastName | FirstName | Address |
---|---|---|
Bloggs | Joe | |
Roe | Jane |
Совет: Всегда используйте значение NULL для поиска значений NULL.
Оператор NOT NULL
Следующая инструкция SQL использует оператор NOT NULL для перечисления всех лиц, у которых есть адрес:
SELECT LastName, FirstName, Address FROM Persons
WHERE Address IS NOT NULL;
Результирующий набор будет выглядеть так:
LastName | FirstName | Address |
---|---|---|
Doe | John | 542 W. 27th Street |
Smith | John | 110 Bishopsgate |