NOT NULL in SQLIl vincolo NOT NULL in SQL è una regola fondamentale per garantire l'integrità dei dati all'interno di una tabella. Esso impedisce che una colonna specifica accetti valori NULL.
Un valore NULL in SQL rappresenta l'assenza di un dato, un valore mancante o sconosciuto. A volte, per determinate informazioni, è cruciale che un valore sia sempre presente.
NOT NULL?NOT NULL, ogni riga della tabella deve avere un valore effettivo per quella colonna.NULL?Se si tenta di inserire una nuova riga (record) in una tabella, o di aggiornare una riga esistente, fornendo un valore NULL (o omettendo il valore senza che ci sia un DEFAULT definito) per una colonna con il vincolo NOT NULL, il sistema di gestione del database (DBMS come SQLite, SQL Server, PostgreSQL, MySQL) restituirà un messaggio di errore e l'operazione di inserimento o aggiornamento fallirà.
Questo comportamento è cruciale perché protegge l'integrità dei dati secondo le regole definite per la tabella.
Vediamo come definire una colonna NOT NULL e cosa succede quando si cerca di violare questo vincolo.
NOT NULLSupponiamo di voler creare una tabella AnagraficaImpiegati dove l'ufficio di appartenenza (Ufficio) non può mai essere nullo.
SQL
CREATE TABLE AnagraficaImpiegati (
Matricola INTEGER,
Cognome TEXT,
Nome TEXT,
Ufficio TEXT NOT NULL -- Questa colonna non può contenere valori NULL
);
Matricola, Cognome, e Nome possono essere NULL (anche se in pratica potremmo volerli NOT NULL anch'essi, specialmente Matricola come PRIMARY KEY).Ufficio TEXT NOT NULL: Specifica che la colonna Ufficio deve contenere testo e non può essere NULL.NULL per UfficioOra, proviamo a inserire un nuovo impiegato senza specificare l'ufficio, o specificandolo esplicitamente come NULL.
SQL