Partage de technologie

Contraintes SQL

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Contraintes SQL

1. Description

Concept : Les contraintes sont des règles qui agissent sur les champs d'une table pour limiter les données stockées dans la table.

Objectif : Garantir l’exactitude, la validité et l’intégrité des données de la base de données.

contraintedécrireMots clés
contrainte non nulleRestreindre ce champ pour qu'il ne soit pas videnon nul
contrainte uniqueAssurez-vous que toutes les données de ce champ sont uniques et non dupliquéesunique
contraintes de clé primaireLa clé primaire est l'identifiant unique d'une ligne de données et doit être non vide et unique.clé primaire
Contraintes par défautLors de l'enregistrement des données, si la valeur du champ n'est pas spécifiée, la valeur par défaut est utiliséedéfaut
Vérifier les contraintes (après 8.0.16)S'assurer que le champ répond à une certaine conditionvérifier
contraintes de clé étrangèreUtilisé pour établir une connexion entre les données de deux tablesclé étrangère

2. Utilisation

Auto-incrémentation : auto_increment

MySQL

ALTER TABLE my_table MODIFY id INT AUTO_INCREMENT;
  • 1

Serveur SQL

-- 删除依赖于id列的约束
ALTER TABLE my_table DROP CONSTRAINT <constraint_name>;

-- 修改字段为自增
ALTER TABLE my_table ALTER COLUMN id INT IDENTITY(1,1);

-- 重新创建约束(如果有)
ALTER TABLE my_table ADD CONSTRAINT <constraint_name> PRIMARY KEY (id);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

Ajout de contraintes

-- 1、添加主键
ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY (主键字段名);
-- 例:ALTER TABLE Orders ADD CONSTRAINT FK_Orders_Customers FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID);
-- 2、添加外键
alter table 表名 add constraint 外键名 foreign key (外键字段名) references 主表(主字段名);
-- 删除外键
alter table 表名 drop foreign key 外键名;
-- 3、添加唯一约束
ALTER TABLE 表名 ADD CONSTRAINT 约束名 (需要约束的字段);
-- 4、添加默认约束
ALTER TABLE 表名 ADD CONSTRAINT 约束名 DEFAULT '默认值' FOR 字段名;
-- 5、检查约束
ALTER TABLE 表名 ADD CONSTRAINT 约束名 CHECK (Age >= 18 检查的条件);
-- 6、非空约束
ALTER TABLE 表名 ALTER COLUMN 字段名 varchar(255) NOT NULL;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

Le rôle des clés étrangères
Pour garantir l'intégrité des données, le champ de clé étrangère est appelé table enfant et la table associée est appelée table parent.
Comportement de suppression et de mise à jour

  • aucune action (par défaut) : Lors de la suppression/mise à jour de l'enregistrement correspondant dans la table parent, si l'enregistrement possède une clé étrangère,Il ne peut pas être mis à jour/supprimé.
  • cascade : Lors de la suppression/mise à jour de l'enregistrement correspondant dans la table parent, si l'enregistrement possède une clé étrangère,Supprimez/mettez ensuite à jour les enregistrements dans la sous-table.
  • set null : Lors de la suppression/mise à jour de l'enregistrement correspondant dans la table parent, si l'enregistrement possède une clé étrangère,Définissez ensuite la valeur de la clé étrangère dans la sous-table sur null.
  • définir par défaut : lorsque la table parent est modifiée, la colonne de clé étrangère créée dans la table enfant est définie sur une valeur par défaut (non prise en charge par InnoDB).
# 指定行为
alter table 表名 add constraint 外键名 foreign key (外键字段) references 主表(主字段名) on update cascade on delete cascade;
  • 1
  • 2