Les contraintes font partie d'une définition de schéma de base de données.
Une contrainte est généralement associée à une table et est créée avec un CREATE CONSTRAINT
ou CREATE ASSERTION
Instruction SQL.
Ils définissent certaines propriétés que les données d'une base de données doivent respecter. Ils peuvent s'appliquer à une colonne, à une table entière, à plusieurs tables ou à un schéma entier. Un système de base de données fiable garantit que les contraintes tiennent à tout moment (sauf éventuellement à l'intérieur d'une transaction, pour les contraintes dites différées).
Les types de contraintes courants sont :
- non nul - chaque valeur d'une colonne ne doit pas être NULL
- unique - la ou les valeurs des colonnes spécifiées doivent être uniques pour chaque ligne d'un tableau
- clé primaire - la ou les valeurs dans la ou les colonnes spécifiées doivent être uniques pour chaque ligne d'un tableau et ne pas être NULL; normalement, chaque table d'une base de données doit avoir une clé primaire - elle est utilisée pour identifier les enregistrements individuels
- clé étrangère - la ou les valeurs dans la ou les colonnes spécifiées doivent faire référence à un enregistrement existant dans une autre table (via sa clé primaire ou une autre contrainte unique )
- vérifier - une expression est spécifiée, qui doit être évaluée comme vraie pour que la contrainte soit satisfaite