NULL (SQL)

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 2. září 2021; kontroly vyžadují 4 úpravy .

NULL v DBMS je speciální hodnota (pseudohodnota), kterou lze zapsat do pole databázové tabulky (DB). NULL odpovídá konceptu "prázdného pole", to znamená "pole, které neobsahuje žádnou hodnotu." Zavedeno za účelem rozlišení mezi prázdnými (nevizuálně zobrazenými) hodnotami v databázových polích (například řetězec nulové délky ) a chybějícími hodnotami (když v poli není zapsána vůbec žádná hodnota, i když je prázdná) .

NULL znamená ne, neznámá informace. Hodnota NULL není hodnotou v plném slova smyslu: podle definice znamená nepřítomnost hodnoty a může být typu NULL nebo jakéhokoli jiného typu (CREATE TABLE new_tab AS (SELECT NULL) je speciální typ null , CREATE TABLE nová_tabulka AS (SELECT 10+NULL) - celočíselný typ). Proto NULL není ani logická hodnota FALSE, ani prázdný řetězec, ani nula. Porovnání NULL s libovolnou hodnotou bude mít za následek NULL, nikoli FALSE nebo 0. Navíc NULL není rovno NULL!

Potřeba NULL v relačních databázích

Použití NULL v databázi

V databázích, které podporují koncept NULL, se pro pole tabulky v popisu určuje, zda může být prázdné. Pokud ano, pak do tohoto pole nelze zapsat žádnou hodnotu a toto pole bude mít hodnotu NULL. Do takového pole můžete také explicitně zapsat hodnotu NULL.

DBMS obvykle nepovoluje hodnoty NULL pro pole, která jsou součástí primárního klíče tabulky . V polích cizího klíče je naopak povolena hodnota NULL. Přítomnost hodnoty NULL v poli cizího klíče lze interpretovat jako známku nepřítomnosti souvisejícího záznamu a takový cizí klíč nevyžaduje implementaci pravidel referenční integrity , která jsou vyžadována pro jakoukoli jinou hodnotu cizího klíče.

Operace s NULL

Protože NULL není v obecném smyslu hodnota, její použití v aritmetických , string , logických a dalších operacích je přísně vzato nesprávné. Většina DBMS však takové operace podporuje, ale zavádí pro ně zvláštní pravidla:

Kromě toho mohou existovat speciální systémové funkce pro pohodlný převod NULL na určité hodnoty, například Oracle má systémovou funkci NVL, která vrací hodnotu svého parametru, pokud není NULL, nebo výchozí hodnotu, pokud je operand NULL. Standard SQL-92 definuje dvě funkce: NULLIF a COALESCE, takže jejich použití je výhodnější (pokud je konkrétní DBMS implementuje).

Viz také

Poznámky

  1. Datum K., Darwen H. Základy budoucích databázových systémů. Třetí manifest. 2. vyd. (za redakce S. D. Kuzněcova). M.: Janus-K, 2004.