MySQL之主键约束(PRIMARY KEY语句)

本文详细介绍了MySQL数据库中主键约束的概念,包括主键的作用、规则及如何在创建或修改表时设置主键约束,同时提供了设置单列主键、复合主键以及删除主键约束的SQL语法实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定义

MySQL 主键约束是一个列或者列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可以强制表的实体完整性。主键约束即在表中定义一个主键来唯一确定表中每一行数据的标识符。主键可以是表中的某一列或者多列的组合,其中由多列组合的主键称为复合主键。主键应该遵守下面的规则:

  • 每个表只能定义一个主键。
  • 主键值必须唯一标识表中的每一行,且不能为 NULL,即表中不可能存在两行数据有相同的主键值。这是唯一性原则。
  • 一个列名只能在复合主键列表中出现一次。
  • 复合主键不能包含不必要的多余列。当把复合主键的某一列删除后,如果剩下的列构成的主键仍然满足唯一性原则,那么这个复合主键是不正确的。这是最小化原则。

语法

  • 在创建表时设置主键约束<字段名> <数据类型> PRIMARY KEY;
    设置主键约束的第一种方式:<字段名> <数据类型> PRIMARY KEY;
mysql> CREATE TABLE student(
    id int primary key,
    name varchar(50)
);
Query OK, 0 rows affected (0.39 sec)

第二种方式:primary key(字段名)

mysql> CREATE TABLE people(
    id int,
    name varchar(50),
    primary key(id)
);
Query OK, 0 rows affected (0.26 sec)
  • 在创建表时设置联合主键
    主键由多个字段联合组成,语法规则如下:PRIMARY KEY [字段1,字段2,…,字段n]
    例子
mysql> CREATE TABLE girl(
    id int,
    name varchar(50),
    primary key(id,name)
);
Query OK, 0 rows affected (0.31 sec)
  • 在修改表时添加主键约束ALTER TABLE <数据表名> ADD PRIMARY KEY(<列名>);
mysql> ALTER TABLE girl  ADD  PRIMARY  KEY (password);
Query OK, 0 rows affected (0.46 sec)
Records: 0  Duplicates: 0  Warnings: 0

这里要注意的是,你在修改表时添加主键约束的时候,不要已经存在主键约束,那样会抛出错误1068 - Multiple primary key defined

  • 删除主键约束
ALTER TABLE 数据表名 DROP PRIMARY KEY
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值