I vincoli fanno parte della definizione di uno schema di database.
Un vincolo è solitamente associato a una tabella e viene creato con un CREATE CONSTRAINT
o CREATE ASSERTION
Istruzione SQL.
Definiscono determinate proprietà che i dati in un database devono rispettare. Possono essere applicati a una colonna, un'intera tabella, più di una tabella o un intero schema. Un sistema di database affidabile garantisce che i vincoli siano sempre validi (tranne eventualmente all'interno di una transazione, per i cosiddetti vincoli differiti).
I tipi comuni di vincoli sono:
- non nullo - ogni valore in una colonna non deve essere NULL
- unico - i valori nelle colonne specificate devono essere univoci per ogni riga di una tabella
- chiave primaria - i valori nelle colonne specificate devono essere univoci per ogni riga in una tabella e non essere NULL; normalmente ogni tabella in un database dovrebbe avere una chiave primaria:viene utilizzata per identificare i singoli record
- chiave straniera - i valori nelle colonne specificate devono fare riferimento a un record esistente in un'altra tabella (tramite la sua chiave primaria o qualche altro vincolo unico )
- controlla - viene specificata un'espressione, che deve restituire true per soddisfare il vincolo