什麼是 MySQL 中的基數?


在 MySQL 中,“基數”一詞是指可放入列中的資料值的唯一性。這是一種影響搜尋、聚類和排序資料的屬性。

基數可以是以下兩種型別:

  • 低基數 - 一列的所有值都必須相同。

  • 高基數 - 一列的所有值都必須唯一。

如果我們對列施加約束以限制重複值,則使用高基數的概念。

高基數

以下是一個高基數的示例,其中一列的所有值都必須唯一。

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

向表中插入記錄。

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'

在上述示例中,當我們向表中插入相同記錄時遇到了錯誤。

顯示所有記錄。

mysql> select *from UniqueDemo1;

以下是輸出結果。由於對於重複值,它會顯示錯誤;因此,目前表中只有 1 條記錄,這是我們之前新增的。

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

低基數

低基數的示例。

建立表。

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

插入具有重複值的記錄。

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)

顯示所有記錄。

mysql> select *from LowCardinality;

由於我們在建立表格的時候沒有包含 UNIQUE,所以輸出顯示了重複值。

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

更新於: 2019 年 7 月 30 日

4K+ 觀點

開啟你的職業生涯

完成課程獲取認證

開始吧
廣告
© . All rights reserved.