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

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

MySQL ÄR NULL & ÄR INTE NULL

Null som värde

Enkelt uttryckt är NULL helt enkelt en platshållare för data som inte finns. När du utför infogningsoperationer på tabeller kommer det att vara tillfällen då vissa fältvärden inte kommer att vara tillgängliga.

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

Null som värde

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 – detta betyder att den inte känns igen som en "int", "datum" eller någon annan definierad datatyp.
  • Aritmetiska operationer involverar NULL alltid returnera NULL till exempel, 69 + NULL = NULL.
  • Alla aggregerade funktioner påverkar endast rader som inte har NULL-värden.

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

SELECT * FROM `members`;

Att köra skriptet ovan 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 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

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

SELECT COUNT(contact_number)  FROM `members`;

Att kö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 logiska operatorn NOT används för att testa för booleska villkor och returnerar sant om villkoret är falskt. NOT-operatorn returnerar falskt om villkoret som testats är sant

Skick INTE Operator Resultat
Sant Falsk
Falsk Sant

Varför använda NOT null?

Det kommer att finnas fall då vi måste utföra beräkningar på en frågeresultatuppsättning och returnera värdena. Om du utför alla aritmetiska operationer på kolumner som har NULL-värdet returneras null-resultat. För att undvika att sådana situationer inträffar kan vi använda användningen av NOT NULL-klausulen för att begränsa de resultat som våra data 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 du infogar nya rader i en tabell. Vi kan använda NOT NULL-satsen på ett givet fält när vi skapar tabellen.

Exemplet nedan skapar en ny tabell som innehåller anställdas data. Personalnumret 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 den anställdes namn och se vad som händer.

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

Exekvera skriptet ovan i MySQL arbetsbänk ger följande fel-

INTE NULL-värden

NULL Nyckelord

NULL kan också användas som nyckelord när man utför booleska operationer på värden som inkluderar NULL. Nyckelordet "IS/NOT" används tillsammans 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

  • "ÄR INGET är nyckelordet som utför den booleska jämförelsen. Det returnerar sant om det angivna värdet är NULL och false om det angivna värdet inte är NULL.
  • "INTE NULL"är nyckelordet som utför den booleska jämförelsen. Det returnerar sant om det angivna värdet inte är NULL och falskt 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.

Om vi ​​fortsätter med exemplet ovan, anta att vi behöver uppgifter om medlemmar vars kontaktnummer inte är null. 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 endast poster där kontaktnumret inte är null.

Anta att vi vill ha medlemsregister där kontaktnumret är null. 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 du medlemsuppgifter 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 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

Jämför null-värden

Trevärdeslogik – att utföra booleska operationer på villkor som involverar NULL kan antingen returnera "Okänd", "Sant" eller "False".

Till exempel, med nyckelordet "IS NULL". när man gör jämförelseoperationer involverar NULL kan antingen återvända sann or falsk. Att använda andra jämförelseoperatorer ger avkastning "Okänd" (NULL).

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

SELECT 5 =5;

Frågeresultatet är 1 vilket betyder TRUE

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 FALSK

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 FALSK

SELECT NULL IS NULL;

NULL IS NULL
1

Frågeresultatet är 1 vilket är TRUE

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 villkor utvärderas till det falska booleska värdet.
  • Den logiska NOT-operationen 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örelseoperatorerna som [, =, etc.] kan inte användas för att jämföra NULL-värden.

Dagligt Guru99-nyhetsbrev

Kickstarta dagen med de senaste och viktigaste AI-nyheterna som levereras just nu.