迹忆客 专注技术分享

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

MySQL 中的多个主键

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

在本教程中,我们的目标是探索 MySQL 中表的多个主键的概念。很多时候,企业和组织必须将某些列分配为主键。

这个 primary 键有多种用途和理由来困扰它的设置。它本质上用于确保分配为主键的每个列条目都是唯一的。

如果已将多列指定为键,则这些值的组合应该是唯一的。请注意,primary 键不能在其列中拥有 Null 值。

如果我们在此列中推送或插入 Null 值,我们肯定会收到错误。有时,组织有必要摆脱这个键来插入多个相似的值或 null 值。

该表可以有多个键。这些附加键称为复合主键

准确地说,多个主键没有分配给列,但是可以在声明 primary 键时描述多个列。让我们了解此键的工作原理,并将多列分配给 primary 键。


在 MySQL 中使用 student_details_table 创建表

在开始之前,我们创建一个虚拟数据集来使用。在这里,我们创建了一个表 student_details_table 以及几行。

-- create the table student_details_table
CREATE TABLE student_details_table(
  stu_id int,
  stu_firstName varchar(255),
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id, stu_firstName)
);
-- insert rows to the table student_details_table
INSERT INTO student_details_table(stu_id,stu_firstName,stu_lastName) 
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

如我们所见,我们已经将 stu_idstu_firstName 设置为我们的表 student_details 的主键。这将确保此列中的值不能重复或 NULL

上面的查询创建了一个包含名字和姓氏的行的表。要查看数据中的条目,我们使用以下代码。

SELECT * FROM student_details;

上面提到的查询将给出以下输出。

stu_id	stu_firstName	stu_lastName
1	      Preet	        Sanghavi
2	      Rich	        John
3	      Veron	        Brow
4	      Geo	        Jos
5	      Hash	        Shah
6	      Sachin	    Parker
7	      David	        Miller

使用 DESCRIBE 语句显示 MySQL 中表的结构

现在让我们使用 DESCRIBE 语句,看看我们是否有多个列与主键关联。

DESCRIBE name_of_the_table;

在我们的例子中,我们需要编写以下查询来了解表 student_details_table 的详细信息。

DESCRIBE student_details_table;

该语句将帮助我们获取表的复杂详细信息,例如与每列关联的数据类型、不同列及其名称、与每列关联的键以及与表相关的任何额外信息。

Field				Type			Null	Key		Default		Extra
stu_id				int				NO		PRI	
stu_firstName		varchar(255)	NO		PRI	
stu_lastName		varchar(255)	YES			

上表显示字段 stu_idstu_firstName 被视为主键。

可能需要这样做,因为很多时候,企业需要维护记录,以便不存在某些列的重复组合。

例如,假设一家以产品为基础的公司每天需要限制客户订单和与客户相关的产品数量。

在这种情况下,他们可能需要设置两个主键作为客户 ID 和产品 ID,以匹配数据并执行任何必要的操作,而无需任何重复的组合。

因此,借助上面的查询,我们可以高效地为 MySQL 中的一个表设置多个主键。

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

本文地址:

相关文章

MySQL 中的减法运算

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

本教程将指导你如何在 MySQL 中模拟 MINUS 操作。它还通过不同的示例教你各种模拟 MINUS 操作的方法。

MySQL 中的安全模式

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

本教程帮助我们了解 MySQL 数据库中的安全模式。

MySQL 中的 MUL vs PRI vs UNI

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

本教程将指导你了解 MySQL 中 MUL、PRI 和 UNI 键之间的区别。它还强调了它们中的每一个的使用。

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便