MySQL ÄR NULL & ÄR INTE NULL Handledning med EXEMPEL

Innehållsförteckning:

Anonim

I SQL är Null både ett värde och ett nyckelord. Låt oss titta på NULL-värdet först -

Null som ett värde

Enkelt uttryckt är NULL helt enkelt en platshållare för data som inte finns. När du gör insättningsoperationer i tabeller kommer de att tider då vissa fältvärden inte är tillgängliga.

För att uppfylla kraven i riktiga relationshanteringssystem använder MySQL NULL som platshållare för de värden som inte har skickats. Skärmdumpen nedan visar hur NULL-värden ser ut i databasen.

Låt oss nu titta på några av grunderna för NULL innan vi går vidare in i diskussionen.

  • NULL är inte en datatyp - det betyder att den inte känns igen som ett "int", "datum" eller någon annan definierad datatyp.
  • Aritmetiska operationer som involverar NULL returnerar alltid NULL till exempel, 69 + NULL = NULL.
  • Alla aggregerade funktioner påverkar endast rader som inte har NULL-värden .

Låt oss nu visa hur räkningsfunktionen behandlar nollvärden. Låt oss se det aktuella innehållet i medlemstabellen-

SELECT * FROM `members`;

Att utföra ovanstående skript ger oss följande resultat

 
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

Låt oss räkna alla medlemmar som har uppdaterat sitt kontaktnummer

SELECT COUNT(contact_number) FROM `members`;

Att utföra ovanstående fråga ger oss följande resultat.

 
COUNT(contact_number)
7

Obs! Värden som är NULL har inte inkluderats

Vad är inte?

Den INTE logiska operatören används för att testa för booleska förhållanden och returnerar true om villkoret är falskt. NOT-operatören returnerar falskt om villkoret som testats är sant

Tillstånd

INTE operatörsresultat

Sann

Falsk

Falsk

Sann

Varför använda INTE null?

Det kommer att finnas fall då vi måste utföra beräkningar på en sökresultatuppsättning och returnera värdena. Genom att utföra alla aritmetiska operationer på kolumner som har NULL-värdet returneras nollresultat. För att undvika sådana situationer kan vi använda användningen av NOT NULL-klausulen för att begränsa de resultat som våra uppgifter fungerar på.

INTE NULL Värden

Låt oss anta att vi vill skapa en tabell med vissa fält som alltid ska förses med värden när vi sätter in nya rader i en tabell. Vi kan använda NOT NULL-satsen i ett visst fält när vi skapar tabellen.

Exemplet som visas nedan skapar en ny tabell som innehåller anställdas data. Antalet anställda ska alltid anges

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

Låt oss nu försöka infoga en ny post utan att ange medarbetarnamnet och se vad som händer.

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

Exekvering av ovanstående skript i MySQL-arbetsbänk ger följande fel -

NULL Nyckelord

NULL kan också användas som nyckelord när du utför booleska operationer på värden som inkluderar NULL. Nyckelordet "IS / NOT" används i kombination med NULL-ordet för sådana ändamål. Den grundläggande syntaxen när null används som nyckelord är följande

`comlumn_name' IS NULL`comlumn_name' NOT NULL

HÄR

  • "IS NULL" är nyckelordet som utför den booleska jämförelsen. Det returnerar sant om det angivna värdet är NULL och falskt om det angivna värdet inte är NULL.
  • "INTE NULL" är nyckelordet som utför den booleska jämförelsen. Det returnerar true om det angivna värdet inte är NULL och false om det angivna värdet är null.

Låt oss nu titta på ett praktiskt exempel som använder nyckelordet NOT NULL för att eliminera alla kolumnvärden som har nollvärden.

Fortsätt med exemplet ovan, antar att vi behöver information om medlemmar vars kontaktnummer inte är noll. Vi kan utföra en fråga som

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

Att utföra ovanstående fråga ger bara poster där kontaktnumret inte är null.

Antag att vi vill ha medlemsregister där kontaktnumret är noll. Vi kan använda följande fråga

SELECT * FROM `members` WHERE contact_number IS NULL;

Genom att utföra ovanstående fråga får medlemsinformation vars kontaktnummer är 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

Jämföra nollvärde s

Trevärdeslogik - att utföra booleska operationer under förhållanden som involverar NULL kan antingen returnera "Okänd", "Sann" eller "Falsk".

Om du till exempel använder nyckelordet "IS NULL" när du gör jämförelseåtgärder med NULL kan du antingen returnera true eller false . Användning av andra jämförelseoperatörer returnerar "Okänd" (NULL).

Antag att du jämför nummer fem med 5

SELECT 5 =5;

Frågeresultatet är 1 vilket betyder SANT

 
5 =5
1

Låt oss göra samma operation med NULL

SELECT NULL = NULL;
 
NULL = NULL
NULL

Låt oss titta på ett annat exempel

SELECT 5 > 5;
 
5> 5
0

Frågeresultatet är 0 vilket betyder FALSKT

Låt oss titta på samma exempel med NULL

SELECT NULL > NULL;
 
NULL> NULL
NULL

Låt oss använda nyckelordet IS NULL

SELECT 5 IS NULL;
 
5 IS NULL
0

Frågeresultatet är 0 vilket är FALSE

SELECT NULL IS NULL;
 
NULL IS NULL
1

Frågeresultatet är 1 vilket är SANT

Sammanfattning

  • NULL är en värdeplatshållare för valfria tabellfält.
  • MySQL behandlar NULL-värdet annorlunda än andra datatyper. NULL-värdena när de används i ett tillstånd utvärderas till det falska booleska värdet.
  • Den INTE logiska funktionen används för att testa för booleska värden och utvärderas till sant om det booleska värdet är falskt och falskt om det booleska värdet är sant.
  • NOT NULL-satsen används för att eliminera NULL-värden från en resultatuppsättning
  • Att utföra aritmetiska operationer på NULL-värden returnerar alltid NULL-resultat.
  • Jämförelsesoperatorerna som [, =, etc.] kan inte användas för att jämföra NULL-värden.