Модуль 00 · урок 7
NULL: коли значення немає
Засновник додав у каталог Gift Card — подарунковий сертифікат. Але до якої категорії його віднести? Він не Electronics, не Home... взагалі ні до якої. Що тоді записати у стовпець category? Точно не «0» і не порожній рядок.
Коли значення немає
Іноді значення просто немає. Gift Card не належить до жодної категорії — то що писати в category? Тут і потрібен NULL.
NULL ≠ нуль ≠ порожній текст
NULL означає «немає значення» або «невідомо». Його легко переплутати, тож запамʼятай різницю:
| Значення | Що це |
|---|---|
0 | конкретне число — нуль |
'' | порожній, але існуючий текст |
NULL | значення взагалі відсутнє |
У GadgetHub сертифікат має category = NULL — категорії в нього просто немає.
NULL «заразний» у порівняннях
Головна пастка: category = NULL не працює так, як очікуєш — результат не true і не false, а «невідомо». Тому NULL перевіряють спеціальним оператором IS NULL (детальніше — у модулі про фільтрацію):
SELECT <стовпці>
FROM <таблиця>
WHERE <стовпець> IS NULL;
Подивись сам
У завданні — запит, що знаходить товар без категорії. Поглянь, як NULL показується в результаті (зазвичай порожньо).
Підсумок
NULL= відсутнє/невідоме значення, а не нуль і не порожній рядок.- Перевіряють через
IS NULL, а не= NULL.