日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
建立數(shù)據(jù)庫(kù)表之間的外鍵關(guān)系:詳解(怎么在數(shù)據(jù)庫(kù)中建立表的外鍵關(guān)系)

在數(shù)據(jù)庫(kù)設(shè)計(jì)和管理中,表與表之間的關(guān)系是十分重要的。為了能夠更好地管理和維護(hù)數(shù)據(jù),我們需要建立表與表之間的關(guān)系,其中外鍵關(guān)系是一種重要的關(guān)系類型。本文將詳細(xì)介紹什么是外鍵,如何建立外鍵關(guān)系,以及外鍵關(guān)系的優(yōu)缺點(diǎn)和應(yīng)用場(chǎng)景。

創(chuàng)新互聯(lián)公司成都企業(yè)網(wǎng)站建設(shè)服務(wù),提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)網(wǎng)站開發(fā),網(wǎng)站定制,建網(wǎng)站,網(wǎng)站搭建,網(wǎng)站設(shè)計(jì),自適應(yīng)網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì)師打造企業(yè)風(fēng)格網(wǎng)站,提供周到的售前咨詢和貼心的售后服務(wù)。歡迎咨詢做網(wǎng)站需要多少錢:028-86922220

1. 什么是外鍵?

外鍵是一種用于建立兩個(gè)表之間關(guān)聯(lián)的約束條件。通俗地說(shuō),外鍵是一張表中的字段,它與另一張表中的字段相關(guān)聯(lián)。這個(gè)相關(guān)聯(lián)的過(guò)程稱為“鏈接”或“關(guān)聯(lián)”。

舉個(gè)例子,我們可以在員工表中建立一個(gè)外鍵,將員工表中的某些字段與部門表中的相應(yīng)字段進(jìn)行關(guān)聯(lián)。這么做可以實(shí)現(xiàn)一個(gè)非常方便的功能:在查詢員工信息的時(shí)候,如果希望同時(shí)查詢員工所屬的部門名稱,只需要使用外鍵進(jìn)行鏈接即可。

2. 如何建立外鍵關(guān)系?

建立外鍵關(guān)系需要滿足以下幾個(gè)條件:

2.1 表結(jié)構(gòu)設(shè)計(jì)

我們需要在表結(jié)構(gòu)設(shè)計(jì)的時(shí)候?yàn)槊總€(gè)表都定義一個(gè)主鍵。主鍵是一種用于唯一標(biāo)識(shí)表中每個(gè)記錄的字段。主鍵字段不能重復(fù),且不能為空。

在建立外鍵關(guān)系的時(shí)候,我們需要把主鍵中的某些字段作為外鍵與其他表的某些字段相關(guān)聯(lián)。在建立外鍵關(guān)系之前,我們需要先確定主鍵和外鍵的關(guān)聯(lián)。

2.2 外鍵約束

建立外鍵關(guān)系需要在表結(jié)構(gòu)中添加外鍵約束。外鍵約束用于限制表間的數(shù)據(jù)一致性,確保每個(gè)外鍵都存在于相關(guān)聯(lián)的主鍵表中。

外鍵約束可以在表結(jié)構(gòu)設(shè)計(jì)時(shí)定義,也可以通過(guò)SQL語(yǔ)句在表中添加。

2.3 建立關(guān)聯(lián)

建立外鍵關(guān)系需要在相關(guān)聯(lián)的表中使用 JOIN 語(yǔ)句。在 EMPLOYEE 表和 DEPARTMENT 表之間建立外鍵關(guān)系的 SQL 語(yǔ)句可以寫成下面這樣:

CREATE TABLE EMPLOYEE (

emp_id INT UNSIGNED NOT NULL AUTO_INCREMENT,

emp_name VARCHAR(50) NOT NULL,

dept_id INT UNSIGNED NOT NULL,

PRIMARY KEY (emp_id),

CONSTRNT FK_deptid FOREIGN KEY (dept_id) REFERENCES DEPARTMENT(dept_id)

);

CREATE TABLE DEPARTMENT (

dept_id INT UNSIGNED NOT NULL AUTO_INCREMENT,

dept_name VARCHAR(50) NOT NULL,

PRIMARY KEY (dept_id)

);

其中,EMPLOYEE 表中的 dept_id 字段作為外鍵與 DEPARTMENT 表中的 dept_id 字段進(jìn)行關(guān)聯(lián)。

3. 外鍵關(guān)系的優(yōu)缺點(diǎn)和應(yīng)用場(chǎng)景

3.1 優(yōu)點(diǎn)

(1)確保數(shù)據(jù)一致性。外鍵關(guān)系可以有效避免數(shù)據(jù)刪除或修改造成的異常,保證相關(guān)表間數(shù)據(jù)的一致性。

(2)提高數(shù)據(jù)查詢效率。外鍵關(guān)系在查詢數(shù)據(jù)時(shí)非常方便,可以快速獲取相關(guān)聯(lián)表中的相關(guān)數(shù)據(jù)。

3.2 缺點(diǎn)

(1)外鍵關(guān)系需要在表設(shè)計(jì)時(shí)進(jìn)行規(guī)劃和設(shè)計(jì),增加了數(shù)據(jù)庫(kù)的復(fù)雜性和維護(hù)難度。

(2)對(duì)于大型數(shù)據(jù)庫(kù)系統(tǒng)來(lái)說(shuō),外鍵關(guān)系可能對(duì)系統(tǒng)性能產(chǎn)生一定的影響。

3.3 應(yīng)用場(chǎng)景

(1)多個(gè)表之間需要進(jìn)行關(guān)聯(lián)查詢的場(chǎng)景,如員工信息和部門信息的關(guān)聯(lián)查詢。

(2)需要控制數(shù)據(jù)的一致性和完整性的場(chǎng)景,比如刪除或修改操作。在刪除或修改操作時(shí),外鍵約束可以保證相關(guān)聯(lián)表的數(shù)據(jù)不會(huì)出現(xiàn)邏輯上的錯(cuò)誤或不一致。

結(jié)語(yǔ)

本文從外鍵的定義、建立外鍵關(guān)系的條件、優(yōu)缺點(diǎn)和應(yīng)用場(chǎng)景等方面進(jìn)行了詳解。外鍵作為關(guān)系型數(shù)據(jù)庫(kù)中一個(gè)重要的約束之一,能夠有效提高數(shù)據(jù)庫(kù)的數(shù)據(jù)一致性和查詢效率,在實(shí)際開發(fā)項(xiàng)目中是非常值得應(yīng)用的。

成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!

如何通過(guò)sqlyog對(duì)數(shù)據(jù)庫(kù)表設(shè)置外鍵

三種方法:如空

  1.直接寫sql語(yǔ)句.

  2.用SQLyog 選擇外鍵表 ,點(diǎn)擊右鍵 選擇關(guān)聯(lián)/外鍵,然后再選鎮(zhèn)饑擇主表,外鍵.

  3.在表 vet_specialties 上點(diǎn)擊右鍵 ,然后渣旅瞎找到Relationships/ForeignKeys中,然后選擇相應(yīng)的列。

  或者直接寫命令:

  ALTER TABLE vet_specialties ADD FOREIGN KEY FK_SPECIALTY_ID(specialty_id) REFERENCES specialties (id)

  ALTER TABLE vet_specialties ADD FOREIGN KEY FK_VET_ID(vet_id) REFERENCES vets (id)

要求:建立了兩個(gè)表一個(gè)attence(記作A表),一個(gè)leave(記作敏坦察L表)橋茄。

A表中有用戶的用戶名,密碼,id(自增作為主鍵)。

L表中是一個(gè)請(qǐng)假的表,L表中需要標(biāo)識(shí)哪一個(gè)用戶請(qǐng)的假。

這里需要設(shè)置外信芹鍵:

步驟:

1、

在此右鍵L表

2、尋找并點(diǎn)擊“關(guān)聯(lián)/外鍵”或者摁“F10”。

彈出此對(duì)話框。

3、新建

4、a.在主鍵表下拉菜單中找到A表

b.在Source Column中找到userid  

c.在Target Column 中找到id

d.點(diǎn)擊創(chuàng)建

就完成了外鍵的設(shè)置。

數(shù)據(jù)庫(kù)表中的主鍵和外鍵如何關(guān)聯(lián)?

主鍵:

概念

主關(guān)鍵字(主鍵,primarykey)是被挑沒(méi)桐選出來(lái)猜態(tài),作表的行的惟一標(biāo)識(shí)的候選關(guān)鍵字。一個(gè)表只有一個(gè)主關(guān)鍵字。主關(guān)鍵字又可以稱為主鍵。主鍵可以由一個(gè)字段,也可以由多個(gè)字段組成,分別成為單字段主鍵或多字段主鍵。

作用

:1)保證實(shí)體的完整性;

2)加快數(shù)據(jù)庫(kù)的操作速度

3)在表中添加新記錄時(shí),access會(huì)自動(dòng)檢查新記錄的主鍵值,不允許該值與其他記錄的主鍵值重復(fù)。

4)access自動(dòng)按主鍵值的順序顯示表中的記錄。如果沒(méi)有定義主鍵,則按輸入記錄的順序顯示表中的記錄。

特點(diǎn)

1)一個(gè)表中只能有一個(gè)主鍵。如果在其他字段上建立主鍵,則原來(lái)的主鍵就會(huì)取消。在access中,雖然主鍵不是必需的,但更好為每個(gè)表都設(shè)置一個(gè)主鍵。

2)主鍵的值不可重復(fù),也不可為空(null)。

外鍵:

如果公共關(guān)鍵字在一個(gè)關(guān)系中是主關(guān)鍵字,那么這個(gè)公共關(guān)鍵字被稱為另一個(gè)關(guān)系的外鍵。由此可見,外鍵表示了兩個(gè)關(guān)系之間的聯(lián)系。以另一個(gè)關(guān)系的外鍵作主關(guān)鍵字的表被稱為主表,具有此外鍵的表被稱為主表的從表。外鍵又稱作外關(guān)鍵字。

