MySQL È NULLO & NON È NULLO Tutorial con ESEMPI

Sommario:

Anonim

In SQL Null è sia un valore che una parola chiave. Diamo prima un'occhiata al valore NULL -

Null come valore

In termini semplici, NULL è semplicemente un segnaposto per dati che non esistono. Quando si eseguono operazioni di inserimento su 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 l'aspetto dei valori NULL nel database.

Diamo ora un'occhiata ad alcune delle basi per NULL prima di addentrarci nella discussione.

  • NULL non è un tipo di dati - questo significa che non è riconosciuto come "int", "date" o qualsiasi altro tipo di dati definito.
  • Le operazioni aritmetiche che coinvolgono NULL restituiscono sempre NULL, ad esempio 69 + NULL = NULL.
  • Tutte le funzioni aggregate influiscono solo sulle righe che non hanno valori NULL .

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

SELECT * FROM `members`;

L'esecuzione dello script precedente ci dà 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 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

Contiamo tutti i membri che hanno aggiornato il proprio contact_number

SELECT COUNT(contact_number) FROM `members`;

L'esecuzione della query precedente ci dà 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 true se la condizione è falsa. L'operatore NOT restituisce false se la condizione testata è vera

Condizione

NON Risultato operatore

Vero

Falso

Falso

Vero

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 che hanno il valore NULL restituisce risultati null. Al fine di evitare che tali situazioni si verifichino, possiamo impiegare l'uso della clausola NOT NULL per limitare i risultati su cui operano i nostri dati.

Valori NOT NULL

Supponiamo di voler creare una tabella con determinati campi che dovrebbero sempre essere forniti con valori quando si inseriscono nuove righe in una tabella. Possiamo usare 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');

L'esecuzione dello script precedente in MySQL workbench restituisce il seguente errore:

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 null viene utilizzato come parola chiave è la seguente

`comlumn_name' IS NULL`comlumn_name' NOT NULL

QUI

  • "IS NULL" è la parola chiave che esegue il confronto booleano. Restituisce true se il valore fornito è NULL e false se il valore fornito non è NULL.
  • "NOT NULL" è 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 i record dei 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 precedente 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 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

Confronto di valori nulli s

Logica a tre valori : l'esecuzione di operazioni booleane su condizioni che coinvolgono NULL può restituire "Unknown", "True" o "False".

Ad esempio, l' utilizzo della parola chiave "IS NULL" quando si eseguono operazioni di confronto che coinvolgono NULL può restituire true o false . L'utilizzo di altri operatori di confronto restituisce "Unknown" (NULL).

Supponi 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

Utilizziamo la parola chiave IS NULL

SELECT 5 IS NULL;
 
5 IS NULL
0

Il risultato della query è 0 che è FALSE

SELECT NULL IS NULL;
 
NULL IS NULL
1

Il risultato della query è 1 che è TRUE

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 vengono utilizzati in una condizione restituiscono il valore booleano falso.
  • L'operazione logica NOT viene utilizzata per verificare i valori booleani e restituisce true 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 sui valori NULL restituisce sempre risultati NULL.
  • Gli operatori di confronto come [, =, ecc.] Non possono essere utilizzati per confrontare i valori NULL.