目录
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_id
和 product_id
列的组合被定义为复合主键,这意味着每个订单和产品组合必须是唯一的。
3. 在已存在的表中添加 PRIMARY KEY
约束
如果表已经存在,并且希望为某列或列组合添加 PRIMARY KEY
约束,可以使用 ALTER TABLE
语句:
ALTER TABLE employees
ADD PRIMARY KEY (employee_id);
这个语句为 employees
表中的 employee_id
列添加了主键约束。
PRIMARY KEY 约束的使用场景
- 唯一标识每条记录:
- 主键用于唯一标识表中的每一行数据,是表中每条记录的标识符。通常用于提供一种可靠的方法来区分每条记录。
- 关联其他表:
- 主键通常与外键一起使用,外键引用主键来建立表之间的关系。例如,
orders
表中的order_id
列可能会作为外键出现在order_details
表中。
- 主键通常与外键一起使用,外键引用主键来建立表之间的关系。例如,
- 数据完整性和一致性:
- 使用主键约束可以保证数据的完整性和一致性。主键确保每条记录是唯一的,避免了重复的数据,并确保每条记录都有有效的标识符。
PRIMARY KEY 约束的注意事项
- 唯一性与非空性:
- 主键列的值必须唯一,并且不能为
NULL
。如果某列被定义为主键,则该列的每个值必须与其他行中的值不同,且每行的值不能为空。
- 主键列的值必须唯一,并且不能为
- 只能有一个主键:
- 在一个表中,只能有一个主键。如果需要确保多个列的唯一性,可以通过复合主键来组合多个列,但仍然只能有一个主键。
- 影响性能:
- 主键自动为该列或列组合创建索引,这对于查询性能非常有帮助。然而,创建和维护主键索引会带来一定的性能开销,尤其是在插入、更新和删除操作时。
- 主键和外键的关系:
- 主键用于在表中唯一标识记录,而外键用于在不同表之间建立关系。外键列通常引用主键列,确保数据的一致性和完整性。
- 修改主键约束:
- 一旦为列定义了主键约束,通常不能直接修改或删除该约束。如果需要更改主键列,通常需要删除现有主键并重新定义新的主键。
发表回复