Heim  >  Artikel  >  Datenbank  >  Was ist Kardinalität in MySQL?

Was ist Kardinalität in MySQL?

王林
王林nach vorne
2023-09-08 18:49:02974Durchsuche

MySQL 中的基数是什么?

In MySQL bezieht sich der Begriff Kardinalität auf die Einzigartigkeit von Datenwerten, die in eine Spalte eingefügt werden können. Es handelt sich um ein Attribut, das die Fähigkeit zum Suchen, Clustern und Sortieren von Daten beeinflusst.

Die Basis kann wie folgt aus zwei Arten bestehen -

  • Geringe Kardinalität – Alle Werte der Spalte müssen gleich sein.

  • Hohe Kardinalität – Alle Werte der Spalte müssen eindeutig sein.

Das Konzept der hohen Kardinalität wird verwendet, wenn wir Spalten Einschränkungen auferlegen, um doppelte Werte zu begrenzen.

Hohe Kardinalität

Das Folgende ist ein Beispiel für eine hohe Kardinalität, bei der alle Werte einer Spalte eindeutig sein müssen.

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

Datensätze in die Tabelle einfügen.

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'

Wenn wir oben denselben Datensatz in die Tabelle einfügen, erhalten wir die Fehlermeldung.

Alle Datensätze anzeigen.

mysql> select *from UniqueDemo1;

Das Folgende ist die Ausgabe. Da bei doppelten Werten ein Fehler angezeigt wird, gibt es jetzt nur noch einen Datensatz in der Tabelle, den wir zuvor hinzugefügt haben.

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

Niedrige Basis

Beispiel mit niedriger Kardinalität.

Formulare erstellen.

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

Fügen Sie Datensätze mit doppelten Werten ein.

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)

Alle Datensätze anzeigen.

mysql> select *from LowCardinality;

Die Ausgabe zeigt doppelte Werte, da wir beim Erstellen der Tabelle kein UNIQUE einbezogen haben.

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

Das obige ist der detaillierte Inhalt vonWas ist Kardinalität in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen