MySQL IS NULL & IS NOT NULL Tutorial met VOORBEELDEN

In SQL is Null zowel een waarde als een trefwoord. Laten we eerst naar de NULL-waarde kijken -

MySQL IS NULL EN IS NIET NULL

Nul als waarde

Simpel gezegd is NULL eenvoudigweg een tijdelijke aanduiding voor gegevens die niet bestaan. Bij het uitvoeren van invoegbewerkingen op tabellen zullen er momenten zijn waarop sommige veldwaarden niet beschikbaar zijn.

Om te voldoen aan de eisen van echte relationele databasebeheersystemen, gebruikt MySQL NULL als tijdelijke aanduiding voor de waarden die niet zijn ingediend. De onderstaande schermafbeelding laat zien hoe NULL-waarden er in de database uitzien.

Nul als waarde

Laten we nu eens kijken naar enkele basisprincipes van NULL voordat we verder ingaan op de discussie.

  • NULL is geen gegevenstype – dit betekent dat het niet wordt herkend als een “int”, “date” of enig ander gedefinieerd gegevenstype.
  • Rekenkundige bewerkingen waarbij NULL altijd retourneer NULL bijvoorbeeld 69 + NULL = NULL.
  • Alles geaggregeerde functies heeft alleen invloed op rijen die geen NULL-waarden hebben.

Laten we nu demonstreren hoe de count-functie nulwaarden behandelt. Laten we de huidige inhoud van de ledentabel bekijken-

SELECT * FROM `members`;

Het uitvoeren van het bovenstaande script geeft ons het volgendewing

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

Laten we alle leden tellen die hun contactnummer hebben bijgewerkt

SELECT COUNT(contact_number)  FROM `members`;

Het uitvoeren van de bovenstaande query geeft ons het volgendewing resultaten.

COUNT(contact_number)
7

Opmerking: Waarden die NULL zijn, zijn niet opgenomen

Wat is niet?

De logische operator NOT wordt gebruikt om te testen op Booleaanse voorwaarden en retourneert waar als de voorwaarde onwaar is. De NOT-operator retourneert false als de geteste voorwaarde waar is

Conditie NIET Operatorresultaat
Waar Niet waar
Niet waar Waar

Waarom NOT null gebruiken?

Er zullen gevallen zijn waarin we berekeningen moeten uitvoeren op een queryresultatenset en de waarden moeten retourneren. Het uitvoeren van rekenkundige bewerkingen op kolommen met de waarde NULL levert nulresultaten op. Om te voorkomen dat dergelijke situaties zich voordoen, kunnen we het gebruik van de NOT NULL-clausule gebruiken om de resultaten waarop onze gegevens werken te beperken.

NIET NULL-waarden

Laten we aannemen dat we een tabel willen maken met bepaalde velden die altijd van waarden moeten worden voorzien bij het invoegen van nieuwe rijen in een tabel. We kunnen de NOT NULL-clausule voor een bepaald veld gebruiken bij het maken van de tabel.

In het onderstaande voorbeeld wordt een nieuwe tabel gemaakt die de gegevens van de werknemer bevat. Het personeelsnummer dient altijd te worden vermeld

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

Laten we nu proberen een nieuw record in te voegen zonder de naam van de werknemer op te geven en kijken wat er gebeurt.

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

Het uitvoeren van het bovenstaande script in MySQL workbench geeft het volgendewing fout-

NIET NULL-waarden

NULL-zoekwoorden

NULL kan ook als sleutelwoord worden gebruikt bij het uitvoeren van Booleaanse bewerkingen op waarden die NULL bevatten. Voor dergelijke doeleinden wordt het trefwoord “IS/NOT” gebruikt in combinatie met het woord NULL. De basissyntaxis wanneer null als trefwoord wordt gebruikt, is als volgt

`comlumn_name'  IS NULL
`comlumn_name' NOT NULL

HIER

  • "IS NIETS is het trefwoord dat de Booleaanse vergelijking uitvoert. Het retourneert true als de opgegeven waarde NULL is en false als de opgegeven waarde niet NULL is.
  • "NIET NUL"is het trefwoord dat de Booleaanse vergelijking uitvoert. Het retourneert true als de opgegeven waarde niet NULL is en false als de opgegeven waarde nul is.

Laten we nu eens kijken naar een praktisch voorbeeld waarin het trefwoord NOT NULL wordt gebruikt om alle kolomwaarden met nulwaarden te elimineren.

Laten we doorgaan met het bovenstaande voorbeeld. Stel dat we de nodig hebbentails van leden waarvan het contactnummer niet nul is. We kunnen een query uitvoeren zoals

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

Als u de bovenstaande query uitvoert, worden alleen records weergegeven waarvan het contactnummer niet nul is.

Stel dat we ledenrecords willen waarbij het contactnummer nul is. We kunnen follo gebruikenwing vraag

SELECT * FROM `members` WHERE contact_number IS NULL;

Het uitvoeren van de bovenstaande query geeft member details waarvan het contactnummer NULL is

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

Nulwaarden vergelijken

Logica met drie waarden – het uitvoeren van Booleaanse bewerkingen onder voorwaarden waarbij NULL betrokken is, kan terugkeren ‘Onbekend’, ‘Waar’ of ‘Niet waar’.

Bijvoorbeeld met behulp van het trefwoord “IS NULL”. bij het uitvoeren van vergelijkingsbewerkingen waarbij NULL betrokken is kan beide terugkeren waar or vals. Het gebruik van andere vergelijkingsoperatoren levert resultaten op “Onbekend” (NULL).

Stel dat je nummer vijf vergelijkt met 5

SELECT 5 =5;

Het resultaat van de zoekopdracht is 1, wat WAAR betekent

5 =5
1

Laten we dezelfde bewerking uitvoeren met NULL

SELECT NULL = NULL;
NULL = NULL
NULL

Laten we naar een ander voorbeeld kijken

SELECT 5 > 5;
5 > 5
0

Het resultaat van de zoekopdracht is 0, wat ONWAAR betekent

Laten we naar hetzelfde voorbeeld kijken met NULL

SELECT NULL > NULL;
NULL > NULL
NULL

Laten we het trefwoord IS NULL gebruiken

SELECT 5 IS NULL;
5 IS NULL
0

Het resultaat van de zoekopdracht is 0, wat FALSE is

SELECT NULL IS NULL;

NULL IS NULL
1

Het resultaat van de zoekopdracht is 1, wat WAAR is

Samengevat

  • NULL is een waardeplaatshouder voor optionele tabelvelden.
  • MySQL behandelt de NULL-waarde anders dan andere gegevenstypen. De NULL-waarden die in een voorwaarde worden gebruikt, resulteren in de valse Booleaanse waarde.
  • De logische bewerking NOT wordt gebruikt om te testen op Booleaanse waarden en evalueert naar waar als de Booleaanse waarde onwaar is en naar onwaar als de Booleaanse waarde waar is.
  • De NOT NULL-clausule wordt gebruikt om NULL-waarden uit een resultatenset te verwijderen
  • Het uitvoeren van rekenkundige bewerkingen op NULL-waarden retourneert altijd NULL-resultaten.
  • De vergelijkingsoperatoren zoals [, =, etc.] kunnen niet worden gebruikt om NULL-waarden te vergelijken.