MySQL - 主键

MySQL - 主键 首页 / MySQL入门教程 / MySQL - 主键

MySQL主键是字段的单个或组合,用于唯一标识表中的每个记录。如果该列包含主键约束,则它不能为 null或为empty。一个表可能有重复的列,但只能包含一个主键。它始终将唯一值包含到列中。

在表中插入新行时,主键列还可以使用 AUTO_INCREMENT 属性自动为该行生成一个序列号。在表中定义主键后, MySQL 会自动创建一个名为" Primary"的索引。由于它具有关联的索引,因此可以说主键可以提高查询性能。

使用CREATE TABLE语句的主键

在本节中,无涯教程将了解如何使用 CREATE TABLE 语句创建主键。

以下是用于在MySQL中创建主键的语法。

链接:https://www.learnfk.comhttps://www.learnfk.com/mysql/mysql-primary-key.html

来源:LearnFk无涯教程网

CREATE TABLE table_name(
    col1 datatype PRIMARY KEY,
    col2 datatype,
    ...
);

如果无涯教程要在表中创建多个主键列,请使用以下语法:

CREATE TABLE table_name
(
  col1 col_definition,
  col2 col_definition,
  ...

  CONSTRAINT [constraint_name] 
   PRIMARY KEY (column_name(s))
);

下表详细说明了参数。

参数名称说明
Table_name这是要创建的表的名称。
Col1,col2表中包含的列名称。
Constraint_nme它是主键的名称。
Column_name(s)将要用作主键的是列名。

主键示例

以下示例说明了如何在MySQL中使用主键。该语句创建一个名为"Login"的表,该表的" login_id "列中包含主键:

Mysql> CREATE TABLE Login(
   login_id INT AUTO_INCREMENT PRIMARY KEY,
   username VARCHAR(40),
   password VARCHAR(55),
   email VARCHAR(55)
);

接下来,使用插入查询将数据存储到表中:

mysql> INSERT INTO Login(login_id, username, password, email) 
VALUES (1,'Stephen', 15343434532, 'stephen@learnfk.com'), 
(2, 'Joseph', 35435479495, 'Joseph@learnfk.com');

mysql> INSERT INTO Login(login_id, username, password, email) 
VALUES (1,'Peter', 15343434532, 'peter@learnfk.com');

在下面的输出中,无涯教程可以看到第一个插入查询成功执行。当第二个insert语句失败并给出错误消息时:主键列的重复。

MySQL Primary Key

如果要在多列上定义主键,请使用以下查询:

mysql> CREATE TABLE Students (
		Student_ID int, 
		Roll_No int,
		Name varchar(45) NOT NULL, 
		Age int, 
		City varchar(25),
		Primary Key(Student_ID, Roll_No)
	);

在输出中,无涯教程可以看到主键值包含两列,分别是 Student_ID Roll_No

MySQL Primary Key

使用ALTER TABLE语句的主键

该语句使可以对现有表进行修改。当表没有主键时,此语句用于将主键添加到现有表的列中。

以下是在MySQL中创建主键的ALTER TABLE语句的语法:

ALTER TABLE table_name ADD PRIMARY KEY(column_list);

以下语句创建一个表" Persons",该表在表定义中没有主键列。

mysql> CREATE TABLE Persons (
		Person_ID int NOT NULL, 
		Name varchar(45), 
		Age int, 
		City varchar(25)
	);

创建表之后,如果要向该表添加主键,则需要执行如下的ALTER TABLE语句:

mysql> ALTER TABLE Persons ADD PRIMARY KEY(Person_ID);

无涯教程可以看到两个语句成功执行的输出。

MySQL Primary Key

如果表需要将主键添加到已在该列中包含数据的表中,则必须确保该列不包含重复项或空值。

删除主键

ALTER TABLE语句还允许从表中删除主键。以下语法用于删除主键:

ALTER TABLE table_name  DROP PRIMARY KEY;

示例

mysql> ALTER TABLE Login DROP PRIMARY KEY;

主键与唯一键

下面的比较表解释了两者之间的一些共同点:

无涯教程网

SN主键唯一键
1它是字段的单个或组合,用于唯一标识表中的每个记录。它还可以在没有主键的情况下唯一确定表的每一行。
2不允许将NULL值存储到主键列中。它只能在唯一键列中接受一个NULL值。
3一个表只能有一个主键。一个表可以有多个唯一键。
4它将创建聚簇索引。它将创建一个非聚集索引。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

赵成的运维体系管理课 -〔赵成〕

玩转Git三剑客 -〔苏玲〕

编辑训练营 -〔总编室〕

Electron开发实战 -〔邓耀龙〕

.NET Core开发实战 -〔肖伟宇〕

架构实战案例解析 -〔王庆友〕

讲好故事 -〔涵柏〕

Kubernetes入门实战课 -〔罗剑锋〕

AI绘画核心技术与实战 -〔南柯〕

好记忆不如烂笔头。留下您的足迹吧 :)