MySQL中的基数是什么?

在MySQL中,基数一词是指可以放入列中的数据值的唯一性。它是一种属性,会影响搜索,聚类和排序数据的能力。

基数可以分为以下两种类型-

  • 低基数-列的所有值必须相同。

  • 高基数-列的所有值必须唯一。

如果我们在列上施加约束以限制重复值,则使用高基数的概念。

高基数

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

mysql> create table UniqueDemo1
   -> (
   -> id int,
   -> name varchar(100),
   ->UNIQUE(id,name)
   -> );

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)
   -> );

插入具有重复值的记录。

mysql> insert into LowCardinality values(1,'John');

mysql> insert into LowCardinality values(1,'John');

显示所有记录。

mysql> select *from LowCardinality;

输出显示重复的值,因为创建表时未包含UNIQUE。

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