Az SQL-ben a Null mind érték, mind kulcsszó. Vizsgáljuk meg először a NULL értéket -
Null, mint érték
Egyszerűbben fogalmazva: a NULL egyszerűen nem létező adatok helytartója. A táblákon végzett beillesztési műveletek végrehajtásakor olyan esetekre kerül sor, amikor néhány mezőérték nem lesz elérhető.
A valós relációs adatbázis-kezelő rendszerek követelményeinek teljesítése érdekében a MySQL a NULL-t használja a be nem adott értékek helytartójának. Az alábbi képernyőkép megmutatja, hogyan néznek ki a NULL értékek az adatbázisban.
Most nézzük meg a NULL néhány alapját, mielőtt tovább mennénk a vitába.
- A NULL nem adattípus - ez azt jelenti, hogy nem ismeri el sem "int", sem "dátumként", sem más meghatározott adattípusként.
- A NULL-t magában foglaló számtani műveletek mindig NULL-t adnak vissza , például 69 + NULL = NULL.
- Az összesített függvények csak azokat a sorokat érintik, amelyek nem rendelkeznek NULL értékekkel .
Most mutassuk be, hogyan kezeli a számláló függvény a null értékeket. Lássuk a tagok táblázatának jelenlegi tartalmát-
SELECT * FROM `members`;
A fenti parancsfájl végrehajtása a következő eredményeket adja nekünk
membership_ number | full_ names | gender | date_of_ birth | physical_ address | postal_ address | contact_ number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | This email address is being protected from spambots. You need JavaScript enabled to view it. |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
5 | Leonard Hofstadter | Male | NULL | Woodcrest | NULL | 845738767 | NULL |
6 | Sheldon Cooper | Male | NULL | Woodcrest | NULL | 976736763 | NULL |
7 | Rajesh Koothrappali | Male | NULL | Woodcrest | NULL | 938867763 | NULL |
8 | Leslie Winkle | Male | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
9 | Howard Wolowitz | Male | 24-08-1981 | SouthPark | P.O. Box 4563 | 987786553 | lwolowitz[at]email.me |
Számoljunk meg minden olyan tagot, aki frissítette az elérhetőség_számát
SELECT COUNT(contact_number) FROM `members`;
A fenti lekérdezés végrehajtásával a következő eredményeket kapjuk.
COUNT(contact_number) |
---|
7 |
Megjegyzés: A NULL értékeket nem vettük fel
Mi NEM?
A NOT logikai operátort a logikai feltételek tesztelésére használják, és igaz értéket ad vissza, ha a feltétel hamis. A NOT operátor hamis értéket ad vissza, ha a tesztelt feltétel igaz
Feltétel |
NEM A kezelő eredménye |
Igaz |
Hamis |
Hamis |
Igaz |
Miért használja a NOT null -t?
Vannak esetek, amikor számításokat kell végrehajtanunk egy lekérdezés eredményhalmazán, és vissza kell adnunk az értékeket. Bármely számtani művelet végrehajtása a NULL értékű oszlopokon null eredményt ad. Annak elkerülése érdekében, hogy ilyen helyzetek bekövetkezzenek, a NOT NULL záradék használatával korlátozhatjuk az adataink működésének eredményeit.
NEM NULL Értékek
Tegyük fel, hogy egy táblát szeretnénk létrehozni bizonyos mezőkkel, amelyeknek mindig meg kell adniuk az értékeket, amikor új sorokat helyezünk a táblába. A tábla létrehozásakor a NOT NULL záradékot használhatjuk egy adott mezőn.
Az alábbi példa új táblázatot hoz létre, amely az alkalmazottak adatait tartalmazza. A munkavállalói számot mindig meg kell adni
CREATE TABLE `employees`(employee_number int NOT NULL,full_names varchar(255) ,gender varchar(6));
Próbáljuk meg most beilleszteni egy új rekordot a munkavállaló nevének megadása nélkül, és nézzük meg, mi történik.
INSERT INTO `employees` (full_names,gender) VALUES ('Steve Jobs', 'Male');
A fenti parancsfájl végrehajtása a MySQL munkapadban a következő hibát eredményezi -
NULL Kulcsszavak
A NULL kulcsszóként is használható, ha logikai műveleteket hajt végre olyan értékeken, amelyek tartalmazzák a NULL értéket. Az "IS / NOT" kulcsszót a NULL szóval együtt használják ilyen célokra. Az alapszintaktika, amikor a null kulcsszóként szerepel, a következő
`comlumn_name' IS NULL`comlumn_name' NOT NULL
ITT
- Az "IS NULL" az a kulcsszó, amely elvégzi a logikai összehasonlítást. Igaz értéket ad vissza, ha a megadott érték NULL, és hamis, ha a megadott érték nem NULL.
- A "NOT NULL" az a kulcsszó, amely elvégzi a logikai összehasonlítást. Igaz, ha a megadott érték nem NULL, és hamis, ha a megadott érték null.
Most nézzünk meg egy gyakorlati példát, amely a NOT NULL kulcsszót használja az összes olyan oszlopérték kiküszöbölésére, amelyek nullértékkel rendelkeznek.
A fenti példával folytatva tegyük fel, hogy szükségünk van olyan tagok részleteire, akiknek kapcsolattartási száma nem null. Végrehajthatunk egy hasonló lekérdezést
SELECT * FROM `members` WHERE contact_number IS NOT NULL;
A fenti lekérdezés végrehajtása csak azokat a rekordokat adja, amelyeknél a kapcsolattartó száma nem null.
Tegyük fel, hogy olyan tagrekordokat szeretnénk, ahol a kapcsolattartó száma null. Használhatjuk a következő lekérdezést
SELECT * FROM `members` WHERE contact_number IS NULL;
A fenti lekérdezés végrehajtásával megadhatja azokat a tagokat, akiknek NULL kapcsolattartási száma
membership_ number | full_names | gender | date_of_birth | physical_address | postal_address | contact_ number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
5 | Leonard Hofstadter | Male | NULL | Woodcrest | NULL | 845738767 | NULL |
6 | Sheldon Cooper | Male | NULL | Woodcrest | NULL | 976736763 | NULL |
7 | Rajesh Koothrappali | Male | NULL | Woodcrest | NULL | 938867763 | NULL |
8 | Leslie Winkle | Male | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
9 | Howard Wolowitz | Male | 24-08-1981 | SouthPark | P.O. Box 4563 | 987786553 | lwolowitz[at]email.me |
Összehasonlítva null értéket s
Háromértékű logika - a logikai műveletek végrehajtása olyan feltételekkel, amelyek NULL-t tartalmaznak, visszaadhatja az "Ismeretlen", "Igaz" vagy "Hamis" értékeket .
Például az "IS NULL" kulcsszó használata a NULL-t magában foglaló összehasonlítási műveletek során igaz vagy hamis eredményt adhat . Más összehasonlító operátorok használata az "Ismeretlen" (NULL) értéket adja vissza .
Tegyük fel, hogy összehasonlítja az ötödik számot az 5-tel
SELECT 5 =5;
A lekérdezés eredménye 1, ami IGAZ
5 =5 |
---|
1 |
Végezzük el ugyanezt a műveletet a NULL-lel
SELECT NULL = NULL;
NULL = NULL |
---|
NULL |
Nézzünk meg egy másik példát
SELECT 5 > 5;
5> 5 |
---|
0 |
A lekérdezés eredménye 0, ami HAMIS
Nézzük meg ugyanezt a példát a NULL használatával
SELECT NULL > NULL;
NULL> NULL |
---|
NULL |
Használjuk az IS NULL kulcsszót
SELECT 5 IS NULL;
5 IS NULL |
---|
0 |
A lekérdezés eredménye 0, ami HAMIS
SELECT NULL IS NULL;
NULL IS NULL |
---|
1 |
A lekérdezés eredménye 1, ami IGAZ
Összegzés
- A NULL az opcionális táblamezők értéktartója.
- A MySQL a NULL értéket más adattípusoktól eltérően kezeli. A NULL értékek egy feltételben való felhasználásakor a hamis logikai értéket adják meg.
- A NOT logikai műveletet a logikai értékek tesztelésére használják, és igaznak értékeli, ha a logikai érték hamis, és hamis, ha a logikai érték igaz.
- A NULL záradékot a NULL értékek kiküszöbölésére használják egy eredményhalmazból
- A NULL értékeken végzett számtani műveletek mindig NULL eredményeket adnak vissza.
- Az összehasonlító operátorok, például a [, = stb.] Nem használhatók a NULL értékek összehasonlítására.