MySQL是一個關系型數據庫管理系統,本次實驗我們將學習如何進行多表查詢操作。在實驗中,我們使用了以下四個表格:
CREATE TABLE department ( dept_name VARCHAR(20) NOT NULL, building VARCHAR(15) NOT NULL, budget INT NOT NULL, PRIMARY KEY (dept_name) ); CREATE TABLE instructor ( ID INT NOT NULL, name VARCHAR(20) NOT NULL, dept_name VARCHAR(20) NOT NULL, salary NUMERIC(8,2) NOT NULL, PRIMARY KEY (ID), FOREIGN KEY (dept_name) REFERENCES department (dept_name) ); CREATE TABLE teaches ( ID INT NOT NULL, course_id VARCHAR(8) NOT NULL, sec_id VARCHAR(8) NOT NULL, semester VARCHAR(6) NOT NULL, year INT NOT NULL, PRIMARY KEY (ID, course_id, sec_id, semester, year), FOREIGN KEY (ID) REFERENCES instructor (ID), FOREIGN KEY (course_id, sec_id, semester, year) REFERENCES section (course_id, sec_id, semester, year) ); CREATE TABLE student ( ID INT NOT NULL, name VARCHAR(20) NOT NULL, dept_name VARCHAR(20) NOT NULL, tot_cred INT NOT NULL, PRIMARY KEY (ID), FOREIGN KEY (dept_name) REFERENCES department (dept_name) );
我們使用以下SQL語句對這些表格進行了多表查詢:
SELECT * FROM student s, takes t, teaches tch, instructor i, course c WHERE s.ID = t.ID AND t.course_id = tch.course_id AND t.sec_id = tch.sec_id AND t.semester = tch.semester AND t.year = tch.year AND tch.ID = i.ID AND tch.course_id = c.course_id AND tch.sec_id = c.sec_id AND tch.semester = 'Fall' AND tch.year = 2021;
這個查詢語句將返回在2021年秋季學期開設的所有課程的學生信息。我們使用了多個表格之間的連接,其中"="用于連接相同列名的列。同時,我們使用了"AND"運算符將多個條件連接在一起。
通過本次實驗,我們學習了如何在MySQL中進行多表查詢操作,同時也對SQL語言有了更深入的理解。