Guida Rapida Notion: Il Vincolo NOT NULL in SQL

Il 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.

Cosa Fa NOT NULL?

Cosa Succede se Si Tenta di Inserire 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.

Esempio Pratico

Vediamo come definire una colonna NOT NULL e cosa succede quando si cerca di violare questo vincolo.

1. Creazione della Tabella con NOT NULL

Supponiamo 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
);

2. Tentativo di Inserimento con Valore NULL per Ufficio

Ora, proviamo a inserire un nuovo impiegato senza specificare l'ufficio, o specificandolo esplicitamente come NULL.

SQL