MySQL中的主键和外键有什么区别?

MySQL中的主键(Primary Key)和外键(Foreign Key)都是用于约束表中的数据,但有以下主要区别:
主键:

  1. 每个表只能有一个主键。
  2. 主键的值必须是唯一的,不能重复。
  3. 主键用于快速检索表中的记录。
  4. 当没有指定主键时,MySQL会自动创建一个名为id的自增整数列作为主键。

例如:

CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT, 
    name VARCHAR(20)
);

外键:

  1. 一个表可以有多个外键。
  2. 外键值可以重复。
  3. 外键用于在两个表之间创建链接,保证数据的一致性和完整性。
  4. 一个表的外键指向另一个表的主键值。
    例如:
CREATE TABLE orders (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT,
    FOREIGN KEY (user_id) REFERENCES users(id)
);

orders表的user_id列作为外键,指向users表的主键id,这样能够保证orders表的user_id值必须是users表中存在的id值。