
在 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'
在上面,当我们将相同的记录插入表中时,我们会收到错误。
SmartB2B 是一款基于PHP、MySQL、Smarty的B2B行业电子商务网站管理系统,系统提供了供求模型、企业模型、产品模型、人才招聘模型、资讯模型等模块,适用于想在行业里取得领先地位的企业快速假设B2B网站,可以运行于Linux与Windows等多重服务器环境,安装方便,使用灵活。 系统使用当前流行的PHP语言开发,以MySQL为数据库,采用B/S架构,MVC模式开发。融入了模型化、模板
显示所有记录。
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)









