目录

  1. PRIMARY KEY 约束简介
  2. PRIMARY KEY 约束的语法
  3. PRIMARY KEY 约束的使用场景
  4. PRIMARY KEY 约束的注意事项
  5. 参考资料

PRIMARY KEY 约束简介

PRIMARY KEY 约束是 SQL 中用于唯一标识表中每条记录的约束。主键的值必须唯一,并且不能为 NULL。每个表只能有一个主键。主键约束不仅确保了数据的唯一性,还为表中的记录提供了一个有效的标识符。

在数据库设计中,主键通常由一个或多个列组成,并且每个表通常都会有一个主键列(或列组合)来唯一标识每一行数据。


PRIMARY KEY 约束的语法

1. 创建表时定义 PRIMARY KEY 约束

在创建表时,可以通过 PRIMARY KEY 约束来为一个或多个列定义主键:

CREATE TABLE employees (
    employee_id INT PRIMARY KEY,
    first_name VARCHAR(50),
    last_name VARCHAR(50)
);

在这个例子中,employee_id 列被定义为主键,确保每个员工都有一个唯一的 ID,并且该列不能为 NULL

2. 创建复合主键(多个列组合)

如果主键由多个列组成,可以使用复合主键来定义。例如:

CREATE TABLE orders (
    order_id INT,
    product_id INT,
    quantity INT,
    PRIMARY KEY (order_id, product_id)
);

在这个例子中,order_idproduct_id 列的组合被定义为复合主键,这意味着每个订单和产品组合必须是唯一的。

3. 在已存在的表中添加 PRIMARY KEY 约束

如果表已经存在,并且希望为某列或列组合添加 PRIMARY KEY 约束,可以使用 ALTER TABLE 语句:

ALTER TABLE employees
ADD PRIMARY KEY (employee_id);

这个语句为 employees 表中的 employee_id 列添加了主键约束。


PRIMARY KEY 约束的使用场景

  1. 唯一标识每条记录
    • 主键用于唯一标识表中的每一行数据,是表中每条记录的标识符。通常用于提供一种可靠的方法来区分每条记录。
  2. 关联其他表
    • 主键通常与外键一起使用,外键引用主键来建立表之间的关系。例如,orders 表中的 order_id 列可能会作为外键出现在 order_details 表中。
  3. 数据完整性和一致性
    • 使用主键约束可以保证数据的完整性和一致性。主键确保每条记录是唯一的,避免了重复的数据,并确保每条记录都有有效的标识符。

PRIMARY KEY 约束的注意事项

  1. 唯一性与非空性
    • 主键列的值必须唯一,并且不能为 NULL。如果某列被定义为主键,则该列的每个值必须与其他行中的值不同,且每行的值不能为空。
  2. 只能有一个主键
    • 在一个表中,只能有一个主键。如果需要确保多个列的唯一性,可以通过复合主键来组合多个列,但仍然只能有一个主键。
  3. 影响性能
    • 主键自动为该列或列组合创建索引,这对于查询性能非常有帮助。然而,创建和维护主键索引会带来一定的性能开销,尤其是在插入、更新和删除操作时。
  4. 主键和外键的关系
    • 主键用于在表中唯一标识记录,而外键用于在不同表之间建立关系。外键列通常引用主键列,确保数据的一致性和完整性。
  5. 修改主键约束
    • 一旦为列定义了主键约束,通常不能直接修改或删除该约束。如果需要更改主键列,通常需要删除现有主键并重新定义新的主键。

参考资料