數據庫關係簡介

數據庫術語“關係”或“關係”描述表格中數據的連接方式。

數據庫領域的新手往往很難看到數據庫和電子表格之間的差異。 他們看到數據表並認識到數據庫允許您以新的方式組織和查詢數據 ,但未能掌握數據之間關係的重要性,這些關係為關係數據庫技術提供了名稱。

通過關係可以用強大的方式描述不同數據庫表之間的關係。 這些關係可以用來執行強大的跨表查詢,即連接。

數據庫關係的類型

有三種不同類型的數據庫關係,每種關係都根據關係中可能涉及的表行數進行命名。 這三種關係類型中的每一種都存在於兩個表之間。

自我參照關係:特例

當只涉及一個表時,自引用關係就會發生。 一個常見的例子是僱員表,其中包含有關每位員工的主管的信息。 每位主管也是一名僱員,並有自己的主管。 在這種情況下,存在一對多的自引用關係,因為每個員工都有一個主管,但每個主管可能有多個員工。

使用外鍵創建關係

通過指定一個外鍵,可以在表之間創建關係。該鍵告訴關係數據庫這些表是如何關聯的。 在許多情況下,表A中的列包含從表B引用的主鍵。

再次考慮教師和學生表格的例子。 Teachers表格只包含一個ID,一個名稱和一個課程列:

教師
InstructorID 老師的名字 課程
001 John Doe 英語
002 簡Schmoe 數學

Students表包含一個ID,名稱和一個外鍵列:

學生們
學生卡 學生姓名 Teacher_FK
0200 洛厄爾史密斯 001
0201 Brian Short 001
0202 科基·門德斯 002
0203 莫妮卡瓊斯 001

Students表中的Teacher_FK列引用了Teachers表中教師的主鍵值

通常,數據庫設計人員將在列名稱中使用“PK”或“FK”來輕鬆識別主鍵或外鍵列。

請注意,這兩個表格說明了教師和學生之間的一對多關係。

關係和參照完整性

一旦將一個外鍵添加到表中,您就可以創建一個數據庫約束來強制兩個表之間的參照完整性 。 這確保了表格之間的關係保持一致。 當一個表具有指向另一個表的外鍵時,參照完整性的概念指出,表B中的任何外鍵值都必須引用表A中的現有記錄。

實現關係

根據您的數據庫,您可以通過不同的方式實現表格之間的關係。 Microsoft Access提供了一個嚮導,可輕鬆讓您鏈接表格並強制執行參照完整性。

如果您直接編寫SQL,則應首先創建表Teacher,並將ID列聲明為主鍵:

CREATE TABLE教師(

InstructorID INT AUTO_INCREMENT PRIMARY KEY,
Teacher_Name VARCHAR(100),
課程VARCHAR(100)
);

在創建Students表時,您將Teacher_FK列聲明為引用Teachers'表中InstructorID列的外鍵:

CREATE TABLE學生(
StudentID INT AUTO_INCREMENT PRIMARY KEY,
Student_Name VARCHAR(100),Teacher_FK INT,
FOREIGN KEY(Teacher_FK)參考教師(InstructorID))
);

使用關係來加入表格

一旦在數據庫中創建了一個或多個關係,就可以通過使用SQL JOIN查詢來合併來自多個表的信息,從而充分發揮其功能。 最常見的連接類型是SQL INNER JOIN或簡單連接。 這種類型的聯接從多個表中返回滿足聯接條件的所有記錄。 例如,此JO​​IN條件將返回Student表名中的外鍵與Teachers表中的主鍵相匹配的Student_Name,Teacher_Name和Course:

SELECT Students.Student_Name,Teachers.Teacher_Name,Teachers.Course
從學生
INNER JOIN教師
ON Students.Teacher_FK = Teachers.InstructorID;

這個語句產生一個如下所示的表格:

從SQL連接語句返回表

Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica JonesJohn DoeEnglish