新聞中心
外鍵是關系型數(shù)據(jù)庫中一種重要的數(shù)據(jù)關系表達方式,它能夠?qū)⒉煌瑪?shù)據(jù)表之間的關聯(lián)關系通過程序語言實現(xiàn)。外鍵的存在使得數(shù)據(jù)庫的設計更加靈活和便捷,同時也有助于維護數(shù)據(jù)表的完整性和一致性。本文將闡述。

一、外鍵的作用
1. 關聯(lián)表數(shù)據(jù)
外鍵將關聯(lián)表中的行與所參照的主表中的行進行關聯(lián)。這樣,雖然數(shù)據(jù)分散在不同的表中,但數(shù)據(jù)庫可以使用外鍵將這些表關聯(lián)起來,在某些操作時可以一起處理。
2. 維護數(shù)據(jù)的完整性
外鍵保證了關聯(lián)表中數(shù)據(jù)的完整性和一致性。如果兩個表中有一個外鍵關系,當在父表中刪除一個行時,其對應的子表中的行將被自動刪除或者禁止子表中的行成為孤兒行。
3. 支持多對多關系
外鍵能夠?qū)崿F(xiàn)關系數(shù)據(jù)庫中的多對多關系,實現(xiàn)了數(shù)據(jù)庫中關聯(lián)關系的靈活性和便捷性。通過在一個表中存儲另一個表的主鍵,使用外鍵可以在不同的數(shù)據(jù)表之間建立有效的關聯(lián)關系。
二、外鍵的實現(xiàn)方式
外鍵實現(xiàn)方式主要包括手動添加外鍵和使用數(shù)據(jù)庫管理系統(tǒng)自動生成外鍵。
1. 手動添加外鍵
手動添加外鍵需要在子表中定義一個外鍵列,使用外鍵列去連接父表的主鍵。具體實現(xiàn)時,需要在父表中創(chuàng)建一個主鍵或惟一索引,然后在子表中定義一個FOREIGN KEY約束,這個約束連接到父表的主鍵或等價于主鍵的惟一索引。
例:
CREATE TABLE 父表
(
父表主鍵 INT PRIMARY KEY
);
CREATE TABLE 子表
(
子表主鍵 INT PRIMARY KEY,
父表外鍵 INT,
FOREIGN KEY(父表外鍵) REFERENCES 父表(父表主鍵)
);
2. 使用數(shù)據(jù)庫管理系統(tǒng)自動生成外鍵
許多數(shù)據(jù)庫管理系統(tǒng)自帶外鍵功能,會自動在子表上創(chuàng)建一個外鍵列,并自動關聯(lián)到父表的主鍵列。這種方法在一定程度上減輕了程序員的工作負擔,同時也防止了因程序員失誤而導致的錯誤。
例:
CREATE TABLE 父表
(
父表主鍵 INT PRIMARY KEY
);
CREATE TABLE 子表
(
子表主鍵 INT PRIMARY KEY,
父表外鍵 INT,
FOREIGN KEY(父表外鍵) REFERENCES 父表(父表主鍵) ON DELETE CASCADE
);
在這個例子中,在子表創(chuàng)建外鍵約束時,使用了ON DELETE CASCADE,這意味著當父表中刪除一個主鍵行時,子表中對應的帶有外鍵的行會被自動刪除。另外,外鍵的操作還可以定義為將外鍵值設為 NULL 或 DEFAULT。
三、常見的外鍵限制條件
1. ON DELETE [CASCADE | SET NULL | SET DEFAULT]
ON DELETE用于定義當父表中的主鍵行被刪除時發(fā)生的動作。CASCADE選項表示當父表中的行被刪除時,它們所對應的子表中的行也將被刪除。SET NULL選項表示當父表中的行被刪除時,它們所對應的子表中的外鍵列將被設為空。SET DEFAULT選項表示當父表中的行被刪除時,它們所對應的子表中的外鍵列將被設為默認值。
2. ON UPDATE [CASCADE | SET NULL | SET DEFAULT]
ON UPDATE定義了當父表中的主鍵值被修改時,其對應的子表中的外鍵列應該如何修改。
3. NOT NULL
NOT NULL 用于指定外鍵列中的值不能為空。
4. UNIQUE
關聯(lián)表中的外鍵列已經(jīng)是惟一的,可以在創(chuàng)建表時指定外鍵為惟一的,這樣子表中就不會創(chuàng)建一個外鍵在父表中相關聯(lián)的行。
外鍵在關系型數(shù)據(jù)庫中具有重要的作用,方便了不同數(shù)據(jù)表之間的關聯(lián)和數(shù)據(jù)維護。不同的數(shù)據(jù)庫系統(tǒng)可能支持不同的外鍵實現(xiàn)方式,但外鍵約束可以保證數(shù)據(jù)的完整性和一致性,同時也為程序員提供了一種有效的數(shù)據(jù)表關聯(lián)方式。
相關問題拓展閱讀:
- 數(shù)據(jù)庫外鍵怎么設置?
- 數(shù)據(jù)庫同時有主鍵和外鍵怎么表
- 數(shù)據(jù)庫外鍵
數(shù)據(jù)庫外鍵怎么設置?
SQL 數(shù)據(jù)庫建表時怎么設置外鍵,
1> — 創(chuàng)建測試主表. ID 是主鍵.
2> CREATE TABLE test_main (
3> id INT,
4> value VARCHAR(10),
5> PRIMARY KEY(id)
6> );
7> go
— 建表時設置外鍵
1> CREATE TABLE test_sub (
2> id INT,
3> main_id INT,
4> value VARCHAR(10),
5> PRIMARY KEY(id),
6> FOREIGN KEY (main_id) REFERENCES test_main
7> );
8> go
sql怎么設置外鍵
可以在創(chuàng)建表的時候創(chuàng)建,也可以在創(chuàng)建表之后創(chuàng)建。
創(chuàng)建表時創(chuàng)建:
create table student
(id int primary key,
name char(4),
dept char(9)
sex char(4))
create table grade
(id int ,
grade int
constraint id_fk foreign key (id) references student (id)
)
或創(chuàng)建了兩表之后再建
alter table grade
add constraint id_fk foreign key (id) references student (id)
呵呵,希望能幫助你。
sql server中圖形界面如何設置外鍵
在那個屬性上右鍵 有約束 自己添加就OK了
mysql怎么設置外鍵?
ALTER TABLE b ADD CONSTRAINT c FOREIGN KEY(c) REFERENCES a(c) ON DELETE CASCADE ON UPDATE CASCADE; 哎呀。。好像寫反了。我寫的是把表B的c設置為外鍵了。。你改一下吧。
如何在數(shù)據(jù)庫的建立表的時候設置表的外鍵
1> — 創(chuàng)建測試主表. ID 是主鍵.
2> CREATE TABLE test_main (
3> id INT,
4> value VARCHAR(10),
5> PRIMARY KEY(id)
6> );
7> go
— 建表時設置外鍵
1> CREATE TABLE test_sub (
2> id INT,
3> main_id INT,
4> value VARCHAR(10),
5> PRIMARY KEY(id),
6> FOREIGN KEY (main_id) REFERENCES test_main
7> );
8> go
sql server 2023 怎么設置外鍵
建外鍵的前提是此外鍵必須是另外一個表的主鍵。建外鍵的步驟: 之一步打開要建外辯彎鍵表的設計器,右擊選擇“關系”。然后彈出“外裂談鍵關系”窗體,我們選擇“添加”,然后點擊“表和列規(guī)范”后面的小按鈕,就會彈出另外一個窗體讓我們選擇主鍵表和列,選好之后點擊確定。然后我們INSERT和UPDATE規(guī)范,在更新規(guī)則和刪除規(guī)則有四個選項,分別是“不執(zhí)行任何操作攜源悶”、“級聯(lián)”、“設置為NULL”、“設置默認值”。默認的不執(zhí)行任何操作。如果是“不執(zhí)行任何操作”,當我們刪除或更新主鍵表的數(shù)據(jù)時,會告訴用戶不能執(zhí)行刪除或更新該操作?!凹壜?lián)”的意思是當我們刪除或更新主鍵表的數(shù)據(jù)時,會刪除或更新外鍵表中所涉及的相關數(shù)據(jù)的所有行。 “設置Null”的意思是當我們刪除或更新主鍵表的數(shù)據(jù)時,外鍵表中的外鍵列的值會設為Null,但前提是該列允許為空。 “設置默認值”的意思是如果我們將外鍵列定義了默認值,當我們刪除或更新主鍵表的數(shù)據(jù)時,外鍵表中的外鍵列的值設為定義的默認值。 當然我們可以用代碼創(chuàng)建,當我們在創(chuàng)建數(shù)據(jù)庫表T——Card時只要加上一句話就OK啦,“Foreign key (studentNo) references T_Student(studentNo)”。如果我們已經(jīng)創(chuàng)建了改表,那如何用代碼實現(xiàn)了,這也很簡單也就一句話“ add constraint CMPKey(外鍵名) foreign key(studentNo) references T_Student(studentNo)”。
sql中怎樣創(chuàng)建外鍵約束
在創(chuàng)建表之后,添加外鍵約束:
alter table yuangong add constraint fk foreign key (部門罰) references bumen(部門號)
或者在創(chuàng)建表的時候添加外鍵
foreign key (部門號) references bumen(部門號)放在最后,用”,”與列分隔
數(shù)據(jù)庫中,一對多的時候外鍵設置在多的那張表嗎?如果一對一的時候,外鍵應該設置在哪里?多對多的時候,
首先,外鍵引用的那個列在主表中必須是主鍵列或者唯一列。
所以1:n的肯定把外鍵建立在n的那張表上。
1:1,一般要看誰是主表,誰是附屬表,外鍵當然建立在附屬表中。
n:m的情況,需要建立一個關系表,兩個原表和其關系分別是1:n,1
:m
數(shù)據(jù)庫語句怎么加外鍵
1,創(chuàng)建表的時候添加:foreign key (你的外鍵) references (表名)(字段名);
2,創(chuàng)建好之后修改:
alter table dbo.mh_User
add constraint FK_mh_User_…_id foreign key (你的外鍵) references (表名)(字段名);
Sql server怎樣創(chuàng)建主外鍵關系
在要設置關系的外鍵表中,右擊關系→添加→在表和列規(guī)范中選擇關聯(lián)的主表再選擇外鍵表與其關聯(lián)的字段
數(shù)據(jù)庫同時有主鍵和外鍵怎么表
主頌褲鍵是能確定一條記錄的唯一標識野賀簡,比如,一條記錄包括身份正號,姓名,年齡。 身份證號是唯一能確定你這個人的,其他都可能有重拍派復,所以,身份證號
2. 外鍵用于與另一張表的關聯(lián)。是能確定另一張表記錄的字段,用于保持
關系型數(shù)據(jù)庫中的一條記錄中有若干個屬性,若其中某一個屬性組(注意是組)能唯一標識一條記錄,該屬性組就可以成為一個主鍵
比如
學生表晌野(學號,姓衡鉛名,性別,班級)
其中每個學生的學號是唯一的,學號就是一宴攔喊個主鍵
課程表(課程編號,課程名,學分)
其中課程編號是唯一的,課程編號就是一個主鍵
成績表(學號,課程號,成績)
成績表中單一一個屬性無法唯一標識一條記錄,學號和課程號的組合才可以唯一標識一條記錄,所以 學號和課程號的屬性組是一個主鍵
數(shù)據(jù)庫外鍵
所謂外鍵:如果公鑰關系中是主鍵,然后在公共密鑰被稱為另一個關系的外鍵前純。因此,外鍵關系代表了兩者之間的聯(lián)系。與另一個表的主鍵的外鍵關系被稱為主表的外鍵被稱為主表,從表中的表。至于主鍵:主鍵被挑出唯一確定的候選鍵表行。一個表只能有一個主鍵??梢苑Q為主鍵與主鍵。正如我們可以看到:如果名稱是B表的主鍵,表A作為名稱或外鍵。從上述定義表A表B是慧漏咐主表中搜鄭,表A表B表,
關于關系型數(shù)據(jù)庫 外鍵的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。
成都創(chuàng)新互聯(lián)建站主營:成都網(wǎng)站建設、網(wǎng)站維護、網(wǎng)站改版的網(wǎng)站建設公司,提供成都網(wǎng)站制作、成都網(wǎng)站建設、成都網(wǎng)站推廣、成都網(wǎng)站優(yōu)化seo、響應式移動網(wǎng)站開發(fā)制作等網(wǎng)站服務。
網(wǎng)頁題目:外鍵在關系型數(shù)據(jù)庫中的作用與實現(xiàn)方式(關系型數(shù)據(jù)庫外鍵)
本文路徑:http://m.5511xx.com/article/coggspo.html


咨詢
建站咨詢
