MySQL IS NULL & IS NOT NULL Vodič s PRIMJERIMA

U SQL-u Null je i vrijednost i ključna riječ. Pogledajmo prvo vrijednost NULL –

MySQL JE NULL & NIJE NULL

Null kao vrijednost

Jednostavno rečeno, NULL je jednostavno mjesto za podatke koji ne postoje. Prilikom izvođenja operacija umetanja na tablicama bit će vremena kada neke vrijednosti polja neće biti dostupne.

Kako bismo zadovoljili zahtjeve pravih sustava za upravljanje relacijskim bazama podataka, MySQL koristi NULL kao držač mjesta za vrijednosti koje nisu poslane. Snimak zaslona u nastavku pokazuje kako NULL vrijednosti izgledaju u bazi podataka.

Null kao vrijednost

Pogledajmo sada neke od osnova za NULL prije nego što odemo dalje u raspravu.

  • NULL nije tip podataka – to znači da se ne prepoznaje kao "int", "date" ili bilo koja druga definirana vrsta podataka.
  • Aritmetičke operacije uključuje NULL uvijek vrati NULL na primjer, 69 + NULL = NULL.
  • Svi agregatne funkcije utječu samo na retke koji nemaju NULL vrijednosti.

Pokažimo sada kako funkcija brojanja tretira nulte vrijednosti. Pogledajmo trenutni sadržaj tablice članova-

SELECT * FROM `members`;

Izvršavanje gornje skripte daje nam sljedeće 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

Prebrojimo sve članove koji su ažurirali svoj contact_number

SELECT COUNT(contact_number)  FROM `members`;

Izvršavanje gornjeg upita daje nam sljedeće rezultate.

COUNT(contact_number)
7

Napomena: Vrijednosti koje su NULL nisu uključene

Što NIJE?

Logički operator NOT koristi se za testiranje Booleovih uvjeta i vraća true ako je uvjet lažan. Operator NOT vraća false ako je testirani uvjet istinit

Stanje NE Operator Rezultat
Pravi Lažan
Lažan Pravi

Zašto koristiti NOT null?

Bit će slučajeva kada ćemo morati izvršiti izračune na skupu rezultata upita i vratiti vrijednosti. Izvođenje bilo koje aritmetičke operacije na stupcima koji imaju NULL vrijednost vraća null rezultate. Kako bismo izbjegli takve situacije, možemo upotrijebiti klauzulu NOT NULL da ograničimo rezultate na kojima funkcioniraju naši podaci.

NIJE NULL vrijednosti

Pretpostavimo da želimo stvoriti tablicu s određenim poljima koja bi uvijek trebala biti opskrbljena vrijednostima prilikom umetanja novih redaka u tablicu. Možemo koristiti NOT NULL klauzulu na danom polju kada kreiramo tablicu.

Primjer prikazan u nastavku stvara novu tablicu koja sadrži podatke o zaposleniku. Uvijek treba navesti broj zaposlenika

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

Pokušajmo sada umetnuti novi zapis bez navođenja imena zaposlenika i vidjeti što će se dogoditi.

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

Izvršavanje gornje skripte u MySQL radni stol daje sljedeću grešku-

NIJE NULL vrijednosti

NULL ključne riječi

NULL se također može koristiti kao ključna riječ pri izvođenju Booleovih operacija na vrijednostima koje uključuju NULL. Ključna riječ "IS/NOT" koristi se zajedno s riječju NULL u takve svrhe. Osnovna sintaksa kada se null koristi kao ključna riječ je sljedeća

`comlumn_name'  IS NULL
`comlumn_name' NOT NULL

OVDJE

  • “JE NIŠTAVAN je ključna riječ koja izvodi Booleovu usporedbu. Vraća true ako je isporučena vrijednost NULL i false ako isporučena vrijednost nije NULL.
  • “NIJE NULL”je ključna riječ koja izvodi Booleovu usporedbu. Vraća true ako isporučena vrijednost nije NULL i false ako je isporučena vrijednost null.

Pogledajmo sada praktični primjer koji koristi ključnu riječ NOT NULL za eliminaciju svih vrijednosti stupaca koji imaju null vrijednosti.

Nastavljajući s gornjim primjerom, pretpostavimo da su nam potrebni podaci o članovima čiji kontakt broj nije null. Možemo izvršiti upit poput

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

Izvršavanje gornjeg upita daje samo zapise u kojima broj kontakta nije nula.

Pretpostavimo da želimo zapise o članovima gdje je kontakt broj null. Možemo koristiti sljedeći upit

SELECT * FROM `members` WHERE contact_number IS NULL;

Izvršavanje gornjeg upita daje podatke o članu čiji je kontakt broj 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

Usporedba nultih vrijednosti

Logika tri vrijednosti – izvođenje Booleovih operacija na uvjetima koji uključuju NULL može ili vratiti "Nepoznato", "Točno" ili "Netočno".

Na primjer, koristeći ključnu riječ “IS NULL”. kada radite operacije usporedbe uključujući NULL može ili vratiti istinski or lažan. Korištenje drugih operatora usporedbe vraća “Nepoznato” (NULL).

Pretpostavimo da usporedite broj pet s pet

SELECT 5 =5;

Rezultat upita je 1 što znači TRUE

5 =5
1

Napravimo istu operaciju s NULL

SELECT NULL = NULL;
NULL = NULL
NULL

Pogledajmo još jedan primjer

SELECT 5 > 5;
5 > 5
0

Rezultat upita je 0 što znači FALSE

Pogledajmo isti primjer koristeći NULL

SELECT NULL > NULL;
NULL > NULL
NULL

Upotrijebimo ključnu riječ IS NULL

SELECT 5 IS NULL;
5 IS NULL
0

Rezultat upita je 0 što je FALSE

SELECT NULL IS NULL;

NULL IS NULL
1

Rezultat upita je 1 što je TOČNO

Rezime

  • NULL je držač mjesta vrijednosti za izborna polja tablice.
  • MySQL tretira vrijednost NULL drugačije od drugih tipova podataka. Vrijednosti NULL kada se koriste u uvjetu procjenjuju se na lažnu Booleovu vrijednost.
  • Logička operacija NOT koristi se za testiranje Booleovih vrijednosti i procjenjuje se na istinito ako je Booleova vrijednost lažna i na lažno ako je Booleova vrijednost istinita.
  • Klauzula NOT NULL koristi se za uklanjanje NULL vrijednosti iz skupa rezultata
  • Izvođenje aritmetičkih operacija na NULL vrijednostima uvijek vraća NULL rezultate.
  • Operatori usporedbe kao što su [, =, itd.] ne mogu se koristiti za usporedbu NULL vrijednosti.