A MySQL NULL & NEM NULL bemutató példa

Tartalomjegyzék:

Anonim

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 email
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 email
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.