MySQL ER NULL & ER IKKE NULL Selvstudium med EKSEMPLER

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

MySQL ER NULL & ER IKKE NULL

Nul som værdi

Enkelt sagt er NULL simpelthen en pladsholder for data, der ikke eksisterer. Når du udfører indsættelseshandlinger på tabeller, vil det være tidspunkter, hvor nogle feltværdier ikke vil være tilgængelige.

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

Nul som værdi

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

  • NULL er ikke en datatype – dette betyder, at den ikke genkendes som en "int", "dato" eller nogen anden defineret datatype.
  • Aritmetiske operationer involverer NULL altid returner 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 af 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 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 12345rm@tstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter MaleNULL 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 NOT logiske operator bruges til at teste for booleske betingelser og returnerer sand, hvis betingelsen er falsk. NOT-operatoren returnerer falsk, hvis betingelsen, der blev testet, er sand

Betingelse IKKE Operator Resultat
Sand False
False Sand

Hvorfor bruge NOT 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 værdien NULL, returnerer null-resultater. For at undgå, at sådanne situationer opstår, kan vi bruge brugen af ​​NOT NULL-klausulen til 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 forsynes med værdier, når der indsættes nye rækker i en tabel. Vi kan bruge NOT NULL-sætningen på et givet felt, når vi opretter tabellen.

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

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 angive 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-

IKKE NULL-værdier

NULL søgeord

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

`comlumn_name'  IS NULL
`comlumn_name' NOT NULL

HER

  • "ER NULL er det nøgleord, der udfører den boolske sammenligning. Den returnerer sand, hvis den angivne værdi er NULL og falsk, hvis den angivne værdi ikke er NULL.
  • "IKKE NULL"er det nøgleord, der udfører den boolske sammenligning. Den returnerer sand, hvis den angivne værdi ikke er NULL og falsk, hvis den angivne værdi er NULL.

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

Fortsætter med eksemplet ovenfor, antag, at vi har brug for oplysninger om medlemmer, hvis kontaktnummer ikke er ugyldigt. 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 ønsker medlemsregistre, 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 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

Sammenligning af nulværdier

Tre-værdi logik – at udføre booleske operationer på forhold, der involverer NULL, kan enten vende tilbage "Ukendt", "True" eller "False".

For eksempel: ved at bruge nøgleordet "ER NULL". når du laver sammenligningsoperationer involverer NULL kan enten vende tilbage sand or falsk. 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 gøre den samme handling 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å samme eksempel ved at bruge 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, hvilket er SAND

Resumé

  • NULL er en værdipladsholder for valgfri tabelfelter.
  • MySQL behandler NULL-værdien anderledes end andre datatyper. NULL-værdierne, når de bruges i en betingelse, evalueres til den falske boolske værdi.
  • Den IKKE logiske operation 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-udtrykket 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.