Модуль 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.