MySQL IS NULL & IS NIET NULL Tutorial met VOORBEELDEN

Inhoudsopgave:

Anonim

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

Null als waarde

In eenvoudige bewoordingen is NULL gewoon een plaatshouder voor gegevens die niet bestaan. Bij het uitvoeren van invoegbewerkingen op tabellen, zullen dit momenten zijn waarop sommige veldwaarden niet beschikbaar zullen zijn.

Om te voldoen aan de vereisten van echte relationele databasebeheersystemen, gebruikt MySQL NULL als plaatshouder voor de waarden die niet zijn ingediend. De onderstaande schermafbeelding laat zien hoe NULL-waarden eruitzien in de database.

Laten we nu eens kijken naar enkele basisprincipes voor 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 met NULL retourneren altijd NULL , bijvoorbeeld 69 + NULL = NULL.
  • Alle statistische functies zijn alleen van invloed op rijen die geen NULL-waarden hebben .

Laten we nu demonstreren hoe de count-functie null-waarden behandelt. Laten we eens kijken naar de huidige inhoud van de ledentabel-

SELECT * FROM `members`;

Het uitvoeren van het bovenstaande script geeft ons de volgende resultaten

 
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

Laten we alle leden tellen die hun contactnummer hebben bijgewerkt

SELECT COUNT(contact_number) FROM `members`;

Het uitvoeren van de bovenstaande zoekopdracht geeft ons de volgende 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 true als de voorwaarde onwaar is. De operator NOT retourneert false als de geteste voorwaarde waar is

Staat

NOT Operator Resultaat

Klopt

Vals

Vals

Klopt

Waarom NOT null gebruiken?

Er zullen gevallen zijn waarin we berekeningen moeten uitvoeren op een set van queryresultaten en de waarden moeten retourneren. Als u rekenkundige bewerkingen uitvoert op kolommen met de waarde NULL, worden null-resultaten geretourneerd. Om dergelijke situaties te voorkomen, kunnen we het gebruik van de NOT NULL-clausule gebruiken om de resultaten waarop onze gegevens werken te beperken.

NOT NULL Waarden

Stel 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 op een bepaald veld gebruiken bij het maken van de tabel.

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

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 de volgende foutmelding -

NULL Trefwoorden

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

`comlumn_name' IS NULL`comlumn_name' NOT NULL

HIER

  • "IS NULL" is het sleutelwoord dat de Booleaanse vergelijking uitvoert. Het retourneert true als de opgegeven waarde NULL is en false als de opgegeven waarde niet NULL is.
  • "NOT NULL" is het sleutelwoord dat de Booleaanse vergelijking uitvoert. Het retourneert true als de opgegeven waarde niet NULL is en false als de opgegeven waarde null is.

Laten we nu eens kijken naar een praktisch voorbeeld dat het NOT NULL-sleutelwoord gebruikt om alle kolomwaarden met null-waarden te elimineren.

Als we doorgaan met het bovenstaande voorbeeld, stel dat we gegevens nodig hebben van leden waarvan het contactnummer niet nul is. We kunnen een zoekopdracht uitvoeren zoals

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

Het uitvoeren van de bovenstaande zoekopdracht levert alleen records op waarvan het contactnummer niet nul is.

Stel dat we ledenrecords willen waarvan het contactnummer nul is. We kunnen de volgende vraag gebruiken

SELECT * FROM `members` WHERE contact_number IS NULL;

Als u de bovenstaande zoekopdracht uitvoert, krijgt u de details van het lid 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 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

Null-waarde s vergelijken

Logica met drie waarden - het uitvoeren van Booleaanse bewerkingen op voorwaarden waarbij NULL betrokken is, kan "Unknown", "True" of "False" retourneren .

Als u bijvoorbeeld het sleutelwoord "IS NULL" gebruikt bij het uitvoeren van vergelijkingsbewerkingen met NULL, kan dit true of false retourneren . Als u andere vergelijkingsoperatoren gebruikt, wordt "Unknown" (NULL) geretourneerd .

Stel dat je nummer vijf met 5 vergelijkt

SELECT 5 =5;

Het zoekresultaat 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 zoekresultaat 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 ONWAAR is

SELECT NULL IS NULL;
 
NULL IS NULL
1

Het zoekresultaat is 1 wat WAAR is

Overzicht

  • NULL is een plaatshouder voor waarde 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 NOT logische operatie wordt gebruikt om te testen op Booleaanse waarden en evalueert naar true als de Booleaanse waarde false is en false als de Booleaanse waarde true is.
  • De NOT NULL-clausule wordt gebruikt om NULL-waarden uit een resultaatset te verwijderen
  • Het uitvoeren van rekenkundige bewerkingen op NULL-waarden levert altijd NULL-resultaten op.
  • De vergelijkingsoperatoren zoals [, =, etc.] kunnen niet worden gebruikt om NULL-waarden te vergelijken.