Brugere, der er nye til databasernes verden, forveksles ofte med en særlig værdi specielt for feltet - NULL-værdien. Denne værdi kan findes i et felt indeholdende enhver type data og har en meget speciel betydning inden for rammerne af en relationsdatabase. Det er nok bedst at starte vores diskussion om NULL med et par ord om, hvad NULL er ikke :
- NULL er ikke tallet nul.
- NULL er ikke den tomme streng ("") værdi.
Snarere er NULL den værdi, der bruges til at repræsentere et ukendt data. Ofte bruger databaseprogrammører sætningen "en NULL-værdi", men dette er forkert. Husk: en NULL er en ukendt værdi, hvor feltet vises tomt.
NULL i den virkelige verden
Lad os tage et kig på et simpelt eksempel: et bord indeholdende opgørelsen til en frugtplade. Antag at vores lager indeholder 10 æbler og tre appelsiner. Vi lager også blommer, men vores opgørelsesoplysninger er ufuldstændige, og vi ved ikke, hvor mange (hvis nogen) blommer er på lager. Ved hjælp af NULL-værdien ville vi have opgørelsestabellen vist i tabellen nedenfor.
Frugtstandsinventar
InventoryID | Vare | Antal |
1 | æbler | 10 |
2 | appelsiner | 3 |
3 | blommer | NUL |
Det ville helt klart være ukorrekt at inkludere en mængde på 0 for plommens rekord, fordi det ville betyde, at vi havde ingen blommer i lagerbeholdningen. Tværtimod kan vi have nogle blommer, men vi er bare ikke sikre. Et bord kan være designet til enten at tillade NULL værdier eller ej. Her er et SQL-eksempel, der opretter en beholdningstabel, der tillader nogle NULL'er: SQL> CREATE TABLE INVENTORY (InventoryID INT IKKE NULL, Vare VARCHAR (20) IKKE NULL, Mængde INT); Opgørelsestabellen her tillader ikke NULL-værdier for InventoryID og Vare kolonner, men gør det muligt for dem Antal kolonne. Mens du tillader en NULL-værdi, er det helt fint, kan NULL-værdier forårsage problemer, fordi enhver sammenligning af værdier, hvor en er NULL, resulterer altid i NULL. For at kontrollere, om din tabel indeholder NULL værdier, skal du bruge IS NULL eller IS NOT NULL operatøren. Her er et eksempel på IS NULL: SQL> SELECT INVENTORYID, ITEM, Mængde fra lager, hvor mængden ikke er nul; I betragtning af vores eksempel her ville dette komme tilbage: Arbejde med NULL-værdier producerer ofte NULL-resultater afhængigt af SQL-operationen. For eksempel, under forudsætning af at A er NULL: Aritmetiske operatører Sammenligningsoperatører Dette er blot nogle eksempler på operatører, der vil altid returner NULL, hvis en operand er NULL. Der findes meget mere komplekse forespørgsler, og alle er komplicerede af NULL-værdier. Hjemstedet er, at hvis du tillader NULL-værdier i din database, forstå konsekvenserne og planlægge for dem. Det er NULL i et nøddeskal!Til NULL eller IKKE NULL?
InventoryID Vare Antal 3 blommer
Opererer på NULLs