Mida peaks teadma NULL väärtuste kohta

Mõistke NULLide kasutamist, et vältida andmebaasiprobleeme

Andmebaasi maailmale uued kasutajad on tihti segi ajada spetsiaalse väärtusega, nimelt nullväärtusega. Seda väärtust võib leida valdkonnas, mis sisaldab mis tahes tüüpi andmeid ja millel on relatsioonandmebaasis kontekstis väga eriline tähendus. Tõenäoliselt on kõige parem alustada meie NULLi arutelu mõne sõnaga NULLi kohta:

Pigem on NULL väärtuseks, mida kasutatakse tundmatute andmete esitamiseks. Sageli kasutavad andmebaasi programmeerijad väljendit "NULL väärtus", kuid see on vale. Pidage meeles: NULL on tundmatu väärtus, mille puhul väli kuvatakse tühjaks.

NULL reaalses maailmas

Vaatame lihtsat näidet: tabel, mis sisaldab puuviljahoidla inventuuri. Oletame, et meie inventuur sisaldab 10 õuna ja kolme apelsini. Meil on ka ploomid, kuid meie inventuuriandmed on puudulikud ja me ei tea, kui palju (kui üldse) on ploomid olemas. Kasutades NULL-väärtust, oleksime allolevas tabelis näidatud varude tabel.

Puuviljahoidla inventuur

InventoryID Üksus Kogus
1 Õunad 10
2 Apelsinid 3
3 Ploomid NULL


Oleks ilmselgelt vale lisada kogus 0 ploomi rekord, sest see viitab sellele, et inventuuril pole ploome. Vastupidi, meil võib olla ploomid, kuid me pole lihtsalt kindel.

NULL või NOT NULL?

Tabelit saab kujundada kas NULL väärtuste lubamiseks või mitte.

Siin on SQL-i näide, mis loob Inventari tabeli, mis võimaldab mõnda NULL-i:

SQL> CREATE TABLE INVENTORY (InventoryID INT EI NULL, kirje VARCHAR (20) EI NULL, Kogus INT);

Inventari tabel siin ei võimalda InventoryID ja positsiooni veerude NULL väärtusi, kuid lubab neid veeru " Kogus" jaoks .

NULL väärtuse lubamisel on täiesti korrektne, NULL väärtused võivad põhjustada probleeme, sest väärtuste võrdlemine, milles üks NULL, toob alati tulemuseks NULL.

Et kontrollida, kas tabelis on NULL väärtused, kasutage IS NULL või IS NOT NULL operaatorit. Siin on näide IS NULList:

SQL SELECT INVENTORYID, ITEM, KOGUS INVENTORI, KUI KOGUS EI OLE NULL;

Võttes arvesse meie eeskuju, tagastab see järgmise:

InventoryID Üksus Kogus
3 Ploomid

Töötab NULL-is

NULL-väärtustega töötamine annab SQL-operatsioonist sõltuvalt sageli NULL-i tulemusi. Näiteks eeldades, et A on NULL:

Aritmeetilised operaatorid

Võrdlusoperaatorid

Need on vaid mõned näited operaatoritest, kes tagastavad alati NULL, kui üks operand on NULL. Palju keerukamaid päringuid on olemas ja kõik on keerulised NULL väärtustega. Koju jõudmiseks on see, et kui lubate oma andmebaasis NULL väärtusi, mõelge nende tagajärgedele ja plaani neile.

See on NULL lühidalt!