Maison >base de données >tutoriel mysql >Quels sont les types de contraintes de base de données MySQL ?
Contraintes dans la base de données, comme son nom l'indique, limitent les données insérées dans la base de données. Le but de cette opération est de garantir la validité et l'intégrité des données. Cela améliore considérablement la qualité des données dans la base de données, économise de l'espace dans la base de données et du temps pour appeler les données. La contrainte
NOT NULL est une contrainte au niveau de la colonne qui spécifie qu'une colonne ne peut pas être nulle. Il ne peut être défini qu'à l'aide d'une syntaxe de contrainte au niveau des colonnes.
La valeur nulle en SQL n'est pas sensible à la casse et présente les caractéristiques suivantes : les valeurs de tous les types de données peuvent être nulles, y compris int, float, boolean, etc. La chaîne vide n’est pas égale à null et 0 n’est pas égal à null. Si vous souhaitez définir une contrainte non nulle pour une colonne spécifiée, ajoutez simplement "non nul" après la définition de la colonne. Par exemple, lors de la création d'une table :
create table t_test ( id int not null, name varchar(255) default 'xyz' not null, gender varchar(2) null );
Lorsque vous utilisez alter table pour modifier la table, ajoutez ou supprimez des contraintes non nulles, par exemple :
#增加非空约束alter table t_test modify gender varchar(2) not null;#取消非空约束alter table t_test modify gender varchar(2) null;#取消非空约束,并指定默认值alter table t_test modify name varchar(255) default 'abc' null;
2.UNIQUE : contrainte unique, spécifiant qu'une certaine colonne ou combinaison de les colonnes ne peuvent pas être répétées.
Dans la base de données, bien que la colonne de contrainte unique n'autorise pas les valeurs en double, plusieurs valeurs nulles peuvent apparaître, car null n'est pas égal à null. Plusieurs contraintes uniques peuvent être créées dans la même table, et les contraintes uniques peuvent également être composées de plusieurs colonnes. Lorsqu'une contrainte unique est créée pour une colonne, MySQL créera un index unique pour la colonne. Si la contrainte unique n'est pas nommée, la contrainte unique sera par défaut le nom de la colonne. Des contraintes uniques peuvent être établies à l'aide d'une syntaxe au niveau des colonnes ou d'une syntaxe au niveau des tables. Ce n'est que grâce à la syntaxe au niveau de la table que vous pouvez définir des contraintes combinées ou spécifier des noms de contraintes pour plusieurs colonnes.
Utilisez la syntaxe au niveau de la colonne pour créer des contraintes uniques, ajoutez simplement le mot-clé unique après la définition de la colonne :
#创建表时建立唯一约束,使用列级语法建立create table unique_test ( #建立非空约束,意味着id不能为null id int not null, #建立唯一约束,意味着多行数据的该列值不能相等 name varchar(255) unique );
Format de la syntaxe au niveau de la table pour créer des contraintes uniques : [nom de la contrainte] unique (nom de la colonne[, nom de la colonne, &hellip ;]), le format de syntaxe de contrainte au niveau de la table ci-dessus peut être placé dans l'instruction create table en parallèle avec la définition de la colonne, ou il peut être ajouté dans l'instruction alter table à l'aide du mot-clé add :
#创建表时,使用表级语法创建唯一约束create table uniques_test2 ( #为id建立非空约束,意味着id不能为null id int not null, name varchar(255), pass varchar(255), #使用表级语法为name建立唯一约束 unique (name), #使用表级语法为pass建立唯一约束,并指定约束名为test2_uk constraint test2_uk unique (pass) );#创建表时,使用表级语法建立组合列的唯一约束create table unique_test3 ( id int not null, name varchar(255), pass varchar(255), #指定name和pass两列组合不能重复 constraint test3_uk unique (name, pass) );#在修改表时,使用add关键字来增加唯一约束alter table unique_test3 add unique (id, name);#在修改表时,使用modify关键字,来为单列设置唯一约束alter table unique_test3 modify name varchar(100) unique;
Supprimer une contrainte unique dans MySQL :
alter table tableName drop index 约束名; 例句:#删除unique_test3表中的test3_uk唯一约束alter table unique_test3 drop index test3_uk;
3.PRIMARY KEY : Contrainte de clé primaire, spécifiant la valeur de cette colonne pour identifier de manière unique l'enregistrement.
Une "clé étrangère" est une contrainte qui précise qu'une ligne d'enregistrements est associée à un enregistrement de la table principale. Le but principal est de garantir l'intégrité référentielle.
5.CHECK (non supporté par MySQL) : Vérifiez les contraintes, spécifiez une expression booléenne, utilisée pour spécifier que la valeur de la colonne correspondante doit satisfaire l'expression.
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!