Skip to main content

Definicija i ispravne upotrebe vrijednosti NULL

Why 1/1/1970 Bricks Your iPhone (Lipanj 2025)

Why 1/1/1970 Bricks Your iPhone (Lipanj 2025)
Anonim

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 je NULL ne :

  • NULL nije broj nula.
  • NULL nije prazna niza ("").

    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

    InventoryIDArtikalKoličina
    1jabuke10
    2naranče3
    3šljiveNULL

    Bilo bi očigledno netočno uključiti količinu od 0 za rekord šljiva, jer to bi značilo da smo imali Ne šljive 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 InventoryID i Artikal stupce, ali ih dopušta za Količina kolona.

    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:

    InventoryIDArtikalKolič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

    • A + B = NULL
    • A - B = NULL
    • A * B = NULL
    • A / B = NULL

    Usporedni operatori

    • A = B = NULL
    • A! = B = NULL
    • A> B = NULL
    • A! <B = NULL

    To su samo neki primjeri operatora koji će to raditi stalno 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!