MySQL是在關系型數據庫中極為出色的一個開源的關系型數據庫管理系統。其具有高效的基于SQL的數據處理能力和極佳的可擴展性,被廣泛用于企業級應用和人工智能領域。其中,使用兩個表及子查詢查詢的操作也較為常見。
在MySQL中,多張表聯合查詢時需要使用JOIN語句及其相關操作。下面示范兩張表students和grades,在students表中存儲學生的基本信息和選課情況,在grades表中存儲各門課程的成績信息以及對應的學生編號。
CREATE TABLE students ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, major VARCHAR(50) NOT NULL, age INT NOT NULL, gender VARCHAR(10) NOT NULL, course_id INT NOT NULL, FOREIGN KEY (course_id) REFERENCES courses(id) ); CREATE TABLE grades ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, student_id INT NOT NULL, course_id INT NOT NULL, score FLOAT NOT NULL, FOREIGN KEY (student_id) REFERENCES students(id), FOREIGN KEY (course_id) REFERENCES courses(id) );
通過以上代碼可以看出,students表與grades表中都包含了一個coures_id字段,這意味著它們具有連接的可能。
而在實際查詢時,一般會使用如下子查詢語句:
SELECT name, major, age, gender, (SELECT AVG(score) FROM grades WHERE grades.student_id = students.id) AS average_score FROM students;
在這個語句中,我們使用了子查詢 AVG(score) FROM grades WHERE grades.student_id = students.id,這個子查詢即為我們需要選取的相關信息。在SELECT的時候,使用了一個類似于別名的語句將結果指定到average_score中,從而完成查詢。
綜上,MySQL的兩張表及子查詢相輔相成,一般應用于數據的關聯處理中,具有很高的應用價值。