MySQL主键和外键

主键(Primary Key)

1. 定义:

主键是表中的一列或一组列,用于唯一标识表中的每一行数据。每个表只能有一个主键,并且主键的值不能重复。
主键列不能包含 NULL 值。

2. 特点:

唯一性:主键值在整个表中必须是唯一的。
非空性:主键列的值不能为 NULL。
一般用于标识表中的每一行数据。

3. 使用方式:

在创建表时,通过 PRIMARY KEY 关键字定义主键。

CREATE TABLE table_name (
    column1 datatype PRIMARY KEY,
    column2 datatype,
    ...
);

外键(Foreign Key):

1. 定义:

外键是一个表中的列,它与另一个表的主键列或唯一约束列形成引用关系。
外键用于建立表与表之间的关系,确保参照表中的数据在被引用表中存在。

2. 特点:

外键建立了两个表之间的关系,通常表示一对多的关系。
外键的值可以为 NULL,表示未引用任何行。

3. 使用方式:

在创建表时,通过 FOREIGN KEY 关键字定义外键。

CREATE TABLE table1 (
    column1 datatype PRIMARY KEY,
    column2 datatype,
    ...
);

CREATE TABLE table2 (
    column1 datatype,
    column2 datatype,
    FOREIGN KEY (column1) REFERENCES table1(column1)
);

主键和外键的关系:

主键和外键之间建立了关系,通常是一对多的关系。在外键的表中,外键列与主键列或唯一约束列形成引用关系。
外键的目的是确保引用表中的数据在被引用表中有对应的匹配值,维护了数据的完整性。

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

CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    employee_id INT,
    order_amount DECIMAL(10, 2),
    FOREIGN KEY (employee_id) REFERENCES employees(employee_id)
);

在这个例子中,employees 表的 employee_id 列是主键,而 orders 表的 employee_id 列是外键,它引用了 employees 表的主键,建立了两个表之间的关系。

你可能感兴趣的:(mysql,数据库)