MySQL JE NULL & NI NULL Vadnica z PRIMERI

Kazalo:

Anonim

V SQL je Null tako vrednost kot ključna beseda. Najprej poglejmo NULL vrednost -

Nič kot vrednost

Preprosto povedano, NULL je preprosto imetnik prostora za podatke, ki ne obstajajo. Pri izvajanju operacij vstavljanja tabel bodo časi, ko nekatere vrednosti polj ne bodo na voljo.

Da bi izpolnil zahteve resničnih sistemov za upravljanje relacijskih baz podatkov, MySQL uporablja NULL kot imetnika mesta za vrednosti, ki niso bile predložene. Spodnji posnetek zaslona prikazuje, kako v bazi podatkov izgledajo NULL vrednosti.

Poglejmo zdaj nekaj osnov za NULL, preden gremo naprej v razpravo.

  • NULL ni podatkovni tip - to pomeni, da ni prepoznan kot "int", "date" ali kateri koli drug definiran podatkovni tip.
  • Aritmetične operacije, ki vključujejo NULL, vedno vrnejo NULL, na primer 69 + NULL = NULL.
  • Vse sestavljene funkcije vplivajo samo na vrstice, ki nimajo vrednosti NULL .

Pokažimo zdaj, kako funkcija štetja obravnava ničelne vrednosti. Poglejmo trenutno vsebino tabele članov -

SELECT * FROM `members`;

Izvedba zgornjega skripta nam da naslednje 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

Preštejmo vse člane, ki so posodobili svojo kontaktno številko

SELECT COUNT(contact_number) FROM `members`;

Izvedba zgornje poizvedbe nam da naslednje rezultate.

 
COUNT(contact_number)
7

Opomba: Vrednosti, ki so NULL, niso bile vključene

Kaj NI?

Logični operator NOT se uporablja za testiranje logičnih pogojev in vrne true, če je pogoj false. Operator NOT vrne false, če je preizkušeni pogoj resničen

Stanje

NE Rezultat operaterja

Prav

Lažno

Lažno

Prav

Zakaj uporabiti NOT null?

Bili bodo primeri, ko bomo morali opraviti izračune na naboru rezultatov poizvedbe in vrniti vrednosti. Izvajanje kakršnih koli aritmetičnih operacij na stolpcih z vrednostjo NULL vrne ničelne rezultate. Da bi se izognili takim situacijam, lahko s klavzulo NOT NULL uporabimo za omejitev rezultatov, na katerih delujejo naši podatki.

NOT NULL Vrednosti

Predpostavimo, da želimo ustvariti tabelo z določenimi polji, ki morajo imeti vedno vrednosti z vstavljanjem novih vrstic v tabelo. Pri ustvarjanju tabele lahko v določenem polju uporabimo stavek NOT NULL.

Spodnji primer ustvarja novo tabelo, ki vsebuje podatke o zaposlenih. Vedno je treba navesti številko zaposlenega

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

Poskusimo zdaj vstaviti nov zapis, ne da bi navedli ime zaposlenega, in poglejmo, kaj se bo zgodilo.

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

Izvedba zgornjega skripta v delovnem okolju MySQL povzroči naslednjo napako -

NULL ključne besede

NULL lahko uporabite tudi kot ključno besedo pri izvajanju logičnih operacij z vrednostmi, ki vključujejo NULL. Za te namene se v povezavi z NULL besedo uporablja ključna beseda "IS / NOT". Osnovna sintaksa, ko se kot ključna beseda uporablja null, je naslednja

`comlumn_name' IS NULL`comlumn_name' NOT NULL

TUKAJ

  • "IS NULL" je ključna beseda, ki izvaja logično primerjavo. Vrne true, če je podana vrednost NULL, in false, če podana vrednost ni NULL.
  • "NOT NULL" je ključna beseda, ki izvaja logično primerjavo. Vrne true, če podana vrednost ni NULL, in false, če je navedena vrednost nič.

Poglejmo si zdaj praktični primer, ki s ključno besedo NOT NULL izloči vse vrednosti stolpcev, ki imajo ničelne vrednosti.

Če nadaljujemo z zgornjim primerom, predpostavimo, da potrebujemo podatke o članih, katerih kontaktna številka ni nična. Izvedemo lahko poizvedbo kot

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

Izvedba zgornje poizvedbe daje samo zapise, pri katerih kontaktna številka ni nič.

Recimo, da želimo zapise članov, kjer je kontaktna številka nična. Lahko uporabimo naslednjo poizvedbo

SELECT * FROM `members` WHERE contact_number IS NULL;

Z izvajanjem zgornje poizvedbe dobite podrobnosti o članu, katerih kontaktna številka je 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

Primerjava ničelnih vrednosti s

Trivrednostna logika - izvajanje logičnih operacij v pogojih, ki vključujejo NULL, lahko vrne »Neznano«, »Resnično« ali »False«.

Na primer, uporaba ključne besede "IS NULL" pri izvajanju primerjalnih operacij, ki vključujejo NULL, lahko vrne true ali false . Uporaba drugih primerjalnih operaterjev vrne "Neznano" (NULL).

Recimo, da primerjate številko pet s 5

SELECT 5 =5;

Rezultat poizvedbe je 1, kar pomeni TRUE

 
5 =5
1

Naredimo enako operacijo z NULL

SELECT NULL = NULL;
 
NULL = NULL
NULL

Poglejmo si še en primer

SELECT 5 > 5;
 
5> 5
0

Rezultat poizvedbe je 0, kar pomeni FALSE

Poglejmo si isti primer z uporabo NULL

SELECT NULL > NULL;
 
NULL> NULL
NULL

Uporabimo ključno besedo IS NULL

SELECT 5 IS NULL;
 
5 IS NULL
0

Rezultat poizvedbe je 0, kar je FALSE

SELECT NULL IS NULL;
 
NULL IS NULL
1

Rezultat poizvedbe je 1, kar je TRUE

Povzetek

  • NULL je imetnik mesta vrednosti za neobvezna polja tabel.
  • MySQL NULL vrednost obravnava drugače kot druge vrste podatkov. Vrednosti NULL, kadar se uporabljajo v pogoju, se izračunajo kot napačne logične vrednosti.
  • Logična operacija NOT se uporablja za testiranje logičnih vrednosti in oceni na true, če je logična vrednost false, in false, če je logična vrednost true.
  • Stavek NOT NULL se uporablja za odstranjevanje vrednosti NULL iz nabora rezultatov
  • Izvajanje aritmetičnih operacij z vrednostmi NULL vedno vrne NULL rezultate.
  • Operaterjev primerjave, kot je [, = itd.], Ni mogoče uporabiti za primerjavo NULL vrednosti.