Maison >base de données >tutoriel mysql >Contraintes du serveur SQL

Contraintes du serveur SQL

一个新手
一个新手original
2017-10-18 10:02:531869parcourir

Le concept de contraintes : garantir que des valeurs valides sont saisies dans les colonnes et maintenir les relations entre les tables.


Contrainte de clé primaire

Fonction : clé primaire (contrainte de clé primaire), il ne peut y en avoir qu'une dans un table, Il ne peut pas y avoir de valeurs nulles ou de valeurs en double.

Définir des contraintes lors de la création d'une table : nom de champ type de données [longueur] clé primaire

Contraintes uniques
Fonction : unique (contrainte unique), précise que deux lignes d'une même colonne ne peuvent pas avoir la même valeur, et qu'une seule ligne peut avoir une valeur nulle.

Définir des contraintes lors de la création d'une table : Type de données du nom de champ unique

Contrainte par défaut

Fonction : Lors de l'exécution de l'instruction d'insertion, la valeur par défaut est automatiquement inséré dans l'emplacement de la contrainte Colonne

Définir les contraintes lors de la création d'une table : Nom du champ Type de données par défaut Valeur par défaut
Notes sur les contraintes par défaut
1. Une seule contrainte par défaut peut être définie pour chaque colonne.
2. Elle ne peut pas être utilisée pour les colonnes avec des attributs d'identité.
3. Si la valeur par défaut définie est plus longue que la longueur autorisée de son champ correspondant, la valeur par défaut saisie dans le tableau sera tronquée.
4. Pour les champs avec des contraintes par défaut, d'autres valeurs peuvent être insérées. Si elles ne sont pas insérées, la valeur par défaut sera la valeur d'enregistrement, et les contraintes par défaut créées ultérieurement n'auront aucun impact sur les
données existantes.

Vérifier la contrainte
Fonction : check (vérifier la contrainte), à ​​chaque fois que l'instruction Insert/update est exécutée, la contrainte doit vérifier la légalité des données.

Définir des contraintes lors de la création d'une table : vérification du type de données du nom du champ (condition)

Notes sur les contraintes de vérification
Plusieurs contraintes de vérification peuvent être définies dans une table, mais chaque champ ne peut être défini que. Possibilité de définir une contrainte de vérification.
2. Lors de l'exécution de l'instruction insert ou de l'instruction update, la contrainte check vérifiera les données.
3. Si vous ajoutez des contraintes à une table qui contient déjà des données, vous pouvez utiliser with nocheck pour éviter de vérifier les données précédentes

Contraintes de clé étrangère

Fonction. : Assurer la relation entre la clé primaire (dans la table principale) et la clé étrangère (dans la table auxiliaire).
Définissez les contraintes lors de la création d'une table : nom du champ, type de données, clé étrangère (nom du champ), références, nom de la table (nom du champ)
Remarque : le nombre de colonnes et le type de données spécifiés dans la clause de clé étrangère doivent être les mêmes que dans la clause references, le nombre de colonnes et les types de données correspondent. Et les champs de la table associés à
doivent être définis comme clés primaires

Modifier les contraintes
Ajouter des contraintes lors de la modification de la table

alter table 表名
add constraint 约束名 primary key(字段名) –-主键
add constraint 约束名 unique (字段名)    --唯一
add constraint 约束名 default(默认值) for 字段名 –默认
add constraint 约束名 check(条件) –检查
add constraint 约束名 foreign key(字段名) references 主键表(参照字段名)  --外键

Supprimer la contrainte
Syntaxe :

alter table 表名 drop 约束名

[Exemple] Supprimer la contrainte pk_xs de la table xs .

alter table xs drop constraint  pk_xs

Remarque :
1. Pour supprimer la colonne contrainte, vous devez d'abord supprimer la contrainte
2. Lorsqu'il y a une contrainte de clé étrangère, pour supprimer la clé primaire, vous devez d'abord supprimer la clé étrangère correspondante de

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn