在MySQL中,表與表之間有多種關系,包括一對一、一對多、多對多等關系。這些關系可通過使用外鍵來建立連接。
CREATE TABLE Orders ( OrderID int NOT NULL, OrderNumber int NOT NULL, PersonID int, PRIMARY KEY (OrderID), FOREIGN KEY (PersonID) REFERENCES Persons(PersonID) );
以上代碼展示了一個創建訂單表的示例,其中PersonID為外鍵,與Persons表中的PersonID關聯。這樣,我們就可以通過此外鍵來建立訂單與人之間的關系。
對于一對多的關系,我們可通過在“一”方表中建立外鍵來連接“多”方表。如以下示例所示:
CREATE TABLE Customers ( CustomerID int NOT NULL, FirstName varchar(255), LastName varchar(255), PRIMARY KEY (CustomerID) ); CREATE TABLE Orders ( OrderID int NOT NULL, OrderNumber int NOT NULL, CustomerID int, PRIMARY KEY (OrderID), FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID) );
以上代碼中,訂單表中的CustomerID字段與顧客表中的CustomerID字段關聯,建立了顧客與訂單之間的一對多關系。
如果需要建立多對多的關系,我們需要使用中間表來連接兩個表。如下面的示例所示:
CREATE TABLE Students ( StudentID int NOT NULL, StudentName varchar(255), PRIMARY KEY (StudentID) ); CREATE TABLE Courses ( CourseID int NOT NULL, CourseName varchar(255), PRIMARY KEY (CourseID) ); CREATE TABLE Student_Courses ( StudentID int, CourseID int, PRIMARY KEY (StudentID,CourseID), FOREIGN KEY (StudentID) REFERENCES Students(StudentID), FOREIGN KEY (CourseID) REFERENCES Courses(CourseID) );
以上代碼中,通過創建中間表Student_Courses來建立學生與課程之間的多對多關系,其中StudentID和CourseID字段均為外鍵。