Używamy cookies, żeby zwiększyć Twoje doświadczenia na stronie
CodeWorlds

NULL i wartości domyślne w DML

Nie każda rubryka na zwoju musi być wypełniona. Czasem skryba nie zna jeszcze wartości - książka jest wypożyczona, ale jeszcze nie wróciła, więc

data_zwrotu
pozostaje pusta. W języku Biblioteki taką pustkę nazywamy NULL.

Czym jest NULL?

NULL
to brak wartości - nie zero, nie pusty tekst, lecz informacja "tu nic nie ma". To ważne rozróżnienie:

  • 0
    - to konkretna liczba zero,
  • ''
    - to pusty tekst (tekst o długości zero),
  • NULL
    - to brak jakiejkolwiek wartości.

Wstawianie NULL w INSERT

Aby zapisać brak wartości, w miejscu wartości piszemy słowo

NULL
bez apostrofów:

1INSERT INTO wypozyczenia (ksiazka_id, czytelnik_id, data_wypozyczenia, data_zwrotu)
2VALUES (5, 7, '2024-03-01', NULL);

Tu

data_zwrotu
ustawiamy na
NULL
- książka została wypożyczona, ale nie ma jeszcze daty zwrotu.

Czyszczenie pola przez UPDATE

Aby opróżnić istniejące pole (nie cały wiersz!), używamy

UPDATE ... SET pole = NULL
:

1UPDATE wypozyczenia
2SET data_zwrotu = NULL
3WHERE id = 8;

Pamiętaj: to wciąż

UPDATE
- więc i tu obowiązuje
WHERE
! Bez niego wyczyściłbyś
data_zwrotu
we wszystkich wypożyczeniach.

NULL kontra brak kolumny

Jeśli pominiesz kolumnę w

INSERT
, Biblioteka wstawi jej wartość domyślną (często właśnie
NULL
, a dla
id
- kolejny numer z
AUTO_INCREMENT
). Jawne wpisanie
NULL
daje ten sam skutek, ale od razu widać Twój zamiar.

Przejdź do CodeWorlds