MySQL ER NULL & IS NOT NULL Tutorial med EKSEMPLER

Indholdsfortegnelse:

Anonim

I SQL er Null både en værdi såvel som et nøgleord. Lad os se på NULL-værdien først -

Null som værdi

Enkelt sagt er NULL simpelthen en pladsholder for data, der ikke findes. Når du udfører indsatshandlinger i tabeller, vil de være tidspunkter, hvor nogle feltværdier ikke er tilgængelige.

For at imødekomme kravene i ægte relationelle databasestyringssystemer bruger MySQL NULL som pladsholder for de værdier, der ikke er indsendt. Skærmbilledet nedenfor viser, hvordan NULL-værdier ser ud i databasen.

Lad os nu se på nogle af de grundlæggende for NULL, inden vi går videre ind i diskussionen.

  • NULL er ikke en datatype - det betyder, at den ikke genkendes som en "int", "dato" eller nogen anden defineret datatype.
  • Aritmetiske operationer, der involverer NULL, returnerer altid NULL for eksempel, 69 + NULL = NULL.
  • Alle samlede funktioner påvirker kun rækker, der ikke har NULL-værdier .

Lad os nu demonstrere, hvordan tællefunktionen behandler nulværdier. Lad os se det aktuelle indhold i medlemstabellen-

SELECT * FROM `members`;

Udførelse af ovenstående script giver os følgende resultater

 
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

Lad os tælle alle medlemmer, der har opdateret deres kontaktnummer

SELECT COUNT(contact_number) FROM `members`;

Udførelse af ovenstående forespørgsel giver os følgende resultater.

 
COUNT(contact_number)
7

Bemærk: Værdier, der er NULL, er ikke inkluderet

Hvad er IKKE?

Den IKKE logiske operatør bruges til at teste for boolske forhold og returnerer sand, hvis betingelsen er falsk. NOT-operatøren returnerer falsk, hvis den testede tilstand er sand

Tilstand

IKKE operatørresultat

Sand

Falsk

Falsk

Sand

Hvorfor bruge IKKE null?

Der vil være tilfælde, hvor vi bliver nødt til at udføre beregninger på et forespørgselsresultatsæt og returnere værdierne. Udførelse af aritmetiske operationer på kolonner, der har NULL-værdien, returnerer nulresultater. For at undgå, at sådanne situationer opstår, kan vi anvende NOT NULL-klausulen for at begrænse de resultater, som vores data fungerer på.

IKKE NULL Værdier

Lad os antage, at vi vil oprette en tabel med bestemte felter, der altid skal have værdier, når der indsættes nye rækker i en tabel. Vi kan bruge NOT NULL-klausulen på et givet felt, når vi opretter tabellen.

Eksemplet nedenfor opretter en ny tabel, der indeholder medarbejderens data. Medarbejdernummeret skal altid angives

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

Lad os nu prøve at indsætte en ny post uden at specificere medarbejdernavnet og se hvad der sker.

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

Udførelse af ovenstående script i MySQL workbench giver følgende fejl -

NUL Nøgleord

NULL kan også bruges som nøgleord, når du udfører boolske operationer på værdier, der inkluderer NULL. Nøgleordet "ER / IKKE" bruges i forbindelse med NULL-ordet til sådanne formål. Den grundlæggende syntaks, når null bruges som nøgleord, er som følger

`comlumn_name' IS NULL`comlumn_name' NOT NULL

HER

  • "IS NULL" er nøgleordet, der udfører den boolske sammenligning. Det returnerer sandt, hvis den leverede værdi er NULL og falsk, hvis den leverede værdi ikke er NULL.
  • "IKKE NULL" er nøgleordet, der udfører den boolske sammenligning. Det returnerer sandt, hvis den leverede værdi ikke er NULL og falsk, hvis den leverede værdi er nul.

Lad os nu se på et praktisk eksempel, der bruger NOT NULL-nøgleordet til at eliminere alle kolonneværdier, der har nulværdier.

Fortsæt med eksemplet ovenfor, antag, at vi har brug for detaljer om medlemmer, hvis kontaktnummer ikke er nul. Vi kan udføre en forespørgsel som

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

Udførelse af ovenstående forespørgsel giver kun poster, hvor kontaktnummeret ikke er nul.

Antag, at vi vil have medlemsoptegnelser, hvor kontaktnummeret er nul. Vi kan bruge følgende forespørgsel

SELECT * FROM `members` WHERE contact_number IS NULL;

Udførelse af ovenstående forespørgsel giver medlemsoplysninger, hvis kontaktnummer er 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

Sammenligning af nulværdi s

Tre-værdi-logik - udførelse af boolske operationer under forhold, der involverer NULL, kan enten returnere "Ukendt", "Sandt" eller "Falsk".

For eksempel kan brug af nøgleordet "IS NULL" ved sammenligning med NULL enten returnere true eller false . Brug af andre sammenligningsoperatører returnerer "Ukendt" (NULL).

Antag at du sammenligner nummer fem med 5

SELECT 5 =5;

Forespørgselsresultatet er 1, hvilket betyder SAND

 
5 =5
1

Lad os udføre den samme operation med NULL

SELECT NULL = NULL;
 
NULL = NULL
NULL

Lad os se på et andet eksempel

SELECT 5 > 5;
 
5> 5
0

Forespørgselsresultatet er 0, hvilket betyder FALSK

Lad os se på det samme eksempel ved hjælp af NULL

SELECT NULL > NULL;
 
NULL> NULL
NULL

Lad os bruge søgeordet IS NULL

SELECT 5 IS NULL;
 
5 IS NULL
0

Forespørgselsresultatet er 0, hvilket er FALSK

SELECT NULL IS NULL;
 
NULL IS NULL
1

Forespørgselsresultatet er 1, som er SAND

Resumé

  • NULL er en pladsholder til valgfri tabelfelter.
  • MySQL behandler NULL-værdien forskelligt fra andre datatyper. NULL-værdierne, når de anvendes i en tilstand, evalueres til den falske boolske værdi.
  • Den IKKE logiske funktion bruges til at teste for boolske værdier og evalueres til sand, hvis den boolske værdi er falsk og falsk, hvis den boolske værdi er sand.
  • NOT NULL-klausulen bruges til at eliminere NULL-værdier fra et resultatsæt
  • Udførelse af aritmetiske operationer på NULL-værdier returnerer altid NULL-resultater.
  • Sammenligningsoperatorerne såsom [, = osv.] Kan ikke bruges til at sammenligne NULL-værdier.