MySQL IS NULL & IS NOT NULL Oktatóanyag PÉLDÁVAL

Az SQL-ben a nulla érték és kulcsszó is. Nézzük először a NULL értéket -

MySQL IS NULL ÉS NEM NULL

Null mint érték

Egyszerűen fogalmazva, a NULL egyszerűen a nem létező adatok helyőrzője. Amikor beszúrási műveleteket hajt végre táblákon, akkor bizonyos mezőértékek nem lesznek elérhetők.

Annak érdekében, hogy megfeleljen a valódi relációs adatbázis-kezelő rendszerek követelményeinek, MySQL a NULL értéket használja a be nem töltött értékek helyőrzőjeként. Az alábbi képernyőkép azt mutatja, hogyan néznek ki a NULL értékek az adatbázisban.

Null mint érték

Nézzünk most meg néhány alapvet a NULL-hoz, mielőtt továbbmennénk a vitába.

  • A NULL nem adattípus – ez azt jelenti, hogy nem ismeri fel „int”, „dátum” vagy más meghatározott adattípusként.
  • Számtani műveletek bevonásával NULL mindig vissza NULL például 69 + NULL = NULL.
  • Minden termék összesített függvények csak azokat a sorokat érinti, amelyeknek nincs NULL értéke.

Most mutassuk meg, hogyan kezeli a count függvény a null értékeket. Lássuk a tagtáblázat aktuális tartalmát-

SELECT * FROM `members`;

A fenti szkript végrehajtása a következő eredményeket adja

membership_ number full_ names gender date_of_ birth physical_ address postal_ address contact_ number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345rm@tstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter MaleNULL 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ámoljuk meg az összes tagot, aki frissítette kapcsolati_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ékű értékek nem kerültek bele

Mi NEM?

A NOT logikai operátor a logikai feltételek tesztelésére szolgál, és hamis feltétel esetén igazat ad vissza. A NOT operátor hamis értéket ad vissza, ha a tesztelt feltétel igaz

Állapot NEM Operator Eredmény
Igaz Hamis
Hamis Igaz

Miért használja a NOT null-t?

Lesznek olyan esetek, amikor számításokat kell végeznünk egy lekérdezés eredményhalmazán, és vissza kell adnunk az értékeket. Bármilyen aritmetikai művelet végrehajtása a NULL értékkel rendelkező oszlopokon null eredményeket ad vissza. Az ilyen helyzetek elkerülése érdekében használhatjuk a NOT NULL záradékot, hogy korlátozzuk azokat az eredményeket, amelyeken adataink működnek.

NOT NULL értékek

Tegyük fel, hogy szeretnénk létrehozni egy táblázatot bizonyos mezőkkel, amelyeket mindig értékekkel kell ellátni, amikor új sorokat szúrunk be egy táblázatba. A tábla létrehozásakor egy adott mezőn használhatjuk a NOT NULL záradékot.

Az alábbi példa egy új táblát hoz létre, amely tartalmazza az alkalmazottak adatait. Az alkalmazotti számot mindig meg kell adni

CREATE TABLE `employees`(
  employee_number int NOT NULL,
  full_names varchar(255) ,
  gender varchar(6)
);

Most próbáljunk meg beszúrni egy új rekordot az alkalmazott 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 szkript végrehajtása MySQL A munkaasztal a következő hibát adja:

NOT NULL értékek

NULL Kulcsszavak

A NULL kulcsszóként is használható, amikor logikai műveleteket hajt végre a NULL-t tartalmazó értékeken. Az „IS/NOT” kulcsszót a NULL szóval együtt használjuk ilyen célokra. A null kulcsszóként használt alapvető szintaxis a következő

`comlumn_name'  IS NULL
`comlumn_name' NOT NULL

ITT

  • "NULLA a kulcsszó, amely végrehajtja a logikai összehasonlítást. Igazat ad vissza, ha a megadott érték NULL, és hamis, ha a megadott érték nem NULL.
  • "NEM NULLA"a kulcsszó, amely végrehajtja a logikai összehasonlítást. Igazat ad vissza, ha a megadott érték nem NULL, és false-t, ha a megadott érték nulla.

Nézzünk most egy gyakorlati példát, amely a NOT NULL kulcsszót használja az összes null értékkel rendelkező oszlopérték eltávolítására.

Folytatva a fenti példát , tegyük fel , hogy szükségünk van azokról a tagokról , akiknek a telefonszáma nem null . Olyan lekérdezést hajthatunk végre, mint

SELECT * FROM `members` WHERE contact_number IS NOT NULL;

A fenti lekérdezés végrehajtása csak azokat a rekordokat adja meg, ahol a kapcsolati szám nem null.

Tegyük fel, hogy olyan tagrekordokat akarunk, ahol a kapcsolati szám null. A következő lekérdezést használhatjuk

SELECT * FROM `members` WHERE contact_number IS NULL;

A fenti lekérdezés végrehajtása olyan tag adatait adja meg, akiknek elérhetősége NULL

membership_ number full_names gender date_of_birth physical_address postal_address contact_ number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
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

Null értékek összehasonlítása

Háromértékű logika – Boole-műveletek végrehajtása olyan feltételek mellett, amelyekben NULL is szerepel, vagy visszatérhet „Ismeretlen”, „Igaz” vagy „Hamis”.

Például, az „IS NULL” kulcsszó használatával összehasonlítási műveletek elvégzésekor NULL bevonásával akár visszatérhet igaz or hamis. Más összehasonlító operátorok használata visszaadja „Ismeretlen” (NULL).

Tegyük fel, hogy összehasonlítja az ötöst az 5-tel

SELECT 5 =5;

A lekérdezés eredménye 1, ami azt jelenti, hogy IGAZ

5 =5
1

Végezzük el ugyanezt a műveletet NULL-lal

SELECT NULL = NULL;
NULL = NULL
NULL

Nézzünk egy másik példát

SELECT 5 > 5;
5 > 5
0

A lekérdezés eredménye 0, ami azt jelenti, hogy 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ésként

  • A NULL az opcionális táblamezők értékhelytartója.
  • MySQL a NULL értéket más adattípusoktól eltérően kezeli. A NULL értékek, ha egy feltételben használják, hamis logikai értékké válnak.
  • A NOT logikai művelet a logikai értékek tesztelésére szolgál, és igazra értékeli, ha a logikai érték hamis, és hamisra, ha a logikai érték igaz.
  • A NOT NULL záradék a NULL értékek eltávolítására szolgál az eredményhalmazból
  • A NULL értékeken végzett aritmetikai műveletek mindig NULL eredményeket adnak vissza.
  • Az összehasonlító operátorok, mint például a [, = stb.], nem használhatók a NULL értékek összehasonlítására.