MySQL ON NULL & EI OLE NULL-opetusohjelma ESIMERKEJÄ

Sisällysluettelo:

Anonim

SQL: ssä Null on sekä arvo että avainsana. Tarkastellaan ensin NULL-arvoa -

Null arvona

Yksinkertaisesti sanottuna NULL on yksinkertaisesti paikanhaltija tiedoille, joita ei ole olemassa. Kun suoritat lisäysoperaatioita taulukoille, ne ovat aikoja, jolloin jotkut kenttäarvot eivät ole käytettävissä.

Täyttääkseen todellisten relaatiotietokantojen hallintajärjestelmien vaatimukset MySQL käyttää NULL: ää paikkana haltijoille arvoille, joita ei ole lähetetty. Alla oleva kuvakaappaus näyttää, kuinka NULL-arvot näyttävät tietokannassa.

Katsotaan nyt joitain NULL: n perusasioita, ennen kuin menemme pidemmälle keskusteluun.

  • NULL ei ole tietotyyppi - se tarkoittaa, että sitä ei tunnisteta "int", "päivämäärä" tai muuksi määritetyksi tietotyypiksi.
  • Aritmeettiset operaatiot , joihin liittyy NULL aina palata NULL esimerkiksi 69 + NULL = NULL.
  • Kaikki aggregaattitoiminnot vaikuttavat vain riveihin, joilla ei ole NULL-arvoja .

Näytetään nyt, kuinka laskentatoiminto kohtelee nolla-arvoja. Katsotaanpa jäsenten taulukon nykyinen sisältö-

SELECT * FROM `members`;

Yllä olevan komentosarjan suorittaminen antaa meille seuraavat tulokset

 
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

Lasketaan kaikki jäsenet, jotka ovat päivittäneet yhteystietonumeronsa

SELECT COUNT(contact_number) FROM `members`;

Yllä olevan kyselyn suorittaminen antaa meille seuraavat tulokset.

 
COUNT(contact_number)
7

Huomaa: NULL-arvoja ei ole sisällytetty

Mikä ei ole?

NOT-loogista operaattoria käytetään totuusarvojen testaamiseen ja palauttaa arvon true, jos ehto on väärä. NOT-operaattori palauttaa arvon false, jos testattu ehto on tosi

Kunto

EI käyttäjän tulosta

Totta

Väärä

Väärä

Totta

Miksi käyttää NOT null?

Joissakin tapauksissa meidän on suoritettava laskelmat kyselyn tulosjoukolle ja palautettava arvot. Minkä tahansa aritmeettisen operaation suorittaminen sarakkeilla, joilla on NULL-arvo, palauttaa nolla tuloksen. Tällaisten tilanteiden välttämiseksi voimme käyttää NOT NULL -lauseketta rajoittaaksemme tuloksia, joilla tietomme toimivat.

EI NULL-arvoja

Oletetaan, että haluamme luoda taulukon, jossa on tiettyjä kenttiä, joiden arvot on aina annettava, kun uusia rivejä lisätään taulukkoon. Voimme käyttää NOT NULL -lauseketta tietyssä kentässä taulukkoa luodessamme.

Alla oleva esimerkki luo uuden taulukon, joka sisältää työntekijän tiedot. Työntekijän numero tulee aina antaa

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

Yritetään nyt lisätä uusi tietue määrittelemättä työntekijän nimeä ja katsotaan mitä tapahtuu.

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

Yllä olevan komentosarjan suorittaminen MySQL-työpöydällä antaa seuraavan virheen -

NULL-avainsanat

NULL-arvoa voidaan käyttää myös avainsanana suoritettaessa Boolen operaatioita arvoille, jotka sisältävät NULL-arvon. Hakusanaa "IS / NOT" käytetään yhdessä NULL-sanan kanssa tällaisiin tarkoituksiin. Perussyntaksi, kun nollaa käytetään avainsanana, on seuraava

`comlumn_name' IS NULL`comlumn_name' NOT NULL

TÄSSÄ

  • "IS NULL" on avainsana, joka suorittaa Boolen-vertailun. Se palauttaa arvon tosi, jos toimitettu arvo on NULL ja epätosi, jos toimitettu arvo ei ole NULL.
  • "NOT NULL" on avainsana, joka suorittaa Boolen-vertailun. Se palauttaa arvon tosi, jos annettu arvo ei ole NULL, ja epätosi, jos toimitettu arvo on nolla.

Tarkastellaan nyt käytännön esimerkkiä, joka käyttää NOT NULL-avainsanaa kaikkien sarakearvojen poistamiseen, joilla on nolla-arvot.

Oletetaan, että tarvitsemme yksityiskohtia jäsenistä, joiden yhteysnumero ei ole nolla. Voimme suorittaa kyselyn kuten

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

Yllä olevan kyselyn suorittaminen antaa vain tietueet, joissa yhteyshenkilön numero ei ole nolla.

Oletetaan, että haluamme jäsenrekisterit, joissa yhteyshenkilön numero on tyhjä. Voimme käyttää seuraavaa kyselyä

SELECT * FROM `members` WHERE contact_number IS NULL;

Yllä olevan kyselyn suorittaminen antaa jäsenetiedot, joiden yhteyshenkilön numero 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

Nolla-arvon s vertaaminen

Kolmiarvoinen logiikka - Boolen operaatioiden suorittaminen olosuhteissa, joihin liittyy NULL, voi joko palauttaa "Tuntematon", "Tosi" tai "Epätosi".

Esimerkiksi käyttämällä "IS NULL" avainsana tehdessä vertailuoperaatiota NULL voi joko palauttaa true tai false . Muiden vertailuoperaattoreiden käyttäminen palauttaa "Tuntematon" (NULL).

Oletetaan, että verrataan viittä numeroa viiteen

SELECT 5 =5;

Kyselyn tulos on 1, mikä tarkoittaa TOSI

 
5 =5
1

Tehdään sama toiminto NULL: n kanssa

SELECT NULL = NULL;
 
NULL = NULL
NULL

Katsotaanpa toista esimerkkiä

SELECT 5 > 5;
 
5> 5
0

Kyselyn tulos on 0, mikä tarkoittaa EPÄTOSI

Katsotaanpa samaa esimerkkiä NULL: n avulla

SELECT NULL > NULL;
 
NULL> NULL
NULL

Voidaan käyttää IS NULL -avainsanaa

SELECT 5 IS NULL;
 
5 IS NULL
0

Kyselyn tulos on 0, mikä on EPÄTOSI

SELECT NULL IS NULL;
 
NULL IS NULL
1

Kyselyn tulos on 1, joka on TOSI

Yhteenveto

  • NULL on arvopaikan haltija valinnaisille taulukokentille.
  • MySQL kohtelee NULL-arvoa eri tavalla kuin muut tietotyypit. NULL-arvot, kun niitä käytetään olosuhteissa, arvioivat väärän loogisen arvon.
  • NOT-loogista operaatiota käytetään loogisten arvojen testaamiseen ja se arvioi arvon tosi, jos looginen arvo on väärä ja väärä, jos looginen arvo on tosi.
  • NOT NULL -lauseketta käytetään poistamaan NULL-arvot tulosjoukosta
  • Aritmeettisten operaatioiden suorittaminen NULL-arvoille palauttaa aina NULL-tulokset.
  • Vertailuoperaattoreita, kuten [, = jne.], Ei voida käyttää NULL-arvojen vertaamiseen.