Što trebate znati o vrijednostima NULL

Razumjeti korištenje NULL-ova kako bi izbjegli probleme s bazom podataka

Novi korisnici u svijetu baza podataka često se zbunjuju posebnom vrijednošću koja se odnosi na polje - NULL vrijednost. Ta se vrijednost može naći u polju koji sadrži bilo koju vrstu podataka i ima vrlo posebno značenje u kontekstu relacijske baze podataka. Vjerojatno je najbolje započeti raspravu o NULL-u s nekoliko riječi o tome što NULL nije :

Umjesto toga, NULL je vrijednost koja se koristi za predstavljanje nepoznatog dijela podataka. Programeri baza podataka često upotrebljavaju izraz "NULL vrijednost", ali to je netočno. Zapamti: NULL je nepoznata vrijednost u kojoj polje izgleda prazno.

NULL u stvarnom svijetu

Pogledajmo jednostavan primjer: tablicu koja sadrži inventar stabla za voće. Pretpostavimo da naš inventar sadrži 10 jabuka i tri naranče. Također zaliha šljiva, ali naše informacije o inventaru nisu potpune, a mi ne znamo koliko (ako ih ima) šljive na zalihama. Upotrebom vrijednosti NULL imat ćemo tablicu oglasnog prostora prikazanu u donjoj tablici.

Popis zaliha voća

InventoryID Artikal Količina
1 jabuke 10
2 naranče 3
3 šljive NULL


Bilo bi očigledno netočno uključiti količinu od 0 za šljive, jer to bi značilo da nismo imali šljiva u inventaru. Naprotiv, možda ćemo imati šljive, ali jednostavno nismo sigurni.

Za NULL ili NE NULL?

Stol može biti dizajniran tako da dopusti NULL vrijednosti ili ne.

Ovdje je SQL primjer koji stvara tablicu oglasnog prostora koji omogućuje neke NULL-ove:

SQL CREATE TABLE INVENTORY (Inventarni ID INT NOT NULL, stavka VARCHAR (20) NOT NULL, količina INT);

Tablica zaliha ovdje ne dopušta NULL vrijednosti za ID oglasnog prostora i stupca stavke , ali ih dopušta za stupac Količina .

Dok dopuštajući da vrijednost NULL bude savršeno u redu, vrijednosti NULL mogu uzrokovati probleme jer svaka usporedba vrijednosti u kojima je NULL uvijek rezultira NULL-om.

Da biste provjerili sadrži li tablica NULL vrijednosti, upotrijebite operator IS NULL ili IS NOT NULL. Evo primjera IS NULL:

SQL SELECT INVENTORYID, STAVKA, KOLIČINA OD INVENTARSKE GDJE VRIJEDNOST NIJE NULL;

S obzirom na naš primjer ovdje, to bi se vratilo:

InventoryID Artikal Količina
3 šljive

Rad na NULL-ovima

Rad s NULL vrijednostima često proizvodi rezultate NULL, ovisno o operaciji SQL . Na primjer, pretpostavljajući da je A NULL:

Aritmetički operatori

Usporedni operatori

Ovo su samo neki primjeri operatora koji će uvijek vratiti NULL ako je jedan operand NULL. Postoje mnogo složenije upite, a sve su komplicirane NULL vrijednostima. Uzmi home point je da, ako dopustite NULL vrijednosti u svojoj bazi podataka, razumjeti implikacije i plan za njih.

To je NULL ukratko!