資料庫外來鍵references的用法

2021-08-02 21:08:41 字數 1900 閱讀 1576

外來鍵是乙個(或數個)指向另外乙個**主鍵的字段。外來鍵的目的是確定資料的參考完整性(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);

資料庫 外來鍵

外來鍵是什麼?外來鍵 fk 是用於建立和加強兩個表資料之間的鏈結的一列或多列。通過將儲存表中主鍵值的一列或多列新增到另乙個表中,可建立兩個表之間的鏈結。這個列就成為第二個表的外來鍵。外來鍵資料庫一級的完整性約束,由資料庫自行維護.你也可以手動建立.1如果存在外來鍵關係的話,任何修改主表主鍵欄位和刪除...

資料庫外來鍵

主鍵 能夠唯一標識表中某一行的屬性或屬性組。乙個表只能有乙個主鍵,但是可以有多個索引。主鍵常常與外來鍵構成完整性約束,防止出現資料的不一致,資料庫管理系統對於主鍵自動生成唯一索引,所以主鍵是乙個特殊的索引。外來鍵 用於建立和加強兩個表資料之間的連線的一列或者多列。外來鍵主要是用來維護兩個表之間的資料...

資料庫外來鍵

概念 table2的乙個鍵關聯table1的主鍵 foreign key 作用 保持資料的一致性和完整性 表的字段必須與外來鍵型別相同 insert table2的時候會檢查foreign key是否在table1中存在,不存在則返回失敗 delete table1某行資料的時候檢查table2中是...