NULL (SQL)

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2021. szeptember 2-án felülvizsgált verziótól ; az ellenőrzések 4 szerkesztést igényelnek .

A NULL egy DBMS -ben egy speciális érték ( pszeudoérték ), amely egy adatbázistábla (DB) mezőjébe írható . A NULL az „üres mező” fogalmának felel meg, azaz „olyan mező, amely nem tartalmaz értéket”. Azért vezették be, hogy megkülönböztessük az üres (vizuálisan nem megjelenített) értékeket az adatbázismezőkben (például egy nulla hosszúságú karakterlánc ) és a hiányzó értékeket (ha egyáltalán nincs érték írva a mezőbe, még üres is) .

A NULL azt jelenti, hogy nem, ismeretlen információ. A NULL érték nem érték a szó teljes értelmében: definíció szerint az érték hiányát jelenti, és lehet NULL vagy bármilyen más típusú (CREATE TABLE new_tab AS (SELECT NULL) a null speciális típusa , CREATE TABLE new_table AS (SELECT 10+NULL) - egész típusú). Ezért a NULL nem a logikai FALSE, nem az üres karakterlánc és nem nulla. A NULL bármely értékkel való összehasonlítása NULL-t eredményez, nem HAMIS vagy 0-t. Ráadásul a NULL nem egyenlő a NULL-lal!

A NULL szükségessége relációs adatbázisokban

NULL használata adatbázisban

Azokban az adatbázisokban, amelyek támogatják a NULL fogalmát, a leírásban szereplő táblamező esetében meghatározzák, hogy lehet-e üres. Ha igen, akkor ebbe a mezőbe nem írható érték, és ennek a mezőnek NULL lesz az értéke. Egy ilyen mezőbe kifejezetten NULL értéket is írhat.

A DBMS általában nem engedélyezi a NULL értékeket a tábla elsődleges kulcsának részét képező mezőkben. Az idegen kulcs mezőiben ezzel szemben a NULL megengedett. A NULL jelenléte egy idegen kulcs mezőben értelmezhető a kapcsolódó rekord hiányának jeleként, és egy ilyen idegen kulcs nem igényli a hivatkozási integritás szabályainak megvalósítását , amelyek bármely más idegen kulcs értékéhez szükségesek.

Műveletek NULL-lal

Mivel a NULL általános értelemben nem érték, használata aritmetikai , karakterlánc , logikai és egyéb műveletekben szigorúan véve helytelen. A legtöbb DBMS azonban támogatja az ilyen műveleteket, de speciális szabályokat vezet be rájuk:

Ezen kívül létezhetnek speciális rendszerfüggvények a NULL kényelmes konvertálására bizonyos értékekké, például az Oracle -nek van egy NVL rendszerfüggvénye, amely visszaadja a paramétere értékét, ha az nem NULL, vagy az alapértelmezett értéket, ha az operandus NULL. Az SQL-92 szabvány két függvényt határoz meg: NULLIF és COALESCE, így ezek használata előnyösebb (ha egy adott DBMS megvalósítja őket).

Lásd még

Jegyzetek

  1. Dátum K., Darwen H. A jövő adatbázisrendszereinek alapjai. Harmadik Kiáltvány. 2. kiadás (S. D. Kuznyecov szerkesztésében). M.: Janus-K, 2004.