SQL - Valori NULL: Comprendere l'ignoto
Ciao a tutti, futuri maghi dei database! Oggi esploreremo un aspetto affascinante di SQL che spesso lascia i neofiti perplessi - i valori NULL. Non preoccupatevi se non avete mai scritto una riga di codice prima; vi guiderò attraverso questo concetto passo dopo passo, proprio come ho fatto per centinaia di studenti nel corso degli anni. Allora, prendete una tazza della vostra bevanda preferita e partiamo insieme in questa avventura SQL!
Cos'è un valore NULL?
Prima di addentrarci nei dettagli, capiremo cosa significa NULL in SQL. Immagina di compilare un modulo e di avere un campo che chiede il tuo nome middle. Ma cosa succede se non hai un nome middle? Non puoi scrivere "nessun nome middle" perché non è accurato - non stai dicendo che il tuo nome middle è "nessun nome middle". Semplicemente lo lasci vuoto. Quel vuoto, miei cari, è essenzialmente ciò che NULL rappresenta in SQL.
In SQL, NULL è un marcatore speciale utilizzato per indicare che un valore dati non esiste nel database. Non è zero, non è una stringa vuota, è l'assenza di qualsiasi valore. Pensa a esso come il modo di SQL per dire, "Non lo so" o "Questa informazione non è disponibile."
Creare una tabella senza valori NULL
Ora che abbiamo capito cosa è NULL, vediamo come possiamo creare una tabella che non permette valori NULL. Questo è particolarmente utile quando hai dati che devi assolutamente avere per ogni record.
Esempio 1: Creare una tabella Studenti
CREATE TABLE Students (
StudentID INT NOT NULL,
FirstName VARCHAR(50) NOT NULL,
LastName VARCHAR(50) NOT NULL,
Age INT NOT NULL,
Email VARCHAR(100)
);
In questo esempio, stiamo creando una tabella chiamata "Students". Ecco cosa succede:
-
StudentID
,FirstName
,LastName
eAge
sono dichiarati comeNOT NULL
. Questo significa che questi campi devono avere un valore; non possono essere lasciati vuoti. - Il campo
Email
non haNOT NULL
, il che significa che è accettabile se uno studente non fornisce un indirizzo email.
Utilizzando NOT NULL
, stiamo dicendo al nostro database, "Ehi, abbiamo assolutamente bisogno di queste informazioni per ogni studente. Nessuna scusa!"
Aggiornare valori NULL in una tabella
A volte, potresti trovarti con valori NULL nella tua tabella che vuoi aggiornare. Vediamo come possiamo farlo.
Esempio 2: Aggiornare indirizzi email NULL
Immagina di aver realizzato che abbiamo bisogno di indirizzi email per tutti i nostri studenti e vogliamo aggiornare quelli che sono attualmente NULL.
UPDATE Students
SET Email = '[email protected]'
WHERE Email IS NULL;
Questa query fa quanto segue:
- Esamina la tabella
Students
. - Per qualsiasi record dove
Email IS NULL
(ricorda, non possiamo usare= NULL
!), imposta l'email su '[email protected]'.
È come dire, "Per qualsiasi studente che non ci ha fornito un'email, usiamo questo indirizzo email di placeholder per ora."
Eliminare record con valori NULL
A volte, potresti voler rimuovere record che hanno valori NULL in alcuni campi. Vediamo come possiamo farlo.
Esempio 3: Eliminare studenti senza informazioni sull'età
DELETE FROM Students
WHERE Age IS NULL;
Questa query rimuoverà qualsiasi record di studente dove il campo Età è NULL. È come dire, "Se non sappiamo l'età di uno studente, rimuoviamo il loro record dal nostro database."
Sii cauto con operazioni come questa! Assicurati sempre di voler veramente eliminare questi record prima di eseguire una tale query.
Lavorare con NULL nelle clausole WHERE
Una cosa complicata riguardo ai valori NULL è che non puoi usarli con operatori di confronto normali. Vediamo come controllare correttamente i valori NULL nelle clausole WHERE.
Esempio 4: Trovare studenti con indirizzi email mancanti
SELECT FirstName, LastName
FROM Students
WHERE Email IS NULL;
Questa query ci darà una lista di tutti gli studenti che non hanno fornito un indirizzo email. Nota che usiamo IS NULL
invece di = NULL
. Questo è un errore comune che anche programmatori esperti fanno a volte!
NULL e funzioni aggregate
I valori NULL possono anche influenzare il funzionamento delle funzioni aggregate. Vediamo un esempio.
Esempio 5: Calcolare l'età media
SELECT AVG(Age) AS AverageAge
FROM Students;
Questa query calcola l'età media di tutti gli studenti. Ecco la parte interessante: i valori NULL sono completamente ignorati in questo calcolo. Quindi, se hai 10 studenti, ma solo 8 hanno l'età inserita, la media sarà calcolata basandosi su quei 8 valori.
Conclusione
Eccoci arrivati, ragazzi! Abbiamo esplorato il regno dei valori NULL in SQL. Abbiamo visto come creare tabelle che non permettono NULL, come aggiornare e eliminare record con valori NULL, e come lavorare con NULL nelle nostre query.
Ricorda, NULL non è zero, non è una stringa vuota, è l'assenza di un valore. È il modo di SQL per dire, "Non lo so." E ora sai come gestire queste situazioni "Non lo so" come un professionista!
Continua a esercitarti con questi concetti, e prima di sapere, navigherai nel mondo dei database con fiducia. Buona query!
Credits: Image by storyset