MySQL JE NULL & NIJE NULL Vodič s PRIMJERIMA

Sadržaj:

Anonim

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

Nula kao vrijednost

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

Kako bi udovoljio zahtjevima istinskih relacijskih sustava za upravljanje bazama podataka, MySQL koristi NULL kao držač mjesta za vrijednosti koje nisu predane. Snimak zaslona u nastavku prikazuje kako NULL vrijednosti izgledaju u bazi podataka.

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

  • NULL nije vrsta podataka - to znači da se ne prepoznaje kao "int", "datum" ili bilo koji drugi definirani tip podataka.
  • Aritmetičke operacije koje uključuju NULL uvijek vraćaju NULL, na primjer, 69 + NULL = NULL.
  • Sve skupne funkcije utječu samo na retke koji nemaju NULL vrijednosti .

Pokažimo sada kako funkcija count tretira null 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 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

Izbrojimo sve članove koji su ažurirali svoj kontakt_broj

SELECT COUNT(contact_number) FROM `members`;

Izvršenje 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 logičkih uvjeta i vraća true ako je uvjet false. Operator NOT vraća false ako je provjereni uvjet istinit

Stanje

NE Rezultat operatora

Pravi

Lažno

Lažno

Pravi

Zašto koristiti NOT null?

Bit će slučajeva kada ćemo morati izvršiti proračune na skupu rezultata upita i vratiti vrijednosti. Izvođenje bilo kojih aritmetičkih operacija na stupcima koji imaju vrijednost NULL vraća null rezultate. Da se takve situacije ne bi dogodile, možemo upotrijebiti klauzulu NOT NULL kako bismo ograničili rezultate na kojima posluju naši podaci.

NOT NULL Vrijednosti

Pretpostavimo da želimo stvoriti tablicu s određenim poljima koja uvijek trebaju imati vrijednosti kada umetamo nove retke u tablicu. Prilikom izrade tablice možemo koristiti klauzulu NOT NULL na zadanom polju.

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 workbenchu ​​daje sljedeću pogrešku -

NULL Ključne riječi

NULL se također može koristiti kao ključna riječ prilikom izvođenja logičkih operacija na vrijednostima koje uključuju NULL. Ključna riječ "IS / NOT" koristi se zajedno s NULL riječju 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

  • "IS NULL" je ključna riječ koja izvodi logičku usporedbu. Vraća true ako je navedena vrijednost NULL i false ako isporučena vrijednost nije NULL.
  • "NOT NULL" je ključna riječ koja izvodi logičku usporedbu. Vraća true ako navedena vrijednost nije NULL i false ako je navedena vrijednost null.

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

Nastavljajući s gornjim primjerom, pretpostavimo da su nam potrebni detalji članova č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 kod kojih kontakt broj nije null.

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

SELECT * FROM `members` WHERE contact_number IS NULL;

Izvršavanje gornjeg upita daje detalje o članu čiji je kontaktni 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 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

Usporedba null vrijednosti s

Logika s tri vrijednosti - izvođenje logičkih operacija u uvjetima koji uključuju NULL može vratiti "Nepoznato", "Istinito" ili "Netačno".

Na primjer, upotreba ključne riječi "IS NULL" prilikom izvođenja operacija usporedbe koja uključuje NULL može vratiti true ili false . Korištenje drugih operatora usporedbe vraća "Nepoznato" (NULL).

Pretpostavimo da usporedite broj pet s 5

SELECT 5 =5;

Rezultat upita je 1 što znači ISTINA

 
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 ISTINA

Sažetak

  • NULL je držač mjesta vrijednosti za neobavezna polja tablice.
  • MySQL NULL vrijednost tretira drugačije od ostalih tipova podataka. Vrijednosti NULL kada se koriste u stanju procjenjuju se na lažnu logičku vrijednost.
  • Logička operacija NOT koristi se za testiranje logičkih vrijednosti i procjenjuje na true ako je Booleova vrijednost lažna i false 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 poput [, = itd.] Ne mogu se koristiti za usporedbu NULL vrijednosti.