Maison  >  Article  >  base de données  >  Qu’est-ce que la cardinalité dans MySQL ?

Qu’est-ce que la cardinalité dans MySQL ?

王林
王林avant
2023-09-08 18:49:02962parcourir

MySQL 中的基数是什么?

Dans MySQL, le terme cardinalité fait référence au caractère unique des valeurs de données qui peuvent être placées dans une colonne. Il s'agit d'un attribut qui affecte la capacité de rechercher, de regrouper et de trier les données.

La base peut être de deux types, comme suit -

  • Faible cardinalité - Toutes les valeurs de la colonne doivent être les mêmes.

  • Cardinalité élevée - Toutes les valeurs de la colonne doivent être uniques.

La notion de cardinalité élevée est utilisée si l'on impose des contraintes sur les colonnes pour limiter les valeurs en double.

Haute cardinalité

Ce qui suit est un exemple de cardinalité élevée, où toutes les valeurs d'une colonne doivent être uniques.

mysql> create table UniqueDemo1
   -> (
   -> id int,
   -> name varchar(100),
   ->UNIQUE(id,name)
   -> );
Query OK, 0 rows affected (0.81 sec

Insérez les enregistrements dans le tableau.

mysql> insert into UniqueDemo1 values(1,'John');
Query OK, 1 row affected (0.18 sec)

mysql> insert into UniqueDemo1 values(1,'John');
ERROR 1062 (23000): Duplicate entry '1-John' for key 'id'

Ci-dessus, lorsque nous insérons le même enregistrement dans le tableau, nous obtenons l'erreur.

Afficher tous les enregistrements.

mysql> select *from UniqueDemo1;

Ce qui suit est le résultat. Parce que, pour les valeurs en double, il affiche une erreur ; il n'y a donc désormais qu'un seul enregistrement dans le tableau, que nous avons ajouté plus tôt.

+------+------+
| id   | name |
+------+------+
|    1 | John |
+------+------+
1 row in set (0.00 sec)

Base basse

Exemple de faible cardinalité.

Créez des formulaires.

mysql> create table LowCardinality
   -> (
   -> id int,
   -> name varchar(100)
   -> );
Query OK, 0 rows affected (0.71 sec)

Insérez des enregistrements avec des valeurs en double.

mysql> insert into LowCardinality values(1,'John');
Query OK, 1 row affected (0.19 sec)

mysql> insert into LowCardinality values(1,'John');
Query OK, 1 row affected (0.14 sec)

Afficher tous les enregistrements.

mysql> select *from LowCardinality;

La sortie affiche des valeurs en double car nous n'avons pas inclus UNIQUE lors de la création de la table.

+------+------+
| id   | name |
+------+------+
|    1 | John |
|    1 | John |
+------+------+
2 rows in set (0.00 sec)

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer