oracle 主键与外来键,数据库外键references的用法

外来键是一个(或数个)指向另外一个表格主键的栏位。外来键的目的是确定资料的参考完整性(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);

邮件发送失败:com.sun.mail.smtp.SMTPSenderFailedException: 550 5.8.2 user can not use SMTP service

c435921c498fd8cf48f9f07527be548a.png 17016

责任编辑:xiaochao

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值