外鍵的學習

來源:互聯網
上載者:User

  這兩天在開發一個資訊裝置申請管理系統,我在設計資料庫的時候遇到一個比較糾結的問題,那就是關於外鍵的定義的問題,因為我不知道哪些欄位需要定義為外鍵,在什麼樣的情況下才定義外鍵,還有外鍵的定義方法,

今天我拿到之前買的一本楊中科老師寫的<<程式員的SQL金典>>研究了一下,終於解開了我的迷惑,所以以此來分享我所理解的外鍵.

一,外鍵的定義:將兩種資料庫表通過欄位關聯起來的方式就被稱為"表關聯",其中關聯到其他表主鍵的欄位被稱為"外鍵".

二,外鍵的定義原則:一句話,當某個欄位的值在表中重複出現的時候,我們就要考慮將它們提取到另外一張表中,然後在源表中引用新建立的表中的資料.

三,外鍵的定義方法:foreign key (外鍵欄位名稱) references 目標表名 (被關聯的欄位名稱)

 例如:create table T_Employee (FId int,FNumber varchar(50),FName varchar(50),FDepartmentId varchar(50),foreign key (FDepartmentId) references T_Department (FId))

四,如果在建立表的時候沒有添加外鍵約束,可以使用alter table語句添加外鍵約束,文法如下:

  alter table 表名 add constraint 外鍵名 foreign key (外鍵欄位名稱) references 目標表名 (被關聯的欄位名稱)

  例如:alter table T_Book add constraint fk_book_author foreign key (FAuthorId) references T_Author (FId);

技巧:關於操作資料庫和寫SQL語句時候的一些約定規範(或者稱為一些好的習慣),這樣可以避免與系統的關鍵字,標識符等衝突,增加程式的正確性,同時也利於維護.

  1,資料庫名以"db_"開頭.

  2,資料表名以"T_"開頭.

  3,欄位名以"F"開頭.

  db(DataBase),T(table),F(Field)

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.