Verstinn d'Notzung vun NULLs fir Datenbankprobleme vermeiden
D'Benotzer déi nei d'Welt vun de Datenbanken nei sinn, ginn oft duerch e spezielle Wäert virun allem op den Terrain verwiesselt - de NULL value. Dëse Wäert läit op engem Feld wou all Typ vun Donnéeën ass an e ganz spezielle Sënn am Kontext vun enger relationaler Datebank. Et ass méiglecherweis fir eis Diskussioun iwwer NULL mat e puer Wierder ze beginnen iwwer wat NULL ass net :
- NULL ass net d'Zuel Null.
- NULL ass net de leeg Saache ("").
NULL ass NULL den Wäert fir e onbekannte Wierk ze representéieren. Oft gëtt Datebank Programméierer benotzt den Ausdrock "e NULL value", awer dat ass net korrekt. Vergiesst net: e NULL ass en onbekannte Wäert, an deem d'Feld eidel ass.
NULL an der Real Welt
Loosst eis e Bléck einfach kucken: eng Tabell mat der Inventaire fir e Fruuchtstandsbroch. Stellt eis Bestanddeeg 10 Äpp a dräi Orangen. Mir sinn och Plumpen, awer eis Inventar-Informatioun ass onvollstänneg a mir wësse net wéi vill (wa se) Plums sinn op Lager. Benotzt de NULL-Wäert, mir hätten d'Inventaire Dësch an der Tabell méi ënnen.
Fruit Stand Invent Inventory
InventoryID | Item | Quantitéit |
1 | Äppel | 10 |
2 | Orangen | 3 |
3 | Plums | NULL |
Et ass kloer falsch fir eng Quantitéit vu 0 ze maachen fir de Plumsatz ze maachen, well dat géif bedeiten datt mer keng Plummen am Inventar haten. Am Géigendeel, mir kënnen e puer Plummen hunn, awer mir sinn net sécher.
NULL oder NET NULL?
Eng Tabelle kann entwéckelt ginn fir NULL Wäerter z'ënnerstëtzen oder net.
Hei ass e SQL-Beispill deen eng Inventarentabelle erstallt, déi e puer NULLs erlaabt:
SQL> CREATE TABLE INVENTORY (InventoryID INT NET NULL, Element VARCHAR (20) NET NULL, KODÉIEREN INT);D'Inventar-Tabelle hei erlaabt net NULL Wäerter fir d' InventoryID an d' Element Säulen, awer erlaaben hinnen d' Quantitéit Späicher.
Obwuel en NULL-Wäert zielt ass perfekt. NULL Wäerter kënnen Problemer hunn, well all Vergläich vu Wäerter, wou een ass NULL, ëmmer zu NULL.
Fir kontrolléieren ob Ären Dësch NULL Wäerter enthält, den IS NULL oder IS NOT NULL-Betreiber benotzen. Hei ass e Beispill vu IS NULL:
SQL> SÉLECT INVENTORYID, ELEMENT, QUANTITÄT VON INVENTORIERT WËSSE MÄNNER NET NET NULL;Wann eis Beispill hei steet, wär dat erëm:
InventoryID | Item | Quantitéit |
---|---|---|
3 | Plums |
Operatioun op NULLs
Wielt mat NULL Wäerter produzéiert oft NULL Resultater, jee no der SQL-Operatioun . Zum Beispill, ugeholl datt A NULL ass:
Arithmetesche Betreiber
- A + B = NULL
- A - B = NULL
- A * B = NULL
- A / B = NULL
Verglach Operatoren
- A = B = NULL
- A! = B = NULL
- A> B = NULL
- A!
Dëst sinn nëmmen e puer Beispiller vun Operatoren déi ëmmer erëm NULL zréckginn, wann een Operne NULL ass. Vill méi komplex Abräume bestehen, an all NULL sinn komplizéiert. Den Heemechtspunkt ass datt wann Dir NULL Wäerter an Ärer Datebank zoutrëfft, déi Implikatioune verstoen an ze plangen.
Dat ass NULL a Nutshell!