MySQL È NULL E NON È NULL Tutorial con ESEMPI

In SQL Null è sia un valore che una parola chiave. Esaminiamo prima il valore NULL:

MySQL È NULLO E NON È NULLO

Nullo come valore

In termini semplici, NULL è semplicemente un segnaposto per dati che non esistono. Quando si eseguono operazioni di inserimento sulle tabelle, ci saranno momenti in cui alcuni valori di campo non saranno disponibili.

Per soddisfare i requisiti dei veri sistemi di gestione di database relazionali, MySQL utilizza NULL come segnaposto per i valori che non sono stati inviati. Lo screenshot seguente mostra come appaiono i valori NULL nel database.

Nullo come valore

Diamo ora un'occhiata ad alcune nozioni di base su NULL prima di approfondire la discussione.

  • NULL non è un tipo di dati – ciò significa che non è riconosciuto come “int”, “date” o qualsiasi altro tipo di dati definito.
  • Operazioni aritmetiche coinvolgendo NULL sempre restituisce NULL ad esempio, 69 + NULL = NULL.
  • Tutto funzioni aggregate influenza solo le righe che non hanno valori NULL.

Dimostriamo ora come la funzione count tratta i valori null. Vediamo il contenuto attuale della tabella dei membri-

SELECT * FROM `members`;

L'esecuzione dello script soprastante ci fornisce i seguenti risultati

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

Contiamo tutti i membri che hanno aggiornato il loro contact_number

SELECT COUNT(contact_number)  FROM `members`;

L'esecuzione della query di cui sopra fornisce i seguenti risultati.

COUNT(contact_number)
7

Nota: i valori NULL non sono stati inclusi

Cosa non è?

L'operatore logico NOT viene utilizzato per verificare le condizioni booleane e restituisce vero se la condizione è falsa. L'operatore NOT restituisce false se la condizione testata è vera

Condizione NON Operarisultato
I veri Falso
Falso I veri

Perché usare NOT null?

Ci saranno casi in cui dovremo eseguire calcoli su un set di risultati di query e restituire i valori. L'esecuzione di qualsiasi operazione aritmetica su colonne con valore NULL restituisce risultati nulli. Per evitare che tali situazioni si verifichino, possiamo utilizzare la clausola NOT NULL per limitare i risultati su cui operano i nostri dati.

Valori NON NULL

Supponiamo di voler creare una tabella con determinati campi a cui dovrebbero essere sempre forniti dei valori quando si inseriscono nuove righe in una tabella. Possiamo utilizzare la clausola NOT NULL su un dato campo durante la creazione della tabella.

L'esempio mostrato di seguito crea una nuova tabella che contiene i dati del dipendente. Il numero del dipendente deve essere sempre fornito

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

Proviamo ora a inserire un nuovo record senza specificare il nome del dipendente e vediamo cosa succede.

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

Eseguendo lo script precedente in MySQL workbench restituisce il seguente errore:

Valori NON NULL

Parole chiave NULL

NULL può essere utilizzato anche come parola chiave quando si eseguono operazioni booleane su valori che includono NULL. La parola chiave "IS/NOT" viene utilizzata insieme alla parola NULL per tali scopi. La sintassi di base quando viene utilizzato null come parola chiave è la seguente

`comlumn_name'  IS NULL
`comlumn_name' NOT NULL

QUI

  • "È ZERO è la parola chiave che esegue il confronto booleano. Restituisce true se il valore fornito è NULL e false se il valore fornito non è NULL.
  • "NON NULLO"è la parola chiave che esegue il confronto booleano. Restituisce true se il valore fornito non è NULL e false se il valore fornito è null.

Vediamo ora un esempio pratico che utilizza la parola chiave NOT NULL per eliminare tutti i valori di colonna che hanno valori null.

Continuando con l'esempio precedente, supponiamo di aver bisogno dei dettagli dei membri il cui numero di contatto non è nullo. Possiamo eseguire una query come

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

L'esecuzione della query precedente fornisce solo i record in cui il numero di contatto non è nullo.

Supponiamo di volere record di membri in cui il numero di contatto è nullo. Possiamo usare la seguente query

SELECT * FROM `members` WHERE contact_number IS NULL;

L'esecuzione della query di cui sopra fornisce i dettagli del membro il cui numero di contatto è 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

Confronto di valori nulli

Logica a tre valori – l'esecuzione di operazioni booleane su condizioni che coinvolgono NULL può restituire “Sconosciuto”, “Vero” o “Falso”.

Per esempio, utilizzando la parola chiave "IS NULL". quando si eseguono operazioni di confronto che coinvolgono NULL può tornare vero or falso. L'utilizzo di altri operatori di confronto restituisce “Sconosciuto”(NULL).

Supponiamo di confrontare il numero cinque con 5

SELECT 5 =5;

Il risultato della query è 1 che significa VERO

5 =5
1

Facciamo la stessa operazione con NULL

SELECT NULL = NULL;
NULL = NULL
NULL

Diamo un'occhiata a un altro esempio

SELECT 5 > 5;
5 > 5
0

Il risultato della query è 0 che significa FALSO

Diamo un'occhiata allo stesso esempio usando NULL

SELECT NULL > NULL;
NULL > NULL
NULL

Usiamo la parola chiave IS NULL

SELECT 5 IS NULL;
5 IS NULL
0

Il risultato della query è 0 che è FALSO

SELECT NULL IS NULL;

NULL IS NULL
1

Il risultato della query è 1 che è VERO

Sommario

  • NULL è un segnaposto di valore per i campi della tabella facoltativi.
  • MySQL tratta il valore NULL in modo diverso dagli altri tipi di dati. I valori NULL quando utilizzati in una condizione restituiscono il falso valore booleano.
  • L'operazione logica NOT viene utilizzata per verificare i valori booleani e restituisce vero se il valore booleano è falso e falso se il valore booleano è vero.
  • La clausola NOT NULL viene utilizzata per eliminare i valori NULL da un set di risultati
  • L'esecuzione di operazioni aritmetiche su valori NULL restituisce sempre risultati NULL.
  • Gli operatori di confronto come [, =, ecc.] non possono essere utilizzati per confrontare valori NULL.