MySql教程
MySql用户管理
MySQL数据库
MySql表格和视图
MySQL查询
MySQL索引
MySQL子句
MySQL授权
MySql控制流
MySQL条件
MySQL连接
MySQL键
MySQL触发器
MySQL聚合函数
MySQL常用
MySQL正则表达式
MySql差异性

MySQL 主键

MySQL主键是字段的单个或组合,用于唯一地标识表中的每个记录。如果该列包含主键约束,则它不能为 null或为空。一个表可能具有重复的列,但是它只能包含一个主键。它总是在列中包含唯一值。
当您在表中插入新行时,主键列也可以使用 AUTO_INCREMENT 属性为其生成序列号。自动排行。在表中定义主键后, MySQL 会自动创建一个名为" Primary "的索引。由于它具有关联的索引,因此可以说主键可以提高查询性能。

主键规则

以下是主键的规则密钥:
主键列的值必须唯一。 每个表只能包含一个主键。 主键列不能为null或为空。 MySQL不允许我们使用现有的主键插入新行。 建议对主键列使用INT或BIGINT数据类型。
我们可以通过两种方式创建主键:
CREATE TABLE语句 ALTER TABLE语句
让我们详细讨论每个。

使用CREATE TABLE语句的主键

在本节中,我们将了解如何使用 CREATE TABLE 语句创建主键。
语法
以下是在MySQL中创建主键的语法。
如果我们只想在表中创建一个主键列,请使用以下语法:
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_name 它是主键的名称。
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@lidihuo.com'), 
(2, 'Joseph', 35435479495, 'Joseph@lidihuo.com');
mysql> INSERT INTO Login(login_id, username, password, email) 
VALUES (1,'Peter', 15343434532, 'peter@lidihuo.com');
输出
在以下输出中,我们可以看到第一个插入查询成功执行。当第二个insert语句失败并给出错误消息时: 主键列的条目重复。
MySQL Primary键
如果要在 多列上定义主键,请使用以下查询:
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主键

使用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主键
如果表需要将主键添加到已在该列中包含数据的表中,则必须确保该列不包含重复项或空值。

DROP Primary Key

ALTER TABLE语句还允许我们从表中删除主键。以下语法用于删除主键:
ALTER TABLE table_name  DROP PRIMARY KEY;
示例
mysql> ALTER TABLE Login DROP PRIMARY KEY;

主键与唯一键

下面的比较表解释了两者之间的一些共同区别:
主键 唯一键
它是字段的单个或组合,用于唯一标识表中的每个记录。 它还可以在没有主键的情况下唯一确定表的每一行。
不允许将NULL值存储到主键列中。 它只能在唯一键列中接受一个NULL值。
一个表只能有一个主键。 一个表可以有多个唯一键。
它将创建聚簇索引。 它将创建一个非聚集索引。

昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4