Avant de comprendre la clé primaire, comprenez d'abord ce qu'est un mot-clé
Mot-clé : un champ unique dans le tableau, tel que le numéro d'identification d'une personne, le numéro d'étudiant. Il peut y avoir plusieurs mots-clés dans un tableau.
La clé primaire est une combinaison d'un ou plusieurs mots-clés. Des informations sur l'ensemble de la table peuvent être obtenues via la clé primaire. Elle est parfois également appelée clé primaire. En prenant le tableau des commandes comme exemple, vous pouvez obtenir le nom du destinataire de la commande, les informations sur le produit, le prix et d'autres informations connexes via le numéro de commande.
Remarque : Le mot-clé ne doit pas nécessairement être la clé primaire, la clé primaire doit être le mot-clé
Caractéristiques : La clé primaire ne peut pas être vide, est unique et ne peut pas être répétée. Une table n'a qu'une seule clé primaire ou aucune clé primaire et ne peut pas avoir plusieurs clés primaires.
Méthode 1 : Définir la clé primaire lors de la création de la table
-- 建立User表 CREATE TABLE User( User_id int NOT NULL, User_name VARCHAR(20), User_pwd VARCHAR(18), -- 在这里设置id为主键 PRIMARY KEY(User_id) )
CREATE TABLE Users( -- 也可以在字段中直接设置主键 User_id int NOT NULL PRIMARY KEY, User_name VARCHAR(20), User_pwd VARCHAR(18) )
Les deux méthodes ci-dessus peuvent créer la clé primaire et l'effet est le même.
Méthode 2 : Aucune clé primaire n'est définie lors de la création de la table, puis définissez la clé primaire dans la table
Créez d'abord une table sans définir la clé primaire
CREATE TABLE User( User_id int NOT NULL, User_name VARCHAR(20), User_pwd VARCHAR(18) )
Ensuite, définissez la clé primaire
Le principe est de créer une table Ajoutez PRIMARY KEY (User_id) au code lorsque
Identique au premier principe de la première méthode
ALTER TABLE user ADD PRIMARY KEY(User_id)
Le principe est d'ajouter PRIMARY KEY (User_id) au champ User_id
Identique au deuxième principe de la première méthode
ALTER TABLE users MODIFY User_id INT PRIMARY KEY;
Les clés étrangères sont également appelées mots-clés étrangers et représentent la connexion directe entre deux tables ? La clé étrangère d'une table doit être la clé primaire d'une autre table. La table avec la clé étrangère d'une autre relation comme clé primaire est appelée la table maître, et la table avec la clé étrangère est appelée la table esclave de la table maître. .
Par exemple, la table de commande contient deux clés étrangères : l'ID produit et l'ID utilisateur. L'ID produit est la clé primaire de la table d'informations sur le produit et l'ID utilisateur est la clé primaire de la table utilisateur.
Remarque : Il peut y avoir plusieurs ou aucune clé étrangère dans une table.
Méthode 1 : définir les contraintes de clé étrangère lors de la création d'une table
Prenons un exemple basé sur la définition de la clé primaire précédemment, nous avons créé une table utilisateur plus tôt, alors créons maintenant une table de commande.
CREATE TABLE dingdan( DDid INT PRIMARY KEY NOT NULL, User_id INT NOT null, DDname VARCHAR(20) NOT NULL, -- 设置约束关系,dingdan表中的User_id 与 user表中的User_id表示的是同一个数据 constraint fk FOREIGN KEY(User_id) REFERENCES user(User_id) )
Méthode 2 : aucune clé primaire n'est définie lors de la création de la table, puis définissez la clé primaire dans la table
alter table student add constraint stfk foreign key(stid) references teacher(tid)
Remarque : une fois les relations de clé primaire et étrangère établies, les données de la table principale ne peuvent pas être supprimées à volonté. Si les informations d'un utilisateur sont incluses dans les données de commande, une erreur se produira lors de la suppression des informations de l'utilisateur, les informations de l'utilisateur doivent donc être conservées.
Si une contrainte unique est définie sur un champ, alors le champ ne doit pas être écrit, ou s'il est écrit, il ne peut pas être répété.
Créez toujours une table utilisateur, cette fois il y a un champ email dans la table. L'e-mail défini ne peut pas être répété
CREATE TABLE User( User_id int NOT NULL, User_name VARCHAR(20), User_pwd VARCHAR(18), User_Email VARCHAR(40) UNIQUE )
signifie que ce champ ne peut pas être vide
Écrivez ensuite la contrainte unique ci-dessus, qui stipule que l'e-mail non seulement ne peut pas être répété mais ne peut pas non plus être vide
CREATE TABLE User( User_id int NOT NULL, User_name VARCHAR(20), User_pwd VARCHAR(18), User_Email VARCHAR(40) UNIQUE not null )
Cela signifie que si vous n'écrivez pas ce champ, une valeur vous sera attribuée par défaut. Continuez à écrire dans le tableau Utilisateur ci-dessus. Ajoutez un champ de genre ici. Je n'écris pas le sexe, la valeur par défaut est male
CREATE TABLE User( User_id int NOT NULL, User_name VARCHAR(20), User_pwd VARCHAR(18), User_gender enum('男','女') default '男' )
Auto-increment signifie incrément automatique, c'est-à-dire que si vous ne remplissez pas les données dans ce champ, le système le fera. ajouter automatiquement 1 en fonction des données précédentes
Généralement utilisé dans ID, le numéro
sera l'ID dans la table utilisateur. Définir sur incrémentation automatique
CREATE TABLE User( User_id int auto_increment, User_name VARCHAR(20), User_pwd VARCHAR(18), User_gender enum('男','女') default '男' )
Remarque : Si la première donnée n'est pas renseignée, une valeur sera donnée par défaut. Ainsi, même si l’ID est la clé primaire, vous n’avez pas besoin de renseigner les données
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!