xin3721網(wǎng)絡(luò)學(xué)院為廣大學(xué)員,準備了豐富了教學(xué)視頻。為了更好的讓大學(xué)配合視頻進行學(xué)習(xí),拓展學(xué)員的知
識面,我站特整理了大量的,技術(shù)文章,供學(xué)員參考。因此本教案需配合視頻教程學(xué)習(xí),
視頻教程地址為:vb.net教程
外來鍵是一個(或數(shù)個)指向另外一個表格主鍵的欄位。外來鍵的目的是確定資料的參考完整性(referential integrity)。換言之,只有被準許的資料值才會被存入資料庫內(nèi)。
舉例來說,假設(shè)我們有兩個表格:一個 CUSTOMER 表格,里面記錄了所有顧客的資料;另一個 ORDERS 表格,里面記錄了所有顧客訂購的資料。在這里的一個限制,就是所有的訂購資料中的顧客,都一定是要跟在 CUSTOMER 表格中存在。在這里,我們就會在 ORDERS 表格中設(shè)定一個外來鍵,而這個外來鍵是指向 CUSTOMER 表格中的主鍵。這樣一來,我們就可以確定所有在 ORDERS 表格中的顧客都存在 CUSTOMER 表格中。換句話說,ORDERS表格之中,不能有任何顧客是不存在于 CUSTOMER 表格中的資料。
這兩個表格的結(jié)構(gòu)將會是如下:
CUSTOMER 表格
欄位名 | 性質(zhì) |
SID | 主鍵 |
Last_Name | |
First_Name | |
ORDERS 表格
欄位名 | 性質(zhì) |
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);
以下的例子則是藉著改變表格架構(gòu)來指定外來鍵。這里假設(shè) ORDERS 表格已經(jīng)被建置,而外來鍵尚未被指定:
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);
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。