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 -
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.
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 | |
---|---|---|---|---|---|---|---|
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 | 12345 | rm@tstreet.com |
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 |
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-
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 | |
---|---|---|---|---|---|---|---|
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.