當前位置:首頁 » 操作系統 » 外鍵資料庫

外鍵資料庫

發布時間: 2022-12-25 01:36:20

1. 資料庫中外鍵的概念及作用。

表A中有欄位(如身份證號)做了主鍵,表B中也有這個欄位(身份證號),這里的身份證號一定來自表A同樣欄位里的內容,那麼表B的這個欄位就叫表A欄位的外鍵,也就是兩個表以身份證號這個欄位建立了聯系。

表A中身份證號欄位裡面的身份證號一定是唯一的,不能有重復,而表B裡面的同一個身份證號可以出現多次。這稱為表A身份證號欄位與表B身份證號欄位建立了一對多的關系。

2. 資料庫的主鍵和外鍵有什麼區別

主鍵:
概念
主關鍵字(主鍵,primary key)是被挑選出來,作表的行的惟一標識的候選關鍵字。一個表只有一個主關鍵字。主關鍵字又可以稱為主鍵。 主鍵可以由一個欄位,也可以由多個欄位組成,分別成為單欄位主鍵或多欄位主鍵。
作用
1)保證實體的完整性;
2)加快資料庫的操作速度
3) 在表中添加新記錄時,ACCESS會自動檢查新記錄的主鍵值,不允許該值與其他記錄的主鍵值重復。
4) ACCESS自動按主鍵值的順序顯示表中的記錄。如果沒有定義主鍵,則按輸入記錄的順序顯示表中的記錄。
特點
1) 一個表中只能有一個主鍵。如果在其他欄位上建立主鍵,則原來的主鍵就會取消。在ACCESS中,雖然主鍵不是必需的,但最好為每個表都設置一個主鍵。
2)主鍵的值不可重復,也不可為空(NULL)。

外鍵:

如果公共關鍵字在一個關系中是主關鍵字,那麼這個公共關鍵字被稱為另一個關系的外鍵。由此可見,外鍵表示了兩個關系之間的聯系。以另一個關系的外鍵作主關鍵字的表被稱為主表,具有此外鍵的表被稱為主表的從表。外鍵又稱作外關鍵字。

以上是摘抄的,簡單來說,主鍵就是一個關系中作為標識用的,而外鍵是其他關系中的屬性,使用外鍵可避免冗餘。

3. 資料庫中的外鍵是什麼意思

外鍵(FK)是用於建立和加強兩個表數據之間的鏈接的一列或多列。通過將保存表中主鍵值的一列或多列添加到另一個表中,可創建兩個表之間的鏈接。這個列就成為第二個表的外鍵。

當創建或更改表時可通過定義FOREIGNKEY約束來創建外鍵。

例如,資料庫pubs中的titles表與publishers表有鏈接,因為在書名和出版商之間存在邏輯聯系。

titles表中的pub_id列與publishers表中的主鍵列相對應。titles表中的pub_id列是到publishers表的外鍵。

(3)外鍵資料庫擴展閱讀:

保持數據一致性,完整性,主要目的是控制存儲在外鍵表中的數據。 使兩張表形成關聯,外鍵只能引用外表中的列的值或使用空值。

學號在成績表(表2)中是主鍵,在學生表(表1)中是外鍵。如果不使用外鍵,表1的學號欄位插了一個值(比如20140999999),但是這個值在表2中並沒有,這個時候,資料庫允許插入,並不會對插入的數據做關系檢查。

然而在設置外鍵的情況下,插入表1學號欄位的值必須要求在表1的學號欄位能找到。 同時,如果要刪除表2的某個學號欄位,必須保證表2中沒有引用該欄位值的列,否則就沒法刪除。

這就是所謂的保持數據的一致性和完整性。如右圖,如果表1還引用表2的某個學號,卻把表1中的這個學號刪了,表2就不知道這個學號對應的學生是哪個學生。

4. 資料庫語句怎麼加外鍵

1、以具有 DBA 許可權的用戶身份連接到資料庫,執行 ALTER TABLE 語句,將表定義更新為包括外鍵定義。創建一個名為 Skills 的表,其中包含潛在技能列表,然後創建一個與 Skills 表具有外鍵關系、名為 EmployeeSkills 的表。

5. 在資料庫中的外鍵與主鍵的關系是什麼,為什麼要設外鍵

1、外鍵的概念:外鍵是關系資料庫三個完整性的五個約束條件之一,是表與表之間建立的一種關系。在Oracle資料庫的scott/tiger用戶中,表Dept和Emp通過外鍵進行了關聯。在這里Dept表叫主表,Emp表叫從表,外鍵是欄位Deptno。x0dx0a2、加入外鍵的條件:a、兩個表有相同屬性欄位,取值范圍相同;x0dx0a b、外鍵在主表中是主鍵或者是唯一欄位;x0dx0a c、外鍵可以是多個欄位的組合。x0dx0a 記住一句話:從表的外鍵是主表的主鍵或唯一欄位。

