主键
概念
主键是一种特殊的约束,用来保证一列(或一组列)中的值是唯一的,而且永不改动。表中的一列(或多个列)的值唯一标识表中的每一行。
特性
- 任意两行的主键值都不相同。
- 每行都具有一个主键值(即列中不允许NULL 值)。
- 包含主键值的列从不修改或更新。
- 主键值不能重用。如果从表中删除某一行,其主键值不分配给新行。
定义主键
- CREATE TABLE user(
uid INT PRIMARY KEY,
uname VARCHAR(10),
address VARCHAR(20)
)
给表的vend_id 列定义添加关键字PRIMARY KEY,使其成为主键。 - CREATE TABLE user(
uid INT,
uname VARCHAR(10),
address VARCHAR(20),
PRIMARY KEY(uid)
) - CREATE TABLE user(
uid INT,
uname VARCHAR(10),
address VARCHAR(20)
)
ALTER TABLE user ADD PRIMARY KEY(uid);
外键
概念
外键是表中的一列,其值必须列在另一表的主键中。
例如:在Orders 的顾客ID 列上定义了一个外键,因此该列只能接受Customers 表的主键值。
作用
- 外键是保证引用完整性的极其重要部分。
- 利用外键可以防止意外删除数据。例如,不能删除关联订单的顾客。删除该顾客的唯一方法是首先删除相关的订单(这表示还要删除相关的订单项)。由于需要一系列的删除,所以可防止意外删除数据。
创建
- FOREIGN KEY (vend_id) REFERENCES Vendors (vend_id)
创建表时直接在大括号中写 - ALTER TABLE Orders
ADD CONSTRAINT
FOREIGN KEY (cust_id) REFERENCES Customers (cust_id)