MySQL ON NULL & EI OLE NULL NÄIDETEGA õpetus

SQL-is on Null nii väärtus kui ka märksõna. Vaatame kõigepealt NULL väärtust -

MySQL ON NULL JA EI OLE NULL

Null väärtusena

Lihtsamalt öeldes on NULL lihtsalt olematute andmete kohahoidja. Tabelites sisestustoimingute tegemisel on need ajad, mil mõned välja väärtused pole saadaval.

Tõeliste relatsiooniliste andmebaaside haldussüsteemide nõuete täitmiseks MySQL kasutab esitamata väärtuste kohahoidjana NULL-i. Allolev ekraanipilt näitab, kuidas NULL väärtused andmebaasis välja näevad.

Null väärtusena

Vaatame nüüd mõningaid NULL-i põhitõdesid, enne kui läheme arutelusse.

  • NULL ei ole andmetüüp – see tähendab, et seda ei tuvastata kui "int", "date" või mis tahes muud määratletud andmetüüpi.
  • Aritmeetilised toimingud kaasates NULL alati tagasta NULL näiteks 69 + NULL = NULL.
  • Materjal: BPA ja flataatide vaba plastik koondfunktsioonid mõjutab ainult ridu, millel ei ole NULL väärtusi.

Näitame nüüd, kuidas loendusfunktsioon käsitleb nullväärtusi. Vaatame liikmete tabeli praegust sisu-

SELECT * FROM `members`;

Ülaltoodud skripti täitmine annab meile järgmised tulemused

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

Loendame kõik liikmed, kes on oma kontaktnumbrit uuendanud

SELECT COUNT(contact_number)  FROM `members`;

Ülaltoodud päringu täitmine annab meile järgmised tulemused.

COUNT(contact_number)
7

Märkus. Väärtusi, mis on NULL, pole lisatud

Mis EI OLE?

Loogilist operaatorit NOT kasutatakse Boole'i ​​tingimuste testimiseks ja kui tingimus on väär, tagastab see tõene. Operaator NOT tagastab vale, kui testitud tingimus on tõene

Tingimus EI Operator Tulemus
Tõsi Vale
Vale Tõsi

Miks kasutada NOT nulli?

On juhtumeid, kui peame tegema päringu tulemuste komplekti arvutusi ja tagastama väärtused. Mis tahes aritmeetiliste toimingute sooritamine veergudega, mille väärtus on NULL, tagastab nulltulemused. Selliste olukordade vältimiseks saame kasutada NOT NULL-klauslit, et piirata tulemusi, millel meie andmed töötavad.

NOT NULL Väärtused

Oletame, et tahame luua teatud väljadega tabeli, mis tuleb tabelisse uute ridade lisamisel alati väärtustega varustada. Tabeli loomisel saame antud väljal kasutada lauset NOT NULL.

Allpool toodud näide loob uue tabeli, mis sisaldab töötaja andmeid. Töötaja number tuleb alati esitada

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

Proovime nüüd sisestada uue kirje ilma töötaja nime määramata ja vaatame, mis juhtub.

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

Ülaltoodud skripti käivitamine MySQL töölaud annab järgmise vea-

NOT NULL Väärtused

NULL Märksõnad

NULL-i saab kasutada ka märksõnana, kui sooritate Boole'i ​​toiminguid väärtustega, mis sisaldavad NULL-i. Märksõna "ON/EI" kasutatakse sellistel eesmärkidel koos sõnaga NULL. Põhisüntaks, kui märksõnana kasutatakse nulli, on järgmine

`comlumn_name'  IS NULL
`comlumn_name' NOT NULL

SIIN

  • "ON NULL on märksõna, mis teostab Boole'i ​​võrdlust. Tagastab tõene, kui esitatud väärtus on NULL, ja false, kui esitatud väärtus ei ole NULL.
  • "EI NULL"on märksõna, mis viib läbi Boole'i ​​võrdluse. See tagastab tõene, kui esitatud väärtus ei ole NULL, ja false, kui esitatud väärtus on null.

Vaatame nüüd praktilist näidet, mis kasutab märksõna NOT NULL, et kõrvaldada kõik veeru väärtused, millel on nullväärtused.

Jätkates ülaltoodud näitega, oletame, et vajame andmeid nende liikmete kohta, kelle kontaktnumber ei ole tühi. Saame täita päringu nagu

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

Ülaltoodud päringu täitmine annab ainult kirjed, mille kontaktnumber ei ole null.

Oletame, et tahame liikmekirjeid, kus kontakti number on tühi. Saame kasutada järgmist päringut

SELECT * FROM `members` WHERE contact_number IS NULL;

Ülaltoodud päringu täitmine annab liikme üksikasjad, kelle kontaktnumber on 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

Nullväärtuste võrdlemine

Kolme väärtusega loogika – Boole'i ​​toimingute sooritamine tingimustes, mis hõlmavad NULL-i, võib tagasi pöörduda "Tundmatu", "Tõene" või "Vale".

Näiteks kasutades märksõna "IS NULL". võrdlustoimingute tegemisel kaasates NULL saab kas tagasi pöörduda tõsi or vale. Teiste võrdlusoperaatorite kasutamine annab tulemuse "Teadmata" (NULL).

Oletame, et võrdlete numbrit viit numbriga 5

SELECT 5 =5;

Päringu tulemus on 1, mis tähendab TRUE

5 =5
1

Teeme sama toimingu NULL-iga

SELECT NULL = NULL;
NULL = NULL
NULL

Vaatame teist näidet

SELECT 5 > 5;
5 > 5
0

Päringu tulemus on 0, mis tähendab VÄÄR

Vaatame sama näidet kasutades NULL

SELECT NULL > NULL;
NULL > NULL
NULL

Kasutame märksõna IS NULL

SELECT 5 IS NULL;
5 IS NULL
0

Päringu tulemus on 0, mis on VÄÄR

SELECT NULL IS NULL;

NULL IS NULL
1

Päringu tulemus on 1, mis on TÕENE

kokkuvõte

  • NULL on valikuliste tabeliväljade väärtuse kohahoidja.
  • MySQL käsitleb NULL väärtust teistest andmetüüpidest erinevalt. Tingimuses kasutatavad NULL-väärtused hinnatakse valeks Boole'i ​​väärtuseks.
  • Loogilist toimingut EI kasutatakse tõeväärtuste testimiseks ja tõene, kui Boole'i ​​väärtus on väär, ja väär, kui Boole'i ​​väärtus on tõene.
  • NOT NULL-klauslit kasutatakse NULL-väärtuste eemaldamiseks tulemuskomplektist
  • NULL-väärtustega aritmeetiliste toimingute sooritamine tagastab alati NULL-tulemused.
  • Võrdlustehtereid, nagu [, = jne], ei saa kasutada NULL-väärtuste võrdlemiseks.