mysql 主键,唯一标识表中每条记录的字段或字段组合

首页 2025-09-15 14:20:35


在 MySQL 中,主键(Primary Key)是用于唯一标识表中每条记录的字段或字段组合,它具有以下特点和作用:

主键的特点

  1. 唯一性:主键的值在表中必须是唯一的,不能有重复值
  2. 非空性:主键字段不能包含 NULL 值
  3. 最小性:尽量选择单个字段作为主键,而非多个字段的组合
  4. 稳定性:主键的值应很少变动或永不改变

主键的作用

  • 唯一标识表中的每条记录,便于快速查找
  • 作为表之间关联(外键)的基础
  • 自动创建索引,提高查询性能

主键的创建方式

  1. 创建表时定义主键(单个字段):

sql
CREATE TABLE students (
    id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(50),
    age INT,
    PRIMARY KEY (id)
);
 

  1. 创建表时定义复合主键(多个字段组合):

sql
CREATE TABLE student_courses (
    student_id INT NOT NULL,
    course_id INT NOT NULL,
    score INT,
    PRIMARY KEY (student_id, course_id)
);
 

  1. 在已存在的表上添加主键

sql
ALTER TABLE students
ADD PRIMARY KEY (id);
 

  1. 删除主键

sql
ALTER TABLE students
DROP PRIMARY KEY;
 

注意事项

  • 一个表只能有一个主键
  • 通常使用自增整数(INT AUTO_INCREMENT)作为主键,便于管理和提高性能
  • 主键字段通常命名为 id 或表名 + _id(如 student_id
  • AUTO_INCREMENT 关键字会自动为新记录生成唯一的递增数值,非常适合作为主键

合理使用主键可以提高数据库的查询效率和数据完整性,是数据库设计中的重要环节。
MySQL连接就这么简单!本地远程、编程语言连接方法一网打尽
还在为MySQL日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道