W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
在Oracle數(shù)據(jù)庫中,外鍵是強(qiáng)制實(shí)施參照完整性的一種方式,使用外鍵就意味著一個(gè)表中的值在另一個(gè)表中也必須出現(xiàn)。
被引用的表稱為父表,而帶有外鍵的表稱為子表。子表中的外鍵通常會(huì)引用父表中的主鍵。
使用CREATE TABLE語句創(chuàng)建外鍵的語法是:
CREATE TABLE table_name
(
column1 datatype null/not null,
column2 datatype null/not null,
...
CONSTRAINT fk_column
FOREIGN KEY (column1, column2, ... column_n)
REFERENCES parent_table (column1, column2, ... column_n)
);
示例:
CREATE TABLE supplier
( supplier_id numeric(10) not null,
supplier_name varchar2(50) not null,
contact_name varchar2(50),
CONSTRAINT supplier_pk PRIMARY KEY (supplier_id)
);
CREATE TABLE products
( product_id numeric(10) not null,
supplier_id numeric(10) not null,
CONSTRAINT fk_supplier
FOREIGN KEY (supplier_id)
REFERENCES supplier(supplier_id)
);
在這個(gè)例子中,我們?cè)趕upplier表上創(chuàng)建了一個(gè)名為supplier_pk的主鍵。 它只包含一個(gè)字段 - supplier_id字段。 然后,在products表上創(chuàng)建了一個(gè)名為fk_supplier的外鍵,該表根據(jù)supplier_id字段引用supplier表。
也可以創(chuàng)建一個(gè)具有多個(gè)字段的外鍵,如下例所示:
CREATE TABLE supplier
( supplier_id numeric(10) not null,
supplier_name varchar2(50) not null,
contact_name varchar2(50),
CONSTRAINT supplier_pk PRIMARY KEY (supplier_id, supplier_name)
);
CREATE TABLE products
( product_id numeric(10) not null,
supplier_id numeric(10) not null,
supplier_name varchar2(50) not null,
CONSTRAINT fk_supplier_comp
FOREIGN KEY (supplier_id, supplier_name)
REFERENCES supplier(supplier_id, supplier_name)
);
在這個(gè)例子中,外鍵稱為fk_foreign_comp基于兩個(gè)字段 - supplier_id和supplier_name字段引用供應(yīng)商表。
在ALTER TABLE語句中創(chuàng)建外鍵的語法是:
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
FOREIGN KEY (column1, column2, ... column_n)
REFERENCES parent_table (column1, column2, ... column_n);
示例:
ALTER TABLE products
ADD CONSTRAINT fk_supplier
FOREIGN KEY (supplier_id)
REFERENCES supplier(supplier_id);
在這個(gè)例子中,我們創(chuàng)建了一個(gè)名為fk_supplier的外鍵,它根據(jù)supplier_id字段引用supplier表的supplier_id字段。
我們也可以創(chuàng)建一個(gè)具有多個(gè)字段的外鍵,如下例所示:
ALTER TABLE products
ADD CONSTRAINT fk_supplier
FOREIGN KEY (supplier_id, supplier_name)
REFERENCES supplier(supplier_id, supplier_name);
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: