Mitä sinun pitäisi tietää NULL-arvoista

Ymmärrä NULLien käyttö välttämään tietokantaongelmia

Tietokantojen maailmaan uusia käyttäjiä hämmentää usein erityinen kentän erityisarvo - NULL-arvo. Tämä arvo löytyy kenttään, joka sisältää minkä tyyppisiä tietoja, ja sillä on hyvin erityinen merkitys relaatiotietokannan yhteydessä. On todennäköisesti paras aloittaa keskustelu NULL muutamalla sanalla siitä, mitä NULL ei ole :

Pikemminkin NULL on arvo, jota käytetään edustamaan tuntematonta dataa. Usein tietokannan ohjelmoijat käyttävät lausetta "NULL-arvo", mutta tämä on väärä. Muista: NULL on tuntematon arvo, jossa kenttä näkyy tyhjänä.

NULL reaalimaailmassa

Katsotaanpa yksinkertainen esimerkki: taulukko, joka sisältää hedelmäkannan inventaarin. Oletetaan, että luettelomme sisältää 10 omenat ja kolme appelsiinia. Varastoimme myös luumuja, mutta inventaariotietomme ovat puutteellisia, emmekä tiedä kuinka monta (jos sellaista) luumua on varastossa. Käyttämällä NULL-arvoa meillä olisi taulukon taulukko alla.

Fruit Stand Inventory

InventoryID erä Määrä
1 omenat 10
2 appelsiinit 3
3 luumut TYHJÄ


Olisi selvästi virheellinen sisällyttää luumun kirjaan 0 määrä, koska se merkitsisi sitä, että emme olleet luumuja varastoon. Päinvastoin meillä saattaa olla luumuja, mutta emme ole varmoja.

NULL tai NULL?

Taulukko voidaan suunnitella joko sallimaan NULL-arvot tai ei.

Tässä on SQL-esimerkki, joka luo Inventory-taulukon, joka sallii joidenkin NULL: ien:

SQL CREATE TABLE INVENTORY (InventoryID INT NOT NULL, kohta VARCHAR (20) NOT NULL, määrä INT);

Tässä Inventory-taulukossa ei sallita NULL-arvoja InventoryID- ja Item- sarakkeille, mutta ne sallivat niiden määrän sarakkeen.

Vaikka NULL-arvo onkin täysin hieno, NULL-arvot voivat aiheuttaa ongelmia, koska vertailun arvoista, joista yksi on NULL, tuloksena on aina NULL.

Jos haluat tarkistaa, onko taulukossa NULL-arvoja, käytä IS NULL- tai IS NOT NULL -operaattoria. Tässä on esimerkki IS NULL: sta:

SQL> SELECT INVENTORYID, KOHTA, MÄÄRÄ, JOKA MÄÄRÄN NIMET;

Ottaen huomioon meidän esimerkki, tämä palaa:

InventoryID erä Määrä
3 luumut

Toiminta NULL: illa

NULL-arvojen käsittely tuottaa usein NULL-tuloksia SQL-operaation mukaan . Oletetaan esimerkiksi, että A on NULL:

Aritmeettiset operaattorit

Vertailuoperaattorit

Nämä ovat vain joitain esimerkkejä operaattoreista, jotka palauttavat aina NULL, jos yksi operandi on NULL. Paljon monimutkaisempia kyselyitä on olemassa, ja kaikki ovat monimutkaisia ​​NULL-arvoilla. Ota kotipiste on, että jos sallit NULL-arvot tietokannassasi, ymmärrä vaikutukset ja suunnittele ne.

Se on NULL pähkinänkuoressa!