MySQL ESTE NUL & NU ESTE NUL Tutorial cu EXEMPLE

Cuprins:

Anonim

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

Nul ca valoare

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

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

Să vedem acum 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”, „dată” sau alt tip de date definit.
  • Operațiile aritmetice care implică NULL returnează întotdeauna NULL, de exemplu, 69 + NULL = NULL.
  • Toate funcțiile agregate afectează numai rândurile care nu au valori NULL .

Să demonstrăm acum modul în care funcția de numărare tratează valorile nule. Să vedem conținutul curent al tabelei membrilor

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

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

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 NU logic este folosit pentru a testa condițiile booleene și returnează adevărat dacă condiția este falsă. Operatorul NOT returnează fals dacă condiția testată este adevărată

Condiție

NU rezultatul operatorului

Adevărat

Fals

Fals

Adevărat

De ce să folosești NU nul?

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

NU valori nule

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 se introduc rânduri noi într-un tabel. Putem folosi clauza NOT NULL pe un câmp dat la crearea tabelei.

Exemplul prezentat mai jos creează un nou tabel care conține datele angajaților. Numărul angajaților 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 nouă înregistrare 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 -

Cuvinte cheie NULL

NULL poate fi, de asemenea, utilizat ca cuvânt cheie atunci când efectuați operații booleene pe valori care includ NULL. Cuvântul cheie „ESTE / NU” este utilizat împreună cu cuvântul NULL în astfel de scopuri. Sintaxa de bază atunci când se utilizează nul ca cuvânt cheie este următoarea

`comlumn_name' IS NULL`comlumn_name' NOT NULL

AICI

  • „IS NULL” este cuvântul cheie care efectuează comparația booleană. Returnează adevărat dacă valoarea furnizată este NULL și falsă dacă valoarea furnizată nu este NULL.
  • „NOT NULL” este cuvântul cheie care efectuează comparația booleană. Returnează adevărat dacă valoarea furnizată nu este NULL și falsă dacă valoarea furnizată este nulă.

Să vedem acum un exemplu practic care folosește cuvântul cheie NOT NULL pentru a elimina toate valorile coloanei care au valori nule.

Continuând cu exemplul de mai sus, să presupunem că avem nevoie de detalii despre membri 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ă dorim înregistrări ale membrilor în care 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ăror 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 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

Comparând valoarea nulă s

Logică cu trei valori - efectuarea operațiunilor booleene în condiții care implică NULL poate returna „Necunoscut”, „Adevărat” sau „Fals”.

De exemplu, folosirea cuvântului cheie „IS NULL” atunci când efectuați operațiuni de comparație care implică NULL poate returna fie adevărat, fie fals . Utilizarea altor operatori de comparație returnează „Necunoscut” (NULL).

Să presupunem că comparați 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ă vedem același exemplu folosind NULL

SELECT NULL > NULL;
 
NULL> NULL
NULL

Permiteți utilizarea cuvântului cheie IS NULL

SELECT 5 IS NULL;
 
5 IS NULL
0

Rezultatul interogării este 0, care este FALS

SELECT NULL IS NULL;
 
NULL IS NULL
1

Rezultatul interogării este 1, care este ADEVĂRAT

rezumat

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