„MySQL IS NULL“ & NĖRA NEMOKAMA pamoka su PAVYZDŽIAIS

Turinys:

Anonim

SQL sistemoje „Null“ yra ir vertė, ir raktinis žodis. Pirmiausia panagrinėkime NULL vertę -

Nulis kaip vertė

Paprasčiau tariant, NULL yra tiesiog neegzistuojančių duomenų vieta. Atliekant lentelių įterpimo operacijas, tai bus laikas, kai kai kurių lauko reikšmių nebus.

Siekdama patenkinti tikrų reliacinių duomenų bazių valdymo sistemų reikalavimus, „MySQL“ naudoja NULL kaip nepateiktų reikšmių vietos savininką. Žemiau pateiktoje ekrano kopijoje parodoma, kaip NULL reikšmės atrodo duomenų bazėje.

Pažvelkime į kai kuriuos NULL pagrindus, prieš tęsdami diskusiją.

  • NULL nėra duomenų tipas - tai reiškia, kad jis nėra atpažįstamas kaip „int“, „data“ ar bet koks kitas apibrėžtas duomenų tipas.
  • Aritmetinės operacijos, susijusios su NULL, visada grąžina NULL , pavyzdžiui, 69 + NULL = NULL.
  • Visos suvestinės funkcijos veikia tik eilutes, kuriose nėra NULL reikšmių .

Parodykime, kaip skaičiavimo funkcija traktuoja nulines reikšmes. Pažiūrėkime dabartinį narių lentelės turinį-

SELECT * FROM `members`;

Vykdydami pirmiau pateiktą scenarijų, gauname šiuos rezultatus

 
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

Suskaičiuokime visus narius, atnaujinusius savo kontaktinį numerį

SELECT COUNT(contact_number) FROM `members`;

Vykdydami pirmiau pateiktą užklausą gauname šiuos rezultatus.

 
COUNT(contact_number)
7

Pastaba: NULL vertės nėra įtrauktos

Kas NĖRA?

NOT loginis operatorius naudojamas tikrinant Būlo sąlygas ir grąžina teisingą, jei sąlyga yra klaidinga. Operatorius NOT grąžina klaidingą, jei patikrinta sąlyga yra teisinga

Būklė

NE operatoriaus rezultatas

Tiesa

Klaidinga

Klaidinga

Tiesa

Kodėl verta naudoti NE?

Bus atvejų, kai turėsime atlikti užklausos rezultatų rinkinio skaičiavimus ir grąžinti reikšmes. Atliekant bet kokias aritmetines operacijas stulpeliuose, kurių vertė yra NULL, rezultatai bus nuliniai. Kad išvengtume tokių situacijų, galime naudoti sąlygą NOT NULL, kad apribotume rezultatus, pagal kuriuos veikia mūsų duomenys.

NE NULL vertybės

Tarkime, kad norime sukurti lentelę su tam tikrais laukais, kurie visada turėtų būti pateikiami su vertėmis, kai į lentelę įterpiamos naujos eilutės. Kurdami lentelę tam tikrame lauke galime naudoti sąlygą NOT NULL.

Žemiau pateiktas pavyzdys sukuria naują lentelę, kurioje yra darbuotojų duomenys. Visada reikia nurodyti darbuotojo numerį

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

Pabandykime dabar įterpti naują įrašą nenurodydami darbuotojo vardo ir pažiūrėkime, kas nutiks.

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

Vykdant aukščiau pateiktą scenarijų „MySQL“ darbastalyje atsiranda ši klaida -

NULL raktiniai žodžiai

NULL taip pat gali būti naudojamas kaip raktinis žodis, kai atliekamos loginės operacijos vertėms, kuriose yra NULL. Tokiems tikslams raktinis žodis „IS / NOT“ vartojamas kartu su NULL žodžiu. Pagrindinė sintaksė, kai „null“ naudojama kaip raktinis žodis, yra tokia

`comlumn_name' IS NULL`comlumn_name' NOT NULL

ČIA

  • „IS NULL“ yra raktinis žodis, kuris atlieka Būlio palyginimą. Jis pateikia teisingą vertę, jei pateikiama vertė yra NULL, ir klaidingą, jei pateikta vertė nėra NULL.
  • „NOT NULL“ yra raktinis žodis, kuris atlieka Būlio palyginimą. Jis pateikia reikšmę „true“, jei pateikta vertė nėra NULL, ir „false“, jei pateikta vertė yra nulinė.

Pažvelkime į praktinį pavyzdį, kuris naudoja raktinį žodį NOT NULL, kad pašalintų visas stulpelių reikšmes, kurių reikšmės yra nulinės.

Tęsdami pirmiau pateiktą pavyzdį, tarkime, kad mums reikia išsamios informacijos apie narius, kurių kontaktinis numeris nėra niekinis. Mes galime vykdyti užklausą kaip

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

Vykdant anksčiau pateiktą užklausą pateikiami tik tie įrašai, kurių kontaktinis numeris nėra nulinis.

Tarkime, kad norime narių įrašų, kuriuose kontaktinis numeris yra nulinis. Mes galime naudoti šią užklausą

SELECT * FROM `members` WHERE contact_number IS NULL;

Vykdant anksčiau pateiktą užklausą pateikiama išsami informacija apie narį, kurio kontaktinis numeris yra 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

Lyginant nulinę vertę s

Trijų reikšmių logika - vykdant Būlo operacijas sąlygomis, kuriose dalyvauja NULL, galima grąžinti „Nežinoma“, „Tiesa“ arba „Netiesa“.

Pvz., Naudojant raktinį žodį „IS NULL“, kai atliekamos palyginimo operacijos, susijusios su NULL, gali būti pateikiama teisinga arba klaidinga . Naudojant kitus palyginimo operatorius, gaunama „Nežinoma“ (NULL).

Tarkime, kad penktą skaičių lyginate su 5

SELECT 5 =5;

Užklausos rezultatas yra 1, o tai reiškia TIESA

 
5 =5
1

Atlikime tą pačią operaciją su NULL

SELECT NULL = NULL;
 
NULL = NULL
NULL

Pažvelkime į kitą pavyzdį

SELECT 5 > 5;
 
5> 5
0

Užklausos rezultatas yra 0, o tai reiškia NETIESA

Pažvelkime į tą patį pavyzdį naudodami NULL

SELECT NULL > NULL;
 
NULL> NULL
NULL

Leidžia naudoti raktinį žodį IS NULL

SELECT 5 IS NULL;
 
5 IS NULL
0

Užklausos rezultatas yra 0, kuris yra NETIESA

SELECT NULL IS NULL;
 
NULL IS NULL
1

Užklausos rezultatas yra 1, kuris yra TIESA

Santrauka

  • NULL yra pasirinktinių lentelių laukų vertės laikiklis.
  • „MySQL“ vertina NULL reikšmę kitaip nei kiti duomenų tipai. NULL reikšmės, kai naudojamos sąlygoje, įvertina klaidingą Bulio reikšmę.
  • NOT loginė operacija naudojama tikrinant logines reikšmes ir įvertinama kaip teisinga, jei loginė reikšmė yra klaidinga ir klaidinga, jei loginė reikšmė yra teisinga.
  • Sąlyga NOT NULL naudojama norint pašalinti NULL reikšmes iš rezultatų rinkinio
  • Atliekant NULL reikšmių aritmetines operacijas, visada gaunami NULL rezultatai.
  • Tokių palyginimo operatorių kaip [, = ir kt.] Negalima naudoti NULL reikšmėms palyginti.