迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 数据库 > MySQL >

MySQL 中的 MUL vs PRI vs UNI

作者:迹忆客 最近更新:2024/03/25 浏览次数:

本教程将教授 MySQL 中的 PRIMULUNI 键。

通过在本教程中逐步进行,我们将了解 PRIMULUNI 键之间的基本区别以及如何使用它们。我们还将使用示例代码在表格中看到它们的效果。


MySQL 中的键

键是一个属性,有时是一组属性,用于唯一标识表中的一行。

MySQL 中使用各种键用于各种目的,包括主键、唯一键、复合键、外键、超级键、备用键和候选键。

我们将重点介绍本文的主键、唯一键和多键。

MySQL 中的 PRIUNIMUL

PRI 表示主键,强制表中记录的唯一性。它不允许 NULL 值。

单列或多列可以用作主键。UNI 键表示唯一键,强制表(关系)中的行(记录)的唯一性,如主键,并具有 NULL 值。

一列或多列可用于生成唯一键。

MUL 键不是它们,这意味着 MUL 键是一个既不是主键也不是唯一键的索引。它允许 NULL 值,并且与其名称 MUL 相同的值的多次出现源自多个。

如果你在同一列上应用了多个键,则会根据它们的优先级、PRIUNIMUL 显示这些键。

让我们借助以下示例代码来理解。

#create an employee table
CREATE TABLE employee(
    ID INT PRIMARY KEY NOT NULL, #this is PRI Key
    FIRST_NAME VARCHAR(60) NOT NULL, 
    LAST_NAME VARCHAR(60) NOT NULL,
    GENDER VARCHAR(60) NOT NULL, INDEX(GENDER), #this is MUL Key
    COUNTRY_CODE VARCHAR(30), INDEX(COUNTRY_CODE), #this is MUL Key
    CITIZEN_ID INT UNIQUE KEY #this is UNI Key
);

#insert some data
INSERT INTO employee(ID, FIRST_NAME, LAST_NAME,GENDER, COUNTRY_CODE,CITIZEN_ID)
VALUES
(1,'Thomas', 'Christopher','Male','+61',485),
(2,'Lisa', 'Mark', 'Female','+59',408),
(3,'Anthony', 'Richard', 'Male','+61',215),
(4,'Matthew', 'Charles', 'Male',NULL, 610),
(5,'Kiren', 'Donald','Female','+31', null);

#use the following query to describe table columns and their properties
desc employee;

输出:

请参阅上面的示例代码并观察输出以了解。需要注意的是,表中只能有一个 PRI 键,但可以有多个 UNIMUL 键。

在上面的输出中,我们在 ID 列上应用了一个 PRI 键,它不允许 NULL 值。这意味着,如果将一个 ID 分配给员工,则不会将同一 ID 分配给表中的任何其他人。

我们在 CITIZEN_ID 列上应用了一个 UNI 键;它强制唯一性并允许 NULL 值。我们可以在名为 GENDERCOUNTRY_CODE 的两个不同列上看到两个 MUL 键。

有必要认为 MUL 键在 GENDER 列不能具有 NULL 值但 COUNTRY_CODE 可以的两个列上都可以正常工作。这就是为什么我们说 MUL 既不是 PRI 也不是 UNI 键的原因。


结论

在上面的讨论中,我们得出结论,键是应用于列的属性,以在表中唯一地标识它们。

不同的键用于不同的要求。PRI 适用于你不想在列中重复值并且不允许 NULL 值的情况。

UNI 键关注列内的唯一性,但允许 NULL 值。MUL 既不是 PRI 也不是 UNI,并且可以接受 NULLNOT NULL 值。

只能有一个 PRI 键,但你可以有多个 UNIMUL 键,具体取决于项目要求。

上一篇:MySQL 中的 INTERSECT 运算符

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

MySQL 中的 If ELSE

发布时间:2024/03/25 浏览次数:65 分类:MySQL

本教程演示如何在 MySQL 中使用 IF ELSE 语句。

在 MYSQL 中的一个查询中执行多个连接

发布时间:2024/03/25 浏览次数:161 分类:MySQL

本教程展示了如何在 MySQL 中的一个查询中合并多个连接;无论是内部的还是外部的。我们还展示了定义连接条件的不同方法。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便