Оператор not
Оператор NOT обращает результаты применения другого оператора, позволяя найти строки, Не удовлетворяющие заданному критерию. Любой оператор и запрос, представленные ранее, могут получить прямо противоположный результат, если в них применить оператор NOT. В следующем запросе возвращаются все строки, Не имеющие в своих названиях во второй, третьей и четвертой позиции символов I, L и E соответственно. Уже отмечалось, что в реляционных базах данных для указания на отсутствие данных в столбце таблицы используется специальное значение NULL. Так как к этому значению неприменимы стандартные правила и операторы (математические операции, операторы сравнения и т. п.), его невозможно определить с помощью оператора равенства. К примеру, несмотря на допустимость синтаксиса WHERE <имя_столбца>=NULL в Oracle (а при определенных обстоятельствах и в Microsoft SQL Server), данный запрос никогда не вернет данные, поскольку результатом операции
Проверка на наличие в столбце значения NULL выполняется с помощью специального оператора IS. В следующем запросе извлекается информация о торговых представителях, имеющих телефоны.
Не менее легко можно проверить столбец на отсутствие значения NULL, дополнительно применив оператор NOT. Оператор сравнения IS NULL возвращает значение TRUE, если поле содержит неопределенное значение, и FALSE в противном случае. Синтаксис обратной операции соответствует требованиям грамматики английского языка: если применить оператор NOT IS NULL, СУБД вернет ошибку, а если IS NOT NULL — желаемый результат. В следующем запросе отбираются записи о заказчиках, имеющих телефоны (т. е. поле PHONE_CUST_FN не должно содержать значение NULL).