Rozdział 7: Wartość null

Wartość null, czyli co ?

Na potrzeby wytłumaczenia co to jest wartość „null„, posłużę się opisem pewnej fikcyjnej sytuacji.

Przypuśćmy, że chcemy uzupełnić naszą bazę gier o kolejne rekordy, do tego posłuży nam pewien plik xml, lub jakieś darmowe api, cokolwiek.

Ściągamy zatem dane do naszej bazy i pierwszy błąd jaki napotykamy to gra która nie miała jeszcze premiery, zatem nie ma jeszcze ceny.

Kolejna gra która znalazła się na liście, nie została również wydana a sam twórca nie zadeklarował na jaką platformę trafi.

W obu przypadkach mamy wartość „null„, jest to wartość pusta, nie wiemy czy to prawda, fałsz.

Zatem baza danych nie może wykonać również operacji logicznych na owej wartości. Możemy natomiast pominąć takie rekordy przy pobieraniu danych, lub celowo chcieć pobrać tylko takie rekordy.

Przejdźmy zatem do pierwszych zapytań:

SELECT * FROM `games` WHERE `price` is not null AND `platform` is not null;
idtitlepriceplatformcreated
1GTA410.00pc2020-10-08 07:13:56.0
2CSGO99.50pc2020-10-09 13:13:58.0
3Super Mario59.99pc2020-10-10 12:13:59.0
4THPS218.00psx2020-10-10 13:37:08.0

Powyższe zapytanie pobierze nam wszystkie rekordy wśród których znamy cenę i platformę, teraz odwróćmy naszką klauzulę i pobierzmy te rekordy których podane wartości są „null„.

SELECT * FROM `games` WHERE `price` is null OR `platform` is null;
idtitlepriceplatformcreated
5Diablonullpc2020-10-11 13:37:08.0
6Magia i miecz100.00null2020-10-11 13:57:08.0