以上是摘抄的,簡(jiǎn)單來(lái)說(shuō),主鍵就是一個(gè)枯兆坦關(guān)系中作為標(biāo)識(shí)用的,而外鍵是其他關(guān)系中的屬性,使用外鍵可避免冗余。

它們都是

關(guān)系數(shù)據(jù)庫(kù)

表設(shè)計(jì)的約束方式而已,為了保證數(shù)據(jù)庫(kù)中不會(huì)出現(xiàn)臟數(shù)據(jù)的限制方法。

主鍵游弊

是數(shù)據(jù)庫(kù)表的唯一索引序列,可以由多個(gè)字段組成,但每條數(shù)據(jù)的這幾個(gè)字段的組合必須唯一;主鍵約束僅涉及本表數(shù)據(jù);

外鍵

是本表中該外鍵字段的取值要求是已經(jīng)在目標(biāo)表中存在的數(shù)鏈磨空據(jù);假如說(shuō),表B有字段b_1是表A中字段a_1的外鍵,那么插入表B數(shù)據(jù)的時(shí)候,字段b_1的取值要求在表A的字段a_1的當(dāng)前所有數(shù)據(jù)的值的范圍棚瞎內(nèi)。外鍵是以外表數(shù)據(jù)約束本表數(shù)據(jù)的約束條件。

此外,外鍵還有個(gè)要求,就是a_1必須是表A的主鍵。并且必須說(shuō)得是,外鍵是一個(gè)很煩人的數(shù)據(jù)庫(kù)約束。

主外鍵的存在是依托兩個(gè)實(shí)體之間的關(guān)系而存在的;

比如班級(jí)與學(xué)生的關(guān)系:

一個(gè)班級(jí)可以有多個(gè)學(xué)生,并且一個(gè)學(xué)生只能屬于一個(gè)班級(jí),這就是一對(duì)多的關(guān)系;

那么設(shè)計(jì)數(shù)據(jù)庫(kù)的時(shí)候就應(yīng)該在學(xué)生表內(nèi)存放班級(jí)的ID作為外鍵,為什么不在班級(jí)表內(nèi)放學(xué)生呢?

因?yàn)?,你想一想班?jí)表內(nèi)如果放學(xué)生那么記錄可能就是這樣:

1班ID 1班 xx同學(xué)id

1班ID 1班 xx同學(xué)id

..

這是不允許的,班級(jí)表內(nèi)班級(jí)為主鍵,是唯一的不允許相同記錄的;

下面簡(jiǎn)單給你講下大概建成的表結(jié)構(gòu)

–建班級(jí)表

create table class(

classid int primary key,–定義班級(jí)ID為主鍵

classname varchar(15)

)

–建學(xué)生表

create table students(

studentid int primary key,–定義學(xué)生ID為主鍵

classid int ,–外鍵值,跟班級(jí)表classid 屬性類型相同

stuname varchar(20),–學(xué)生姓名

—定義外鍵

foreign key(classid) references class(classid) –本表classid是基于class表classid的外鍵

)

如上定饑襲義了主外鍵后,兩個(gè)表間的關(guān)系就是一對(duì)多的關(guān)系了,并且學(xué)生表內(nèi)的classid必須依托班級(jí)表的classid存在,也就是說(shuō)外鍵必須要主鍵存在的時(shí)候才能創(chuàng)建,例如:

–在班級(jí)表為空的情況往學(xué)生表插入一條記錄是不允許的:

insert into students(studentid,classid,stuname)values(1,1,’小明’)

系爛棗兄統(tǒng)會(huì)拋出異常提示主鍵表班級(jí)表內(nèi)班級(jí)ID不存在這樣是不允許插入的;

必須要先往班級(jí)表內(nèi)插入一條記錄:

insert into class(classid,classname)values(1,’一班’)

后才能執(zhí)行插入前面一條往學(xué)生表插入信息的語(yǔ)句巖森..

關(guān)于怎么在數(shù)據(jù)庫(kù)中建立表的外鍵關(guān)系的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

四川成都云服務(wù)器租用托管【創(chuàng)新互聯(lián)】提供各地服務(wù)器租用,電信服務(wù)器托管、移動(dòng)服務(wù)器托管、聯(lián)通服務(wù)器托管,云服務(wù)器虛擬主機(jī)租用。成都機(jī)房托管咨詢:13518219792
創(chuàng)新互聯(lián)(www.cdcxhl.com)擁有10多年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)、開啟建站+互聯(lián)網(wǎng)銷售服務(wù),與企業(yè)客戶共同成長(zhǎng),共創(chuàng)價(jià)值。


網(wǎng)站標(biāo)題:建立數(shù)據(jù)庫(kù)表之間的外鍵關(guān)系:詳解(怎么在數(shù)據(jù)庫(kù)中建立表的外鍵關(guān)系)
文章來(lái)源:http://www.dlmjj.cn/article/djphhoe.html