栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

多对多关系示例

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

多对多关系示例

示例场景:大学中的学生和课程。给定的学生可能正在参加几门课程,并且自然而然地,一门课程通常会有很多学生。

示例表,简单设计:

CREATE TABLE `Student` (    `StudentID` INT UNSIGNED NOT NULL AUTO_INCREMENT,    `FirstName` VARCHAr(25),    `LastName` VARCHAr(25) NOT NULL,    PRIMARY KEY (`StudentID`)) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ciCREATE TABLE `Course` (    `CourseID` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,    `Code` VARCHAr(10) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL,    `Name` VARCHAr(100) NOT NULL,    PRIMARY KEY (`CourseID`)) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ciCREATE TABLE `CourseMembership` (    `Student` INT UNSIGNED NOT NULL,    `Course` SMALLINT UNSIGNED NOT NULL,    PRIMARY KEY (`Student`, `Course`),    ConSTRAINT `Constr_CourseMembership_Student_fk`        FOREIGN KEY `Student_fk` (`Student`) REFERENCES `Student` (`StudentID`)        ON DELETe CASCADE ON UPDATE CASCADE,    ConSTRAINT `Constr_CourseMembership_Course_fk`        FOREIGN KEY `Course_fk` (`Course`) REFERENCES `Course` (`CourseID`)        ON DELETE CASCADE ON UPDATE CASCADE) ENGINE=INNODB CHARACTER SET ascii COLLATE ascii_general_ci

查找所有注册课程的学生:

SELECT    `Student`.*FROM    `Student`    JOIN `CourseMembership` ON `Student`.`StudentID` = `CourseMembership`.`Student`WHERe    `CourseMembership`.`Course` = 1234

查找给定学生参加的所有课程:

SELECt    `Course`.*FROM    `Course`    JOIN `CourseMembership` ON `Course`.`CourseID` = `CourseMembership`.`Course`WHERe    `CourseMembership`.`Student` = 5678


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/420945.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号