主键
定义:唯一标识一条记录,不能有重复的,不允许为空
作用:
1.用来保证数据完整性
2.加快数据库的操作速度
3.提供标识,方便索引。
个数:主键只能有一个
SELECT*FROM employees;
这里的employee_id就可以使主键
外键
定义:表的外键是另一表的主键, 外键可以有重复的, 可以是空值
作用:用来和其他表建立联系用的
个数:一个表可以有多个外键
外键实例:一个表中的 FOREIGN KEY 指向另一个表中的 UNIQUE KEY(唯一约束的键)。
让我们通过一个实例来解释外键。请看下面两个表:
“Persons” 表:
“Orders” 表:
“Orders” 表中的 “P_Id” 列指向 “Persons” 表中的 “P_Id” 列。
“Persons” 表中的 “P_Id” 列是 “Persons” 表中的 PRIMARY KEY。
“Orders” 表中的 “P_Id” 列是 “Orders” 表中的 FOREIGN KEY。
FOREIGN KEY 约束用于预防破坏表之间连接的行为。
FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。
创建外键约束的方式
CREATE TABLE 表名
(
column1 datatype null/not null,
column2 datatype null/not null,
...
CONSTRAINT 外键约束名 FOREIGN KEY (column1,column2,... column_n)
REFERENCES 外键依赖的表 (column1,column2,...column_n)
ON DELETE CASCADE--级联删除
);
主键和外键的对比
1.主键是唯一标识一条记录,不能有重复的,而外键是另一表的主键,可以重复。
2.主键不允许为空,而外键可以。
3.主键是用来保证数据完整性,而外键是用来和其他表建立联系的。
4.主键只有一个,外键可以有多个。