Gestire correttamente i valori NULL durante le operazioni sui database SQL è fondamentale. NULL indica che un dato è assente, sconosciuto o non applicabile. In questo articolo, spiegheremo come aggiornare e inserire valori NULL in SQL, evidenziando i passaggi specifici, i punti da tenere a mente e le insidie comuni.
Concetto di base di NULL
In SQL, NULL rappresenta l’assenza o l’incertezza di un dato. A differenza di altri tipi di dati, NULL indica uno stato di “assenza di valore”. Ad esempio, se una colonna in una tabella non contiene dati, il valore di quella colonna sarà NULL. NULL richiede un trattamento speciale ed è importante considerare come viene gestito negli operatori di confronto e nelle funzioni.
Come inserire valori NULL
L’inserimento di valori NULL in un database utilizzando l’istruzione INSERT è molto semplice. Basta specificare NULL per la colonna desiderata. Di seguito è riportato un esempio.
Istruzione INSERT di base
Nell’esempio seguente, inseriamo un nuovo record nella tabella employees
, assegnando NULL alla colonna middle_name
.
INSERT INTO employees (first_name, last_name, middle_name)
VALUES ('John', 'Doe', NULL);
Inserire NULL in colonne specifiche
È anche possibile inserire valori in alcune colonne lasciando NULL le altre.
INSERT INTO employees (first_name, last_name)
VALUES ('Jane', 'Smith');
In questo caso, la colonna middle_name
riceverà automaticamente il valore NULL.
Come aggiornare i valori NULL
Di seguito spiegheremo come aggiornare i dati esistenti assegnando valori NULL utilizzando l’istruzione UPDATE. Per aggiornare una colonna specifica di un record esistente a NULL, è sufficiente assegnare NULL nella clausola SET.
Istruzione UPDATE di base
Nell’esempio seguente, aggiorniamo la colonna middle_name
della tabella employees
a NULL.
UPDATE employees
SET middle_name = NULL
WHERE employee_id = 1;
Questa istruzione imposta il valore NULL nella colonna middle_name
del record con employee_id
uguale a 1.
Aggiornare più colonne a NULL
È possibile aggiornare più colonne a NULL contemporaneamente.
UPDATE employees
SET middle_name = NULL, last_name = NULL
WHERE employee_id = 2;
In questo caso, le colonne middle_name
e last_name
del record con employee_id
uguale a 2 vengono aggiornate a NULL.
Considerazioni sull’uso di NULL
Ci sono alcune importanti considerazioni da tenere a mente quando si lavora con i valori NULL. Ignorarle può portare a bug inaspettati o a incoerenze nei dati.
Confronto con NULL
Poiché NULL è un valore speciale, non può essere confrontato con i normali operatori di confronto (=, !=, ecc.). Per confrontare i valori NULL, si usano IS NULL
e IS NOT NULL
.
SELECT * FROM employees
WHERE middle_name IS NULL;
NULL nelle funzioni e nelle operazioni
Qualsiasi calcolo che coinvolge un valore NULL restituirà NULL. Ad esempio, NULL + 5
restituirà NULL. Per evitare questo, è possibile utilizzare la funzione COALESCE
per specificare un valore predefinito.
SELECT COALESCE(middle_name, 'N/A') AS middle_name
FROM employees;
Valori di default per NULL
Se una colonna non ha un valore predefinito, verrà assegnato NULL quando si inseriscono nuovi record. È possibile impostare un valore predefinito per evitare che venga assegnato NULL.
ALTER TABLE employees
ALTER COLUMN middle_name SET DEFAULT 'Unknown';
Come verificare i valori NULL
È possibile utilizzare l’istruzione SELECT per verificare i valori NULL all’interno di una tabella. Controllare efficacemente i valori NULL aiuta a mantenere la coerenza dei dati.
Verifica di base dei valori NULL
Per trovare i record che contengono NULL in una colonna specifica, si utilizza IS NULL
.
SELECT * FROM employees
WHERE middle_name IS NULL;
Questa query restituisce tutti i record in cui la colonna middle_name
è NULL.
Verifica di valori non NULL
Al contrario, per trovare i record in cui una colonna non contiene NULL, si utilizza IS NOT NULL
.
SELECT * FROM employees
WHERE middle_name IS NOT NULL;
Questa query restituisce tutti i record in cui la colonna middle_name
non è NULL.
Ricerca combinata con condizioni e valori NULL
È possibile combinare più condizioni per cercare dati che includano valori NULL.
SELECT * FROM employees
WHERE department_id = 3 AND middle_name IS NULL;
Questa query restituisce i record in cui department_id
è uguale a 3 e middle_name
è NULL.
Conclusione
Inserire e aggiornare valori NULL in SQL è un’operazione cruciale per la gestione dei database. NULL rappresenta uno stato di “assenza di valore” e può essere gestito facilmente tramite istruzioni INSERT e UPDATE. Tuttavia, è necessario prestare particolare attenzione quando si confrontano i valori NULL o si utilizzano nelle funzioni. Gestire correttamente i valori NULL consente di mantenere la coerenza e la qualità dei dati. Utilizzando i metodi descritti in questo articolo, sarà possibile eseguire operazioni SQL in modo più efficace.