外来键是一个(或数个)指向另外一个表格主键的栏位。外来键的目的是确定资料的参考完整性(referential integrity)。换言之,只有被准许的资料值才会被存入资料库内。
举例来说,假设我们有两个表格:一个 CUSTOMER 表格,里面记录了所有顾客的资料;另一个 ORDERS 表格,里面记录了所有顾客订购的资料。在这里的一个限制,就是所有的订购资料中的顾客,都一定是要跟在 CUSTOMER 表格中存在。在这里,我们就会在 ORDERS 表格中设定一个外来键,而这个外来键是指向 CUSTOMER 表格中的主键。这样一来,我们就可以确定所有在 ORDERS 表格中的顾客都存在 CUSTOMER 表格中。换句话说,ORDERS表格之中,不能有任何顾客是不存在于 CUSTOMER 表格中的资料。
这两个表格的结构将会是如下:
CUSTOMER 表格
栏位名 |
性质 |
SID |
主键 |
Last_Name |
|
First_Name |
|
ORDERS 表格
栏位名 |
性质 |
Order_ID |
主键 |
Order_Date |
|
Customer_SID |
外来键 |
Amount |
|
在以上的例子中,ORDERS 表格中的 customer_SID 栏位是一个指向 CUSTOMERS 表格中 SID 栏位的外来键。
以下列出几个在建置 ORDERS 表格时指定外来键的方式:
MySQL:
CREATE TABLE ORDERS
(Order_ID integer,
Order_Date date,
Customer_SID integer,
Amount double,
Primary Key (Order_ID),
Foreign Key (Customer_SID) references CUSTOMER(SID));
Oracle:
CREATE TABLE ORDERS
(Order_ID integer primary key,
Order_Date date,
Customer_SID integer references CUSTOMER(SID),
Amount double);
SQL Server:
CREATE TABLE ORDERS
(Order_ID integer primary key,
Order_Date datetime,
Customer_SID integer references CUSTOMER(SID),
Amount double);
以下的例子则是藉着改变表格架构来指定外来键。这里假设 ORDERS 表格已经被建置,而外来键尚未被指定:
MySQL:
ALTER TABLE ORDERS
ADD FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(sid);
Oracle:
ALTER TABLE ORDERS
ADD (CONSTRAINT fk_orders1) FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(sid);
SQL Server:
ALTER TABLE ORDERS
ADD FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(sid);
分享到:
相关推荐
### 获取SQL外键集合知识点详解 #### 一、概述 在数据库设计中,外键(Foreign Key)是一种用于建立表间关系的重要机制。通过定义一个表中的列与另一个表中的主键之间的链接,可以实现数据的一致性和完整性。在...
在SQL(结构化查询语言)中,外键约束是一种重要的关系数据库完整性机制,它用于确保数据的一致性和准确性。外键约束是两个表之间的一种关联,一个表中的外键引用了另一个表的主键,从而建立了两个表之间的联系。...
在SQL数据库设计中,外键(Foreign Key)是实现数据完整性和引用完整性的关键机制,它使得不同表之间的数据能够建立关联,确保了数据的一致性。本文将深入讲解如何在SQL Server中建立外键,以及如何使用不同的方法...
本主题将深入探讨如何利用T-SQL进行数据库构建、表设计以及应用不同类型的约束,包括主键、外键、检查约束和唯一性约束,并演示数据的插入方法。 1. **创建数据库**: 在T-SQL中,使用`CREATE DATABASE`语句来创建...
MySQL 外键
SQL2008设置外键
7、动态创建SQL外键约束。 8、动态创建SQL触发器。 9、自定义SQL数据库登录校验窗体。 10、不用设置BDE的SQL数据库连接。 11、动态窗体创建。 12、MDI编程。 13、利用Field的OnSetText事件检查输入值是否存在...
在SQL Server数据库管理系统中,外键是用于维护数据完整性和引用完整性的关键元素。它们确保一个表中的数据(主键)与另一个表中的数据(外键)之间存在正确的关联。在进行数据库设计时,合理使用外键能确保数据的...
SQL(Structured Query Language)是用于管理和操作关系数据库的标准化语言,它包括数据查询、数据更新、数据插入和数据删除等多种功能。在本篇文章中,我们将深入探讨SQL中的一个重要概念——约束(Constraint),...
SQL语句提供了多种方式来为表添加外键,以下将详细介绍标题和描述中提到的四种方法。 1. **创建表的同时添加外键** 当创建新表时,可以在CREATE TABLE语句中直接定义外键。例如: ```sql CREATE TABLE score ( ...
在SQL Server 2005中,主键与外键是数据库设计中非常重要的概念,它们主要用于确保数据的完整性和一致性。特别是在复杂的数据关系管理中,复合主键的应用更是能够帮助我们有效地处理多对多的关系或者是更为复杂的...
SQL数据完整性 主键_外键_unique_check_primary
sql学习 主外键设计其他_外键注意点.sql
sql学习 主外键设计1_外键索引与性能.sql
sql学习 主外键设计2_外键索引与锁.sql
**题目描述**:在SQL Server 2005中,外键用于将一个表中的列与另一表中的列关联起来,为了确保引用的完整性,需要满足的要求是? **解析**: - **选项分析**: - 选项A: 外键列的列值必须已经存在于主键表的对应...
本文详细介绍了在MySQL中增加外键的方法,并提供了使用PHPMyAdmin管理工具和SQL语句来实现外键添加的操作步骤和注意事项。 首先,要成功地在MySQL中增加一个外键,需要满足几个前提条件: 1. 本表的列必须与外键...
主外键 sql server
关系型数据库与非关系型数据库 sql外键添加与删除带来的影响 如果不添加外键会发生是什么问题
用于查询某个数据库下所有表的外键约束情况,以便统一分析外键约束是否合理;主要查询出外键的,是否级联删除,级联更新,强制外键约束,强制复制约束始终状态。如想使用别的状态,请自行添加。下载的童鞋别下载错了...