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

Lang L: none (table-of-contents):

Anonim

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

Null kui väärtus

Lihtsamalt öeldes on NULL lihtsalt andmete hoidja, mida pole olemas. Tabelite sisestamistoimingute tegemisel on need ajad, mil mõned välja väärtused pole saadaval.

Päris relatsiooniliste andmebaaside haldussüsteemide nõuete täitmiseks kasutab MySQL esitamata väärtuste kohahoidjana NULL-i. Allpool olev pilt näitab, kuidas NULL-väärtused andmebaasis välja näevad.

Vaatame nüüd NULLi põhitõdesid, enne kui läheme arutelusse.

  • NULL ei ole andmetüüp - see tähendab, et seda ei tunnistata int, kuupäev ega muu määratletud andmetüübina.
  • Aritmeetikakäsud kaasates NULL alati tagasi NULL näiteks 69 + NULL = NULL.
  • Kõik koondfunktsioonid mõjutavad ainult ridu, millel pole NULL väärtusi .

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

SELECT * FROM `members`;

Ülaltoodud skripti käivitamine 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 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

Loendame kokku 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: NULL-väärtusi ei ole lisatud

Mis EI OLE?

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

Seisund

EI operaatori tulemus

Tõsi

Vale

Vale

Tõsi

Miks kasutada NOT null?

On juhtumeid, kui peame arvutama päringu tulemuste komplekti ja tagastama väärtused. NULL-väärtusega veergudel mis tahes aritmeetiliste toimingute tegemine tagastab nulltulemused. Selliste olukordade vältimiseks võime kasutada klahvi NOT NULL, et piirata nende andmete tulemusi.

EI NULL Väärtused

Oletame, et tahame luua tabeli, millel on kindlad väljad ja millele tuleks alati lisada uusi väärtusi tabelisse väärtused. 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 töötaja nime täpsustamata ja vaatame, mis juhtub.

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

Ülaltoodud skripti käivitamine MySQL-i tööpingis annab järgmise tõrke -

NULL märksõna

NULL-i saab kasutada märksõnana ka Boole'i ​​toimingute tegemisel väärtustega, mis sisaldavad NULL-i. Sellistel eesmärkidel kasutatakse märksõna "IS / NOT" koos NULL-sõnaga. Põhisüntaks, kui nulli kasutatakse märksõnana, on järgmine

`comlumn_name' IS NULL`comlumn_name' NOT NULL

SIIN

  • "IS NULL" on märksõna, mis täidab Boole'i ​​võrdlust. See tagastab tõese, kui pakutav väärtus on NULL, ja vale, kui sisestatud väärtus pole NULL.
  • "NOT NULL" on märksõna, mis täidab Boole'i ​​võrdlust. See tagastab tõese, kui sisestatud väärtus pole NULL, ja vale, kui sisestatud väärtus on null.

Vaatame nüüd praktilist näidet, mis kasutab märksõna NOT NULL kõigi nullväärtustega veeruväärtuste kõrvaldamiseks.

Eespool toodud näite jätkamiseks oletame, et vajame üksikasju liikmete kohta, kelle kontaktnumber pole null. Saame täita sellist päringut nagu

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

Ülaltoodud päringu täitmine annab ainult kirjed, kus kontakti number pole null.

Oletame, et soovime liikmete kirjeid, kus kontakti number on null. Saame kasutada järgmist päringut

SELECT * FROM `members` WHERE contact_number IS NULL;

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

Nullväärtuse s võrdlemine

Kolme väärtusega loogika - Boole'i ​​toimingute tegemine tingimustes, mis hõlmavad NULL-i, võib anda kas "Tundmatu", "Tõene" või "Vale".

Näiteks NULL-i hõlmavate võrdlustoimingute tegemisel märksõna "IS NULL" kasutamine võib anda kas tõese või vale . Teiste võrdlusoperaatorite kasutamisel tagastatakse väärtus "Tundmatu" (NULL).

Oletame, et võrdlete numbrit viis 5-ga

SELECT 5 =5;

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

 
5 =5
1

Teeme sama toimingu ka NULL-iga

SELECT NULL = NULL;
 
NULL = NULL
NULL

Vaatame veel ühte näidet

SELECT 5 > 5;
 
5> 5
0

Päringu tulemus on 0, mis tähendab FALSE

Vaatame sama näidet, kasutades NULL-i

SELECT NULL > NULL;
 
NULL> NULL
NULL

Kasutab märksõna IS NULL

SELECT 5 IS NULL;
 
5 IS NULL
0

Päringu tulemus on 0, mis on FALSE

SELECT NULL IS NULL;
 
NULL IS NULL
1

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

Kokkuvõte

  • NULL on valikuliste tabeliväljade väärtusekoht.
  • MySQL käsitleb NULL-väärtust teistest andmetüüpidest erinevalt. Tingimuses kasutatavad NULL-väärtused vastavad valele Boole'i ​​väärtusele.
  • Loogilist operatsiooni NOT kasutatakse tõeväärtuse testimiseks ja see hindab väärtusele Tõene, kui tõeväärtus on tõene, ja tõeväärtus on tõene, kui tõeväärtus on tõene.
  • Klauslit NOT NULL kasutatakse NULL-väärtuste kõrvaldamiseks tulemuste komplektist
  • NULL-väärtuste aritmeetiliste toimingute tegemine annab alati NULL-tulemused.
  • NULL-väärtuste võrdlemiseks ei saa kasutada selliseid võrdlusoperaatoreid nagu [, = jne.].