色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql多對多關系

江奕云2年前8瀏覽0評論

MYSQL是一種非常流行的數據庫管理系統,支持多對多關系,可以用于處理復雜的數據存儲和查詢。以下是關于MYSQL多對多關系的相關知識。

在MYSQL中,多對多關系可以用多個表來存儲數據。例如,你可能有兩個表,一個存儲學生的信息,另一個存儲課程的信息。當一個學生可以選修多個課程,而一個課程也可以被多個學生選修,就需要使用多對多關系。

CREATE TABLE `students` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
CREATE TABLE `courses` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
CREATE TABLE `student_course` (
`student_id` int(11) NOT NULL,
`course_id` int(11) NOT NULL,
PRIMARY KEY (`student_id`,`course_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

以上代碼創建了三個表,students存放學生信息,courses存放課程信息,student_course存放學生和課程的關系信息。其中,student_course表的主鍵包含了學生ID和課程ID,這樣可以保證每個學生和課程的關系為唯一性。

添加數據時,需要向三個表中分別添加數據,而且還需要在student_course表中添加學生和課程的關系。下面是一個示例:

INSERT INTO `students`(name) VALUES ('小明'),('小王'),('小紅');
INSERT INTO `courses`(name) VALUES ('數學'),('英語'),('計算機');
INSERT INTO `student_course` (student_id, course_id) VALUES (1,1),(1,2),(2,2),(3,1),(3,3);

以上代碼向三個表中添加了一些數據,其中student_course表中的數據表示,小明選修了數學和英語,小王選修了英語,小紅選修了數學和計算機。

查詢數據時,可以使用JOIN語句來查詢學生和課程的關系。以下是一個查詢學生選修課程的示例:

SELECT students.name, courses.name
FROM students
JOIN student_course ON students.id=student_course.student_id
JOIN courses ON student_course.course_id=courses.id;

以上代碼查詢了學生和選修的課程,結果如下:

小明    數學
小明    英語
小王    英語
小紅    數學
小紅    計算機

通過以上示例,可以看出MYSQL支持多對多關系,可以用多個表來存儲數據,并且可以使用JOIN語句進行查詢操作。