热搜词: 

数据库中如何设置主键和外键

发布:呼延伯项


定义:
主键是表中唯一标识每行数据的列。 它强制执行唯一值约束,确保表中的每行具有不同的值。
设置方法:
在创建表时,使用 PRIMARY KEY 约束指定主键:
sql
CREATE TABLE table_name (
id INT NOT NULL PRIMARY KEY
);
外键
定义:
外键是一个列或一组列,它引用另一个表中的主键。 它强制执行引用完整性,确保外键值要么在引用表中存在,要么为 NULL。
设置方法:
在创建表时,使用 FOREIGN KEY 约束指定外键:
sql
CREATE TABLE child_table (
child_id INT NOT NULL PRIMARY KEY,
parent_id INT NOT NULL,
FOREIGN KEY (parent_id) REFERENCES parent_table (id)
);
设置主键和外键的注意事项:
主键的选择:主键字段应具有以下特性:唯一、不可更改和足够短。 常见的选择包括自增 ID、UUID 或业务标识符。
数据类型:主键和外键列必须具有相同的数据类型。
级联操作:在删除或更新引用表中的数据时,可以指定级联操作(例如 CASCADE 或 RESTRICT),以影响外键表中的数据。
性能优化:对于大型数据库,在主键和外键列上创建索引可以提高查询性能。
NULL 值:外键列可以接受 NULL 值,表示该行不引用任何其他行。
多个主键:某些数据库系统支持复合主键,其中多个列联合起来形成主键。
自引用外键:外键可以引用同一表的主键,称为自引用外键。
示例:
考虑以下示例,其中 orders 表包含每个订单的信息,而 products 表包含产品信息:
sql
CREATE TABLE orders (
order_id INT NOT NULL PRIMARY KEY,
product_id INT NOT NULL,
quantity INT NOT NULL,
FOREIGN KEY (product_id) REFERENCES products (product_id)
);
在此示例中:
order_id 是 orders 表的主键,确保每行表示一个唯一的订单。
product_id 是 orders 表的外键,它引用 products 表中的 product_id 主键。
此外键约束强制执行引用完整性,这意味着每个订单必须引用一个在 products 表中存在的有效产品。

以上就是关于数据库中如何设置主键和外键的全部内容,希望能够帮到您。

大家都在看

查看更多综合百科