NULL (SQL)

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 2. september 2021; checks kræver 4 redigeringer .

NULL i en DBMS er en speciel værdi (pseudo-værdi), der kan skrives til et felt i en databasetabel ( DB). NULL svarer til begrebet "tomt felt", det vil sige "et felt, der ikke indeholder nogen værdi." Introduceret for at skelne mellem tomme (ikke visuelt viste) værdier i databasefelter (for eksempel en nul-længde streng ) og manglende værdier (når ingen værdi er skrevet i feltet overhovedet, selv tom) .

NULL betyder nej, ukendt information. Værdien NULL er ikke en værdi i ordets fulde betydning: per definition betyder den fraværet af en værdi og kan være af typen NULL eller af enhver anden type (CREATE TABLE new_tab AS (SELECT NULL) er en speciel type null , CREATE TABLE new_table AS (SELECT 10+NULL) - heltalstype). Derfor er NULL hverken den boolske FALSE, den tomme streng eller nul. Sammenligning af NULL med en hvilken som helst værdi vil resultere i NULL, ikke FALSE eller 0. Desuden er NULL ikke lig med NULL!

Behovet for NULL i relationelle databaser

Brug af NULL i en database

I databaser, der understøtter begrebet NULL, afgøres det for et tabelfelt i beskrivelsen, om det kan være tomt. Hvis det er tilfældet, kan der ikke skrives nogen værdi til dette felt, og dette felt vil have en NULL-værdi. Du kan også udtrykkeligt skrive en NULL-værdi til et sådant felt.

Typisk tillader DBMS ikke NULL-værdier for felter, der er en del af en tabels primære nøgle . I fremmednøglefelter er NULL derimod tilladt. Tilstedeværelsen af ​​NULL i et fremmednøglefelt kan fortolkes som et tegn på fraværet af en relateret post, og en sådan fremmednøgle kræver ikke implementering af reglerne for referentiel integritet , der kræves for enhver anden fremmednøgleværdi.

Operationer med NULL

Da NULL ikke i generel forstand er en værdi, er brugen af ​​den i aritmetiske , streng , logiske og andre operationer strengt taget forkert. De fleste DBMS understøtter dog sådanne operationer, men indfører særlige regler for dem:

Derudover kan der være specielle systemfunktioner til bekvemt at konvertere NULL til bestemte værdier, for eksempel har Oracle en systemfunktion NVL, der returnerer værdien af ​​dens parameter, hvis den ikke er NULL, eller standardværdien, hvis operanden er NULL. SQL-92- standarden definerer to funktioner: NULLIF og COALESCE, så deres brug er mere at foretrække (hvis en bestemt DBMS implementerer dem).

Se også

Noter

  1. Dato K., Darwen H. Fundamentals of future database systems. Tredje Manifest. 2. udg. (under redaktion af S. D. Kuznetsov). M.: Janus-K, 2004.