在MySQL數(shù)據(jù)庫中,每個(gè)表都可以通過外碼來連接其他表。外碼可以讓我們?cè)诙鄠€(gè)表中建立關(guān)系,形成更完整的數(shù)據(jù)模型,方便進(jìn)行數(shù)據(jù)的查詢和管理。
首先,我們需要在表中增加外碼列,用來存儲(chǔ)要連接的表中對(duì)應(yīng)記錄的主碼。例如,我們有一個(gè)學(xué)生表和一個(gè)課程表,我們希望通過學(xué)生表中的外碼列來連接課程表。
CREATE TABLE student ( id INT, name VARCHAR(50), course_id INT, FOREIGN KEY (course_id) REFERENCES course(id) ); CREATE TABLE course ( id INT, name VARCHAR(50) );
在上面的代碼中,我們?cè)趯W(xué)生表中增加了一個(gè)外碼列course_id,用來存儲(chǔ)學(xué)生所報(bào)名的課程的主碼。在創(chuàng)建外碼時(shí),我們使用了FOREIGN KEY關(guān)鍵字來指定該列為外碼列,并通過REFERENCES關(guān)鍵字來指定該列所連接的表和主碼。
接下來,我們需要在課程表中增加一個(gè)主碼列id,該列與學(xué)生表中的course_id列對(duì)應(yīng)。
CREATE TABLE course ( id INT PRIMARY KEY, name VARCHAR(50) );
在主碼列創(chuàng)建完成后,我們就可以通過連接兩個(gè)表的主碼和外碼來進(jìn)行查詢。
SELECT student.name, course.name FROM student INNER JOIN course ON student.course_id = course.id;
在上面的代碼中,我們使用INNER JOIN關(guān)鍵字來連接兩個(gè)表,通過WHERE子句來指定連接條件。通過連接查詢,我們就可以查詢出學(xué)生所報(bào)名的課程名稱。