6. 資料庫外鍵

所謂外鍵:如果公鑰關系中是主鍵,然後在公共密鑰被稱為另一個關系的外鍵。因此,外鍵關系代表了兩者之間的聯系。與另一個表的主鍵的外鍵關系被稱為主表的外鍵被稱為主表,從表中的表。至於主鍵:主鍵被挑出唯一確定的候選鍵錶行。一個表只能有一個主鍵。可以稱為主鍵與主鍵。正如我們可以看到:如果名稱是B表的主鍵,表A作為名稱或外鍵。從上述定義表A表B是主表中,表A表B表,

7. 資料庫外鍵約束

資料庫外鍵約束:這個是實現表與表之間的約束,從表的欄位值必須在主表中。存在外鍵約束畢竟是一個約束,只是保證數據完整性的一個手段。

8. 資料庫中的外鍵是什麼意思

外鍵也稱為外碼或外部關鍵字。如果一個屬性集不是所在關系的關鍵字,但是是其他關系的關鍵字,則該屬性集稱為外部關鍵字。

在關系資料庫中可以通過外鍵使兩個關系關聯,這種聯系通常是一對多的,其中主關系稱為被參照關系,從關系稱為參照關系。

9. 資料庫之主鍵外鍵

1,主鍵約束 (table的唯一標識)

能夠作為主鍵列的特點:該列不能為空,不能有重復值出現

創建表時指定主鍵的兩種方式:

CREATE TABLE stu(

sid CHAR(6) PRIMATY KEY,

sname VARCHAR(20),

age INT,

gender VARCHER(10)

);

指定sid列為主鍵列

CREATE TABLE stu(

sid CHAR(6),

sname VARCHAR(20),

age INT,

gender VARCHER(10),

PRIMARY KEY(sid)

);

指定sid列為主鍵列

修改表時指定主鍵:ALTER TABLE stu ADD PRIMATY KEY(sid);

刪除主鍵:ALTER TABLE stu DROP PRIMARY KEY;

2,主鍵自增長

因為主鍵列的特性是:必須唯一,不能為空,所以我們通常會指定主鍵為整形,然後設置其自動增長

創建表時指定主鍵自增長:

CREATE TABLE stu(

sid INT PRIMARY KEY AUTO_INCREMENT,

sname VARCHAR(20),

age INT,

gender VARCHAR(10)

);

修改表時設置主鍵自增長:ALTER TABLE stu 

3,非空約束

CREATE TABLE stu(

sid INT PRIMARY KEY AUTO_INCREMENT,

sname VARCHAR(20) NOT NULL,

age INT,

gender VARCHAR(10)

);

對sname列設置了非空約束

4,唯一約束

某些列不能設置重復的值,所以可以對列添加唯一約束

CREATE TABLE stu(

sid INT PRIMARY KEY AUTO_INCREMENT,

sname VARCHAR(20) NOT NULL UNIQUE,

age INT,

gender VARCHAR(10)

);

6,外鍵約束

外鍵特點:外鍵必須是另一個表的主鍵的值(外鍵要引用主鍵!),外鍵可以重復,外鍵可以為空,一張表可以有多個外鍵!

CREATE TABLE dept( //部門表

deptno INT  PRIMARY KEY AUTO_INCREMENT,

deptname CHAR(20)

);

INSERT INTO dept VALUES(10,『研發部』);

INSERT INTO dept VALUES(20,『人力部』);

INSERT INTO dept VALUES(30,『財務部』);

CREATE TABLE emp(   //員工表

empno INT PRIMARY KEY AUTO_INCREMENT,

ename VARCHAR(50),

dno INT, //員工所屬部門(外鍵),

CONSTRAINT fk_emp_dept FOREIGN KEY(dno) REFERENCES dept(deptno)

);

INSERT INTO emp(empno,ename)  VALUES(NULL,『張三』),//外鍵可以不傳入值

INSERT INTO emp(empno,ename)  VALUES(NULL,『李四』,10),//外鍵可以重復

INSERT INTO emp(empno,ename)  VALUES(NULL,『王五』,10),

INSERT INTO emp(empno,ename)  VALUES(NULL,『趙六』,80),//dept表沒有主鍵值為80的記錄,sql客戶端編譯報錯

7,一對一關系模型

創建老公表

CREATE TABLE hashand(

hid INT PRIMARY KEY AUTO_INCREMENT,

hname VARCHAR(50),

);

INSERT INTO hashand VALUES(NULL,『劉備』);

INSERT INTO hashand VALUES(NULL,『關羽』);

INSERT INTO hashand VALUES(NULL,『張飛』);

SELECT * FROM hashand

//創建老婆表

CREATE TABLE wife(

wid INT PRIMARY KEY AUTO_INCREMENT,

wname VARCHAR(50),

CONSTRAINT fk_wife_hashand FOREIGN KEY(wid)  REFERENCES hashand(hid)

)

/**

wid:

1,非空

2,唯一

3,引用hid

*/

INSERT INTO wife VALUES(1,『楊貴妃』);

INSERT INTO wife VALUES(2,『妲己』);

INSERT INTO wife VALUES(3,『褒姒』);

SELECT * FROM wife;

對於一對一關系模型從表的主鍵即是外鍵,例如老公和老婆的關系模型,一個老公只能有一個老婆,一個老婆只能有一個老公

對於一對多關系模型主表的主鍵即是從表的外鍵,例如訂單和用戶的關系模型,一個用戶可以下單多次,對應多個訂單,而一個訂單只能屬於一個用戶

對於多對多關系模型沒有主表和從表之分,需要建立第三張表來記錄這兩張表的外鍵,建立兩個外鍵,分別引用這兩張表的主鍵

8,多對多關系模型

在表中簡歷多對多關系需要使用中間表,即需要三張表,在中間表中使用兩個外鍵,分別引用其他兩個表的主鍵,例如學生和老師的關系模型,一個老師可以有多個學生,一個學生可以有多個老師

CREATE TABLE student(

sid INT PRIMARY KEY AUTO_INCREMENT,

sname CHAR(40)

);

CREATE TABLE teacher(

tid INT PRIMARY KEY AUTO_INCREMENT,

tname CHAR(40)

);

CREATE TABLE stu_tea(

sid INT,

tid INT,

ADD CONSTRAINT fk_stu_tea_sid FOREIGN KEY(sid) REFERENCES student(sid),

ADD CONSTRAINT fk_stu_tea_tid FOREIGN KEY(tid) REFERENCES teacher(tid)

);

INSERT INTO student VALUES(NULL,『劉德華』);

INSERT INTO student VALUES(NULL,『梁朝偉』);

INSERT INTO student VALUES(NULL,『黃日華』);

INSERT INTO student VALUES(NULL,『苗僑偉』);

INSERT INTO student VALUES(NULL,『湯鎮業』);

INSERT INTO teacher VALUES(NULL,『崔老師』);

INSERT INTO teacher VALUES(NULL,『劉老師』);

INSERT INTO teacher VALUES(NULL,『石老師』);

SELECT * FROM student;

SELECT * FROM teacher;

INSERT INTO stu_tea VALUES(1,1); //劉德華是崔老師的學生

INSERT INTO stu_tea VALUES(2,1); //梁朝偉是崔老師的學生

INSERT INTO stu_tea VALUES(3,1);//黃日華是崔老師的學生

INSERT INTO stu_tea VALUES(4,1);//苗僑偉是崔老師的學生

INSERT INTO stu_tea VALUES(5,1);//湯鎮業是崔老師的學生

INSERT INTO stu_tea VALUES(2,2);//梁朝偉是劉老師的學生

INSERT INTO stu_tea VALUES(3,2);//黃日華是劉老師的學生

INSERT INTO stu_tea VALUES(4,2);//苗僑偉是劉老師的學生

INSERT INTO stu_tea VALUES(3,3);//黃日華是石老師的學生

INSERT INTO stu_tea VALUES(5,3);//湯鎮業是劉老師的學生

SELECT * FROM stu_tea;

這時在stu_tea這個中間表中的每條記錄都是來說明student表和teacher表的關系的

例如在stu_tea表中的記錄:sid為1001,tid為2001,這說明編號為1001的學生有一個編號為2001的老師

sid          tid

1001       2001 //編號為1001的學生有一個編號為2001的老師

1001       2002 //編號為1001的學生有一個編號為2002的老師

1001       2003 //編號為1001的學生有一個編號為2003的老師

1002       2001 //編號為2001的老師有一個編號為1002的學生

1002       2004 //編號為2004的老師有一個編號為1002的學生

9,合並結果集

要求要合並的結果集中,列的類型和列數相同

UNION,去除重復行,UNION ALL,不去除重復行

熱點內容
水密碼為什麼是塑料 發布:2025-07-13 04:06:40 瀏覽:818
電子印章加密 發布:2025-07-13 04:06:05 瀏覽:268
18款奧迪a4進取型有哪些配置 發布:2025-07-13 03:56:51 瀏覽:90
所以醫院的密碼是多少 發布:2025-07-13 03:52:35 瀏覽:719
怎麼解決配置文件 發布:2025-07-13 03:51:54 瀏覽:86
新聞資料庫設計 發布:2025-07-13 03:32:46 瀏覽:974
數據集資料庫 發布:2025-07-13 03:15:23 瀏覽:35
谷歌的雲計算伺服器叫什麼名字 發布:2025-07-13 03:06:20 瀏覽:505
快動網c語言 發布:2025-07-13 02:55:54 瀏覽:816
社保卡怎麼查詢密碼是多少 發布:2025-07-13 02:53:24 瀏覽:237