NULL (SQL)

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 2 september 2021; kontroller kräver 4 redigeringar .

NULL i en DBMS är ett speciellt värde (pseudo-värde) som kan skrivas till ett fält i en databastabell ( DB). NULL motsvarar begreppet "tomt fält", det vill säga "ett fält som inte innehåller något värde." Infört för att skilja mellan tomma (inte visuellt visade) värden i databasfält (till exempel en nolllängdssträng ) och saknade värden (när inget värde skrivs i fältet alls, även tomt) .

NULL betyder nej, okänd information. Värdet NULL är inte ett värde i ordets fulla betydelse: per definition betyder det frånvaron av ett värde och kan vara av typen NULL eller av någon annan typ (CREATE TABLE new_tab AS (SELECT NULL) är en speciell typ av null , CREATE TABLE new_table AS (SELECT 10+NULL) - heltalstyp). Därför är NULL varken den booleska FALSE eller den tomma strängen eller noll. Att jämföra NULL med valfritt värde kommer att resultera i NULL, inte FALSE eller 0. Dessutom är NULL inte lika med NULL!

Behovet av NULL i relationsdatabaser

Använda NULL i en databas

I databaser som stöder konceptet NULL, för ett tabellfält i beskrivningen, avgörs om det kan vara tomt. Om så är fallet kan inget värde skrivas till det här fältet, och det här fältet kommer att ha ett NULL-värde. Du kan också uttryckligen skriva ett NULL-värde till ett sådant fält.

Vanligtvis tillåter DBMS inte NULL-värden för fält som är en del av en tabells primärnyckel . I främmande nyckelfält är däremot NULL tillåtet. Närvaron av NULL i ett främmande nyckelfält kan tolkas som ett tecken på frånvaron av en relaterad post, och en sådan främmande nyckel kräver inte implementering av reglerna för referensintegritet som krävs för något annat främmande nyckelvärde.

Operationer med NULL

Eftersom NULL i generell mening inte är ett värde, är dess användning i aritmetiska , sträng , logiska och andra operationer strängt taget felaktig. De flesta DBMS stöder dock sådana operationer, men inför särskilda regler för dem:

Dessutom kan det finnas speciella systemfunktioner för att bekvämt konvertera NULL till vissa värden, till exempel har Oracle en systemfunktion NVL som returnerar värdet på sin parameter om den inte är NULL, eller standardvärdet om operanden är NULL. SQL -92- standarden definierar två funktioner: NULLIF och COALESCE, så deras användning är mer att föredra (om en viss DBMS implementerar dem).

Se även

Anteckningar

  1. Datum K., Darwen H. Fundamentals of future databas systems. Tredje manifestet. 2:a uppl. (under redaktion av S. D. Kuznetsov). M.: Janus-K, 2004.