Brukere som er nye i databaserverdenen blir ofte forvirret av en spesiell verdi spesielt for feltet - NULL-verdien. Denne verdien kan bli funnet i et felt som inneholder alle typer data og har en veldig spesiell betydning i sammenheng med en relasjonsdatabase. Det er sannsynligvis best å begynne vår diskusjon av NULL med noen få ord om hva NULL er ikke :
- NULL er ikke tallet null.
- NULL er ikke den tomme strengen ("") -verdien.
Snarere er NULL verdien som brukes til å representere et ukjent datastykke. Ofte bruker databaseprogrammerne uttrykket "en NULL-verdi", men dette er feil. Husk: en null er en ukjent verdi der feltet vises tomt.
NULL i den virkelige verden
La oss ta en titt på et enkelt eksempel: et bord som inneholder inventar for fruktstativ. Anta at vår beholdning inneholder 10 epler og tre appelsiner. Vi lager også plommer, men vår lagerinformasjon er ufullstendig og vi vet ikke hvor mange (hvis noen) plommer er på lager. Ved å bruke NULL-verdien, ville vi ha oversiktstabellen vist i tabellen under.
Fruktstativ Inventory
InventoryID | Punkt | Mengde |
1 | epler | 10 |
2 | appelsiner | 3 |
3 | plommer | NULL |
Det ville tydeligvis være feil å inkludere en mengde på 0 for plommens plate, fordi det ville innebære at vi hadde Nei plommer i lager. Tvert imot kan vi ha noen plommer, men vi er bare ikke sikre. Et bord kan utformes for å enten tillate NULL-verdier eller ikke. Her er et SQL-eksempel som lager et Inventory-tabell som tillater noen NULLs: SQL> CREATE TABLE INVENTORY (InventoryID INT IKKE NULL, Vare VARCHAR (20) IKKE NULL, Antall INT); Inventory-tabellen her tillater ikke NULL-verdier for InventoryID og Punkt kolonner, men tillater dem for Mengde kolonne. Selv om du tillater en NULL-verdi, er det helt greit, kan NULL-verdier forårsake problemer, fordi en sammenligning av verdier som er NULL, resulterer alltid i null. For å sjekke om tabellen inneholder NULL-verdier, bruk IS NULL eller IS NOT NULL-operatøren. Her er et eksempel på IS NULL: SQL> SELECT INVENTORYID, ITEM, QUANTITY FROM INVENTORY hvor mengden er ikke null; Gitt vårt eksempel her, ville dette komme tilbake: Arbeide med NULL-verdier produserer ofte NULL-resultater, avhengig av SQL-operasjonen. For eksempel, forutsatt at A er NULL: Aritmetiske operatører Sammenligningsoperatører Dette er bare noen eksempler på operatører som vil alltid returner null hvis en operand er null. Mye mer komplekse spørringer eksisterer, og alle er kompliserte av NULL-verdier. Hjemmet poenget er at hvis du tillater NULL verdier i databasen din, forstå konsekvensene og planen for dem. Det er NULL i et nøtteskall!Til NULL eller IKKE NULL?
InventoryID Punkt Mengde 3 plommer
Fungerer på NULLs