I vincoli NOT NULL e UNIQUE

Introduzione ai database relazionali in SQL

Timo Grossenbacher

Data Journalist

Il vincolo NOT NULL

  • Vietano valori NULL in una certa colonna
  • Deve valere per lo stato attuale
  • Deve valere per ogni stato futuro
Introduzione ai database relazionali in SQL

Cosa significa NULL?

  • sconosciuto
  • non esiste
  • non applicabile
  • ...
Introduzione ai database relazionali in SQL

Cosa significa NULL? Un esempio

CREATE TABLE students (
 ssn integer not null,
 lastname varchar(64) not null,
 home_phone integer,
 office_phone integer
);
NULL != NULL
Introduzione ai database relazionali in SQL

Come aggiungere o rimuovere un vincolo NOT NULL

Quando crei una tabella...

CREATE TABLE students (
 ssn integer not null,
 lastname varchar(64) not null,
 home_phone integer,
 office_phone integer
);

Dopo aver creato la tabella...

ALTER TABLE students 
ALTER COLUMN home_phone 
SET NOT NULL;
ALTER TABLE students 
ALTER COLUMN ssn 
DROP NOT NULL;
Introduzione ai database relazionali in SQL

Il vincolo UNIQUE

  • Vietano valori duplicati in una colonna
  • Deve valere per lo stato attuale
  • Deve valere per ogni stato futuro

Introduzione ai database relazionali in SQL

Aggiungere vincoli UNIQUE

CREATE TABLE table_name (
 column_name UNIQUE
);
ALTER TABLE table_name
ADD CONSTRAINT some_name UNIQUE(column_name);
Introduzione ai database relazionali in SQL

Applichiamolo al database!

Introduzione ai database relazionali in SQL

Preparing Video For Download...