MySQL: Оператор IS NULL / IS NOT NULL

В SQL оператор IS NULL используется для проверки, является ли значение в столбце таблицы равным NULL. Это очень важный оператор, так как NULL — это особое значение, которое обозначает отсутствие данных или неизвестное значение. В этой статье мы рассмотрим, как работает IS NULL, почему его нельзя заменить на = NULL, и приведем примеры использования.

Что такое "NULL"?


NULL — это специальное значение в SQL, которое обозначает отсутствие данных или неизвестное значение. Это не то же самое, что пустая строка ('') или ноль (0). NULL означает, что для данного столбца в конкретной строке нет никакого значения.

Пример таблицы:
Допустим, у вас есть таблица employees с колонкой salary, которая может содержать значения NULL:
id	name	salary
1	John	5000
2	Alice	NULL
3	Bob	6000

В этой таблице у сотрудника с id = 2 значение salary равно NULL, что означает, что его зарплата неизвестна.

Почему нельзя использовать "= NULL"?


В SQL нельзя использовать оператор = для проверки на NULL. Например, следующий запрос не вернет никаких строк:
SELECT *
FROM employees
WHERE salary = NULL;

Это связано с тем, что в SQL NULL не равен ни одному значению, включая сам NULL. Для проверки на NULL используется специальный оператор IS NULL.

Как использовать "IS NULL"?


Оператор IS NULL проверяет, является ли значение в столбце равным NULL. Синтаксис:
SELECT *
FROM таблица
WHERE столбец IS NULL;

Пример:
SELECT *
FROM employees
WHERE salary IS NULL;

Этот запрос вернет все строки из таблицы employees, где значение в столбце salary отсутствует (равно NULL).

Результат:
id	name	salary
2	Alice	NULL

Использование "IS NOT NULL"


Оператор IS NOT NULL проверяет, что значение в столбце не равно NULL. Синтаксис:
SELECT *
FROM таблица
WHERE столбец IS NOT NULL;

Пример:
SELECT *
FROM employees
WHERE salary IS NOT NULL;

Этот запрос вернет все строки из таблицы employees, где значение в столбце salary указано (не равно NULL).

Результат:
id	name	salary
1	John	5000
3	Bob	6000

Оператор IS NULL — это мощный инструмент для работы с отсутствующими данными в SQL. Он позволяет легко находить строки, где значение в столбце отсутствует, и помогает избежать ошибок при работе с NULL. Помните, что NULL — это особое значение, и его нельзя сравнивать с помощью оператора =. Используйте IS NULL и IS NOT NULL для корректной работы с отсутствующими данными.

Автор:  9 часов назад