NULL-значення
Досить часто зустрічаються такі випадки, коли в таблиці є записи з не заданими значеннями будь-якого з полів, тому що значення поля невідомо чи його просто немає. У таких випадках SQL дозволяє вказати в поле NULL-значення. Строго кажучи, NULL-значення зовсім не представлено в поле. Коли значення поля є NULL - це значить, що програма бази даних спеціальним чином позначає поле, що не містить жодного значення для цього рядка (запису). Насправді все не так в разі простого приписування полю значення «нуль» або «пробіл», які база даних трактує як будь-яке інше значення. Оскільки NULL не є значенням як таким, він не має типу даних. NULL може розміщуватися в поле будь-якого типу. Проте, NULL, як NULL-значення, часто використовується в SQL.
Припустимо, з'явився покупець, якому ще не призначено продавця. Щоб констатувати цей факт, потрібно ввести значення NULL в полі snum, а реальне значення включити туди пізніше, коли даному покупцю буде призначено продавця.
Оскільки NULL фіксує пропущені значення, результат будь-якого порівняння при наявності NULL-значень невідомий. Коли NULL-значення порівнюється з будь-яким значенням, навіть з NULL-значенням, результат просто невідомий. Логічне значення «невідомо» поводиться так само, як «брехня» - рядок, на якій предикат приймає значення «невідомо», не включається в результат запиту - за однієї важливої виключення: NOT від брехні є істина (NOT (false) = true), тоді як NOT від невідомого значення є також невідоме значення. Отже, такий вислів як «city = NULL» або «city IN (NULL)» є невідомим незалежно від значення city.
Часто необхідно розрізняти false і unknown - рядки, що містять значення стовпця, що не задовольняють предикату, і рядки, які містять NULL. Для цієї мети SQL розпорядженні спеціальний оператором IS, який використовується з ключовим словом NULL для локалізації NULL-значення.
SQL IS NULL. Приклад.
Вивести всі поля з Таліци Customers, значення поля city яких дорівнюють NULL:
SELECT * FROM Customers WHERE city IS NULL
В даному випадку вихідних даних не буде, оскільки в поле city немає NULL-значень.
IS NOT NULL
Умова IS NOT NULL використовується в запитах для вибірки записів зі значеннями не дорівнює значенню NULL
SQL IS NOT NULL. Приклад.
Вивести всі поля з Таліци Customers, значення поля city яких НЕ рівні NULL:
SELECT * FROM Customers WHERE city IS NOT NULL