【发布时间】:2020-12-26 10:38:44
【问题描述】:
我的表是:
student{student_id asprimary key,firstName,lastName};
teacher{teacher_id asprimary key,firstName,lastName};
course{course_id asprimary key,courseName, credits,teacher_id(来自教师表的外键)}
class{class_id asprimary key,roomNumber,teacer_id forein_key from teacher,course_id forein key from course}
classStudent{student_id 来自学生的外键,class_id 来自班级的外键}
我想检索特定学生 ID 的课程名称、教师姓名、房间号。
我的数据库:
CREATE TABLE `student` (
`student_id` int(10) NOT NULL,
`firstName` varchar(20) NOT NULL,
`lastName` varchar(20) NOT NULL,
`phone_number` int(8) NOT NULL,
`Email` varchar(40) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `teacher` (
`teacher_id` int(10) NOT NULL,
`firstName` varchar(20) NOT NULL,
`lastName` varchar(20) NOT NULL,
`phone_number` int(8) NOT NULL,
`Email` varchar(40) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `course` (
`course_id` varchar(10) NOT NULL,
`Course_Name` varchar(20) NOT NULL,
`Description` varchar(100) NOT NULL,
`credits` int(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
ALTER TABLE `class`
ADD PRIMARY KEY (`class_id`),
ADD KEY `classTeacher` (`teacher_id`),
ADD KEY `classCourse` (`course_id`);
ALTER TABLE `classstudent`
ADD PRIMARY KEY (`class_id`,`student_id`),
ADD KEY `studentClass` (`student_id`);
-- Constraints for table `class`
--
ALTER TABLE `class`
ADD CONSTRAINT `classCourse` FOREIGN KEY (`course_id`) REFERENCES `course` (`course_id`) ON UPDATE CASCADE,
ADD CONSTRAINT `classTeacher` FOREIGN KEY (`teacher_id`) REFERENCES `teacher` (`teacher_id`);
--
-- Constraints for table `classstudent`
--
ALTER TABLE `classstudent`
ADD CONSTRAINT `classstudent_ibfk_1` FOREIGN KEY (`class_id`) REFERENCES `class` (`class_id`),
ADD CONSTRAINT `studentClass` FOREIGN KEY (`student_id`) REFERENCES `student` (`student_id`);
ALTER TABLE `classstudent`
ADD PRIMARY KEY (`class_id`,`student_id`),
ADD KEY `studentClass` (`student_id`);
我也是 stack-overflow 的新手,所以请告诉我是否有任何关于我的问题的说明。
【问题讨论】: