Maison > base de données > tutoriel mysql > Comment ajouter une clé primaire dans MySQL ?

Comment ajouter une clé primaire dans MySQL ?

青灯夜游
Libérer: 2019-05-08 10:14:25
original
42250 Les gens l'ont consulté

Le nom complet de « PRIMARY KEY » est « contrainte de clé primaire ». Une contrainte de clé primaire MySQL est une colonne ou une combinaison de colonnes dont la valeur identifie de manière unique chaque ligne d'une table. Une ou plusieurs colonnes de ce type sont appelées clé primaire de la table, par laquelle l'intégrité de l'entité de la table est renforcée. Alors, comment ajouter des contraintes de clé primaire dans MySQL ? L’article suivant vous le présentera.

Comment ajouter une clé primaire dans MySQL ?

La contrainte de clé primaire définit une clé primaire dans la table pour déterminer de manière unique l'identifiant de chaque ligne de données dans la table. La clé primaire peut être une certaine colonne du tableau ou une combinaison de plusieurs colonnes. Une clé primaire composée de plusieurs colonnes est appelée clé primaire composite. Les clés primaires doivent respecter les règles suivantes :

● Chaque table ne peut définir qu'une seule clé primaire.

● La valeur de la clé primaire doit identifier de manière unique chaque ligne de la table et ne peut pas être NULL, c'est-à-dire qu'il ne peut pas y avoir deux lignes de données dans la table avec la même valeur de clé primaire. C'est le principe d'unicité.

● Un nom de colonne ne peut apparaître qu'une seule fois dans la liste de clés primaires composites.

● La clé primaire composite ne peut pas contenir de colonnes redondantes inutiles. Lorsqu'une colonne de la clé primaire composite est supprimée, si la clé primaire composée des colonnes restantes satisfait toujours au principe d'unicité, alors la clé primaire composite est incorrecte. C'est le principe de minimisation.

1. Ajoutez des contraintes de clé primaire lors de la création de la table

Dans l'instruction CREATE TABLE, la clé primaire est spécifiée via le mot-clé PRIMARY KEY.

Spécifiez la clé primaire lors de la définition de la colonne. Les règles de syntaxe sont les suivantes :

<字段名> <数据类型> PRIMARY KEY [默认值]
Copier après la connexion

Exemple : Créez la table de données tb_emp 1 dans la base de données test_db, et sa clé primaire est id

mysql> CREATE TABLE tb_emp1
    -> (
    -> id INT(11) PRIMARY KEY,
    -> name VARCHAR(25),
    -> deptId INT(11),
    -> salary FLOAT
    -> );
Query OK, 0 rows affected (0.37 sec)
mysql> DESC tb_emp1;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| name   | varchar(25) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.14 sec)
Copier après la connexion

Dans la définition Une fois toutes les colonnes renseignées, le format de syntaxe pour spécifier la clé primaire est :

[CONSTRAINT <约束名>] PRIMARY KEY [字段名]
Copier après la connexion

Exemple : Créez la table de données tb_emp 2 dans la base de données test_db, et sa table de données primaire la clé est id

mysql> CREATE TABLE tb_emp2
    -> (
    -> id INT(11),
    -> name VARCHAR(25),
    -> deptId INT(11),
    -> salary FLOAT,
    -> PRIMARY KEY(id)
    -> );
Query OK, 0 rows affected (0.37 sec)
mysql> DESC tb_emp2;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| name   | varchar(25) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.14 sec)
Copier après la connexion

2, Ajouter des contraintes de clé primaire après avoir créé la table

Après avoir créé la table, vous pouvez ajouter des contraintes de clé primaire lors de la modification de la table de données. les règles de syntaxe sont :

ALTER TABLE <数据表名> ADD PRIMARY KEY(<列名>);
Copier après la connexion

Exemple : Modifier la table de données tb_emp3 et changer les champs id est défini comme clé primaire

mysql> ALTER TABLE tb_emp3
    -> ADD PRIMARY KEY(id);
Query OK, 0 rows affected (0.94 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC tb_emp3;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| name   | varchar(30) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.12 sec)
Copier après la connexion

3 Définir la clé primaire composite <. 🎜>

Vous pouvez également ajouter une clé primaire composite lors de la création de la table. A ce moment, la clé primaire est composée de plusieurs champs. Règles de grammaire Comme suit :

PRIMARY KEY [字段1,字段2,…,字段n]
Copier après la connexion

Exemple : Créer la table de données tb_emp4. . Supposons qu'il n'y ait pas d'identifiant de clé primaire dans le tableau Afin d'identifier de manière unique un employé, vous pouvez combiner le nom et le deptId comme clé primaire

mysql> CREATE TABLE tb_emp4
    -> (
    -> name VARCHAR(25),
    -> deptId INT(11),
    -> salary FLOAT,
    -> PRIMARY KEY(id,deptId)
    -> );
Query OK, 0 rows affected (0.37 sec)
mysql> DESC tb_emp4;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| name   | varchar(25) | NO   | PRI | NULL    |       |
| deptId | int(11)     | NO   | PRI | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.14 sec)
Copier après la connexion
.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal