SQL - Vincoli

I vincoli sono le regole applicate alle colonne di dati di una tabella. Vengono utilizzati per limitare il tipo di dati che possono essere inseriti in una tabella. Ciò garantisce l'accuratezza e l'affidabilità dei dati nel database.

I vincoli possono essere a livello di colonna o di tabella. I vincoli a livello di colonna vengono applicati solo a una colonna, mentre i vincoli a livello di tabella vengono applicati all'intera tabella.

Di seguito sono riportati alcuni dei vincoli più comunemente utilizzati disponibili in SQL. Questi vincoli sono già stati discussi nel capitolo SQL - Concetti di RDBMS , ma a questo punto vale la pena rivederli.

  • Vincolo NOT NULL - Assicura che una colonna non possa avere un valore NULL.

  • Vincolo DEFAULT : fornisce un valore predefinito per una colonna quando non ne viene specificato nessuno.

  • Vincolo UNICO : assicura che tutti i valori in una colonna siano diversi.

  • Chiave PRIMARIA : identifica in modo univoco ogni riga / record in una tabella di database.

  • Chiave FOREIGN : identifica in modo univoco una riga / record in una qualsiasi tabella di database specificata.

  • Vincolo CHECK - Il vincolo CHECK garantisce che tutti i valori in una colonna soddisfino determinate condizioni.

  • INDICE - Utilizzato per creare e recuperare i dati dal database molto rapidamente.

È possibile specificare vincoli quando viene creata una tabella con l'istruzione CREATE TABLE oppure è possibile utilizzare l'istruzione ALTER TABLE per creare vincoli anche dopo la creazione della tabella.

Eliminazione dei vincoli

Qualsiasi vincolo definito può essere eliminato utilizzando il comando ALTER TABLE con l'opzione DROP CONSTRAINT.

Ad esempio, per eliminare il vincolo di chiave primaria nella tabella EMPLOYEES, è possibile utilizzare il seguente comando.

ALTER TABLE EMPLOYEES DROP CONSTRAINT EMPLOYEES_PK;

Alcune implementazioni possono fornire scorciatoie per eliminare determinati vincoli. Ad esempio, per eliminare il vincolo di chiave primaria per una tabella in Oracle, è possibile utilizzare il seguente comando.

ALTER TABLE EMPLOYEES DROP PRIMARY KEY;

Alcune implementazioni consentono di disabilitare i vincoli. Invece di eliminare definitivamente un vincolo dal database, potresti voler disabilitare temporaneamente il vincolo e abilitarlo successivamente.

Vincoli di integrità

I vincoli di integrità vengono utilizzati per garantire l'accuratezza e la coerenza dei dati in un database relazionale. L'integrità dei dati viene gestita in un database relazionale attraverso il concetto di integrità referenziale.

Esistono molti tipi di vincoli di integrità che giocano un ruolo in Referential Integrity (RI). Questi vincoli includono Chiave primaria, Chiave esterna, Vincoli univoci e altri vincoli menzionati sopra.