MySQL是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng),其數(shù)據(jù)存儲(chǔ)的基本單位是表,表之間存在不同的關(guān)系。
在MySQL中,主表和副表關(guān)系是一種常見的表之間的關(guān)系。主表與副表之間的關(guān)系可以用外鍵來表示,主表中的一列值會(huì)對(duì)應(yīng)著副表中的一列值,從而實(shí)現(xiàn)了關(guān)聯(lián)查詢。
下面以學(xué)生和成績(jī)表為例,來解釋主表和副表關(guān)系。
-- 學(xué)生表 CREATE TABLE student ( id INT NOT NULL PRIMARY KEY, name VARCHAR(50) NOT NULL, gender CHAR(1) NOT NULL, age INT NOT NULL ); -- 成績(jī)表 CREATE TABLE score ( id INT NOT NULL PRIMARY KEY, student_id INT NOT NULL, subject VARCHAR(20) NOT NULL, score INT NOT NULL, FOREIGN KEY (student_id) REFERENCES student(id) );
在上述代碼中,學(xué)生表是主表,成績(jī)表是副表。成績(jī)表中的student_id列通過FOREIGN KEY約束與學(xué)生表中的id列建立了關(guān)聯(lián)關(guān)系,即學(xué)生表中的每一個(gè)id值都對(duì)應(yīng)著成績(jī)表中的一個(gè)student_id值。
通過主表和副表的關(guān)系,可以實(shí)現(xiàn)多種查詢,如查找某個(gè)學(xué)生的所有成績(jī)、查找某個(gè)科目的所有學(xué)生成績(jī)等。同時(shí),主表和副表的關(guān)系還可以幫助我們管理數(shù)據(jù),如限制刪除主表中已經(jīng)有關(guān)聯(lián)數(shù)據(jù)的記錄等。