Ismerje meg a NULL-ok használatát az adatbázisproblémák elkerülésére
Az adatbázisok világába új felhasználókat gyakran összekeverik egy speciális, a mezőhöz tartozó érték - a NULL érték. Ez az érték egy olyan mezőben található, amely bármilyen típusú adatot tartalmaz, és nagyon különleges jelentése van egy relációs adatbázis összefüggésében. Talán a legjobb a NULL-beszélgetésünk megkezdésével, néhány szóval arról, hogy mi a NULL:
- A NULL nem a nulla szám.
- A NULL nem az üres karakterlánc ("").
Inkább a NULL az az érték, amelyet egy ismeretlen adat megjelenítésére használnak. Az adatbázis-programozók gyakran használják a "NULL érték" kifejezést, de ez helytelen. Ne feledje: a NULL egy ismeretlen érték, amelyben a mező üresen jelenik meg.
NULL a valós világban
Vessünk egy egyszerű példát: egy asztalt, amely a gyümölcskosár készletét tartalmazza. Tegyük fel, hogy készletünk 10 almát és 3 narancsot tartalmaz. Szilvákkal is foglalkozunk, de készletinformációink hiányosak és nem tudjuk, hány (ha van) szilva van raktáron. A NULL érték használatával a lenti táblázatot az alábbi táblázat mutatja.
Fruit Stand Inventory
InventoryID | Tétel | Mennyiség |
1 | Almák | 10 |
2 | narancs | 3 |
3 | szilva | NULLA |
Nyilvánvalóan helytelen lenne a szilva rekordra 0-os mennyiséget felvenni, mert ez azt jelentené, hogy nem volt szilva a készletben. Ellenkezőleg, lehet, hogy van néhány szilva, de nem vagyunk biztosak.
NULL vagy NULL?
Egy táblázatot úgy tervezhetünk, hogy megengedjük a NULL értékeket vagy sem.
Itt van egy SQL példa, amely létrehoz egy Inventory táblát, amely lehetővé teszi néhány NULL-t:
SQL CREATE TABLE INVENTORY (Leltárazonosító INT NOT NULL, VARCHAR elem (20) NOT NULL, mennyiség INT);A Készlet táblázat itt nem engedélyezi a NULL értékeket a InventoryID és az Elem oszlopokhoz, de lehetővé teszi számukra a Mennyiség oszlopot.
Bár a NULL érték tökéletesen finom, a NULL értékek problémákat okozhatnak, mivel minden olyan érték összehasonlítása, amelyben az egyik NULL, mindig NULL eredményt eredményez.
Annak ellenőrzéséhez, hogy a táblázatban NULL-értékeket tartalmaz-e, használja az IS NULL vagy IS NOT NULL operátort. Íme egy példa IS NULL:
SQL SELECT INVENTORYID, ITEM, QUANTITY FROM INVENTORY, ahol a MENNYISÉG NEM NULL;Tekintettel a példánkra, ez visszatér:
InventoryID | Tétel | Mennyiség |
---|---|---|
3 | szilva |
Működés NULL-okon
A NULL értékekkel való munka gyakran NULL eredményt ad, az SQL művelettől függően. Például, feltételezve, hogy A NULL:
Számtani operátorok
- A + B = NULL
- A - B = NULL
- A * B = NULL
- A / B = NULL
Összehasonlító operátorok
- A = B = NULL
- A! = B = NULL
- A> B = NULL
- A!
Ezek csak néhány példa az olyan operátorokra, amelyek mindig NULL-ot adnak vissza, ha egy operandus NULL. Sokkal összetettebb lekérdezések léteznek, és mindegyiket bonyolítja a NULL értékek. A lead home point az, hogy ha engedélyezi a NULL értékeket az adatbázisban, akkor érti meg a következményeket, és tervezze őket.
Ez NULL a dióhéjban!