MySQL IS NULL & IS NOT NULL Tutorial cu EXEMPLE

În SQL, nulul este atât o valoare, cât și un cuvânt cheie. Să ne uităm mai întâi la valoarea NULL -

MySQL ESTE NUL și NU ESTE NUL

Null ca valoare

În termeni simpli, NULL este pur și simplu un deținător de loc pentru date care nu există. Când se efectuează operații de inserare pe tabele, vor fi momente în care unele valori de câmp nu vor fi disponibile.

Pentru a îndeplini cerințele sistemelor adevărate de management al bazelor de date relaționale, MySQL folosește NULL ca deținător de loc pentru valorile care nu au fost trimise. Captura de ecran de mai jos arată cum arată valorile NULL în baza de date.

Null ca valoare

Să ne uităm acum la câteva dintre elementele de bază pentru NULL înainte de a merge mai departe în discuție.

  • NULL nu este un tip de date – aceasta înseamnă că nu este recunoscut ca „int”, „date” sau orice alt tip de date definit.
  • Operatii aritmetice implicând NULL mereu returnează NULL de exemplu, 69 + NULL = NULL.
  • TOATE funcții agregate afectează numai rândurile care nu au valori NULL.

Să demonstrăm acum cum funcția de numărare tratează valorile nule. Să vedem conținutul curent al tabelului de membri -

SELECT * FROM `members`;

Executarea scriptului de mai sus ne oferă următoarele rezultate

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

Să numărăm toți membrii care și-au actualizat contact_number

SELECT COUNT(contact_number)  FROM `members`;

Executarea interogării de mai sus ne oferă următoarele rezultate.

COUNT(contact_number)
7

Notă: Valorile care sunt NULL nu au fost incluse

Ce nu este?

Operatorul logic NOT este folosit pentru a testa condițiile booleene și returnează adevărat dacă condiția este falsă. Operatorul NOT returnează false dacă condiția care a fost testată este adevărată

Condiție NU Operator Rezultat
Adevărat Fals
Fals Adevărat

De ce să folosiți NOT null?

Vor exista cazuri când va trebui să efectuăm calcule pe un set de rezultate de interogare și să returnăm valorile. Efectuarea oricăror operații aritmetice pe coloanele care au valoarea NULL returnează rezultate nule. Pentru a evita astfel de situații, putem folosi clauza NOT NULL pentru a limita rezultatele pe care operează datele noastre.

Valori NOT NULL

Să presupunem că vrem să creăm un tabel cu anumite câmpuri care ar trebui să fie întotdeauna furnizate cu valori atunci când inserăm rânduri noi într-un tabel. Putem folosi clauza NOT NULL pe un anumit câmp atunci când creăm tabelul.

Exemplul prezentat mai jos creează un nou tabel care conține datele angajatului. Numărul angajatului trebuie furnizat întotdeauna

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

Să încercăm acum să inserăm o înregistrare nouă fără a specifica numele angajatului și să vedem ce se întâmplă.

INSERT INTO `employees` (full_names,gender) VALUES ('Steve Jobs', 'Male');

Executarea scriptului de mai sus în MySQL workbench dă următoarea eroare-

Valori NOT NULL

Cuvinte cheie NULL

NULL poate fi folosit și ca cuvânt cheie atunci când se efectuează operații booleene pe valori care includ NULL. Cuvântul cheie „IS/NOT” este folosit împreună cu cuvântul NULL în astfel de scopuri. Sintaxa de bază atunci când null este folosit ca cuvânt cheie este următoarea

`comlumn_name'  IS NULL
`comlumn_name' NOT NULL

AICI

  • „Este nulă este cuvântul cheie care efectuează comparația booleană. Returnează true dacă valoarea furnizată este NULL și false dacă valoarea furnizată nu este NULL.
  • "NU NUL"este cuvântul cheie care efectuează comparația booleană. Returnează true dacă valoarea furnizată nu este NULL și false dacă valoarea furnizată este nulă.

Să ne uităm acum la un exemplu practic care utilizează cuvântul cheie NOT NULL pentru a elimina toate valorile coloanelor care au valori nule.

Continuând cu exemplul de mai sus, să presupunem că avem nevoie de detalii ale membrilor al căror număr de contact nu este nul. Putem executa o interogare de genul

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

Executarea interogării de mai sus oferă numai înregistrări în care numărul de contact nu este nul.

Să presupunem că vrem înregistrări ale membrilor unde numărul de contact este nul. Putem folosi următoarea interogare

SELECT * FROM `members` WHERE contact_number IS NULL;

Executarea interogării de mai sus oferă detalii despre membru al cărui număr de contact este 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

Compararea valorilor nule

Logica cu trei valori – efectuarea de operații booleene în condiții care implică NULL poate fi returnată „Necunoscut”, „adevărat” sau „fals”.

De exemplu, folosind cuvântul cheie „IS NULL”. când se efectuează operații de comparație implicând NULL poate fie să se întoarcă adevărat or fals. Folosind alți operatori de comparație returnează „Necunoscut” (NULL).

Să presupunem că compari numărul cinci cu 5

SELECT 5 =5;

Rezultatul interogării este 1, ceea ce înseamnă ADEVĂRAT

5 =5
1

Să facem aceeași operație cu NULL

SELECT NULL = NULL;
NULL = NULL
NULL

Să ne uităm la un alt exemplu

SELECT 5 > 5;
5 > 5
0

Rezultatul interogării este 0, ceea ce înseamnă FALS

Să ne uităm la același exemplu folosind NULL

SELECT NULL > NULL;
NULL > NULL
NULL

Să folosim cuvântul cheie IS NULL

SELECT 5 IS NULL;
5 IS NULL
0

Rezultatul interogării este 0, ceea ce este FALS

SELECT NULL IS NULL;

NULL IS NULL
1

Rezultatul interogării este 1, care este TRUE

Rezumat

  • NULL este un loc titular de valoare pentru câmpurile opționale ale tabelului.
  • MySQL tratează valoarea NULL diferit de alte tipuri de date. Valorile NULL atunci când sunt utilizate într-o condiție se evaluează la o valoare booleană falsă.
  • Operația logică NOT este utilizată pentru a testa valorile booleene și evaluează ca adevărat dacă valoarea booleană este falsă și falsă dacă valoarea booleană este adevărată.
  • Clauza NOT NULL este folosită pentru a elimina valorile NULL dintr-un set de rezultate
  • Efectuarea de operații aritmetice pe valori NULL returnează întotdeauna rezultate NULL.
  • Operatorii de comparare precum [, =, etc.] nu pot fi utilizați pentru a compara valorile NULL.