Vincoli SQL: definizione e utilizzo

I vincoli SQL (Constraint in inglese) sono regole che definiscono il tipo di dati che possono essere inseriti in una tabella. In altre parole, i vincoli limitano la quantità e il tipo di dati che possono essere inseriti in una determinata colonna o tabella.

Ciò garantisce l’accuratezza e l’affidabilità dei dati all’interno del database. Quando si tenta di inserire un valore che viola una regola di vincolo, l’azione viene interrotta e viene restituito un errore.

I vincoli messi a disposizione da SQL sono:

  • NOT NULL → Assicura che una colonna non abbia valori null.
  • UNIQUE → Assicura che tutti i valori di una colonna siano diversi.
  • PRIMARY KEY → Una combinazione di NOT NULL e UNIQUE. Identifica in modo univoco ogni riga in una tabella.
  • FOREIGN KEY → Impedisce le azioni che distruggerebbero i collegamenti tra le tabelle.
  • CHECK → Garantisce / controlla che i valori in una colonna soddisfino una condizione specifica.
  • DEFAULT → Imposta un valore predefinito per una colonna se non viene specificato alcun valore.

Ecco un esempio di due tabelle generate utilizzando diversi di questi vincoli:

CREATE TABLE prodotti (
  id INT PRIMARY KEY,
  nome VARCHAR(50) NOT NULL,
  prezzo DECIMAL(8,2) NOT NULL CHECK (prezzo > 0),
  categoria VARCHAR(20) NOT NULL CHECK (categoria IN ('elettronica', 'abbigliamento', 'casa')),
  disponibilita INT NOT NULL CHECK (disponibilita >= 0),
  UNIQUE (id)
);

CREATE TABLE ordini (
  id INT PRIMARY KEY,
  data_ordine DATE NOT NULL,
  totale DECIMAL(8,2) NOT NULL CHECK (totale > 0),
  prodotto_id INT NOT NULL,
  FOREIGN KEY (prodotto_id) REFERENCES prodotti(id),
  CHECK (data_ordine <= CURRENT_DATE)
);

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *