MySQL作為一種關系型數據庫,其數據表之間的關系至關重要。在MySQL中,數據表之間的關系主要有以下3種,即:
1. 一對一關系
CREATE TABLE person ( person_id INT PRIMARY KEY, name VARCHAR(255), address VARCHAR(255), phone_number VARCHAR(20) ); CREATE TABLE passport ( passport_id INT PRIMARY KEY, passport_number VARCHAR(20), person_id INT UNIQUE, FOREIGN KEY (person_id) REFERENCES person(person_id) );
上述代碼中,person表和passport表之間是一對一關系。其中,passport表的person_id字段與person表的主鍵person_id字段關聯,以此確保每個人只有一個護照。
2. 一對多關系
CREATE TABLE department ( department_id INT PRIMARY KEY, department_name VARCHAR(255) ); CREATE TABLE employee ( employee_id INT PRIMARY KEY, name VARCHAR(255), address VARCHAR(255), phone_number VARCHAR(20), department_id INT, FOREIGN KEY (department_id) REFERENCES department(department_id) );
上述代碼中,department表和employee表之間是一對多關系。其中,employee表的department_id字段與department表的主鍵department_id字段關聯,以此確保每個員工只屬于一個部門。
3. 多對多關系
CREATE TABLE course ( course_id INT PRIMARY KEY, course_name VARCHAR(255) ); CREATE TABLE student ( student_id INT PRIMARY KEY, name VARCHAR(255), address VARCHAR(255), phone_number VARCHAR(20) ); CREATE TABLE student_course ( student_id INT, course_id INT, PRIMARY KEY (student_id, course_id), FOREIGN KEY (student_id) REFERENCES student(student_id), FOREIGN KEY (course_id) REFERENCES course(course_id) );
上述代碼中,student表和course表之間是多對多關系。為了建立多對多關系,我們需要引入第三張表student_course。其中,student_course表包含兩個字段student_id和course_id,這兩個字段同時又是student表和course表的外鍵,以此確保一個學生可以選修多門課程,而一門課程也可以被多個學生選修。