有3个表,表结构如下:
student 学生表 (学号,姓名,性别,年龄,组织部门)
course 课程表 (编号,课程名称)
sc 选课表 (学号,课程编号,成绩)
- 写一个SQL语句,查询选修了"计算机原理"的学生学号和姓名。
- 写一个SQL语句,查询"周星驰"同学选修了的课程名字。
- 写一个SQL语句,查询选修了5门课程的学生学号和姓名。
参考解答
1. 查询选修了"计算机原理"的学生学号和姓名
select stu.sno, stu.sname from Student stu where sno in
(
select sc.sno from sc inner join course c on sc.cno=c.cno
where c.cname='计算机原理'
);
2. 查询"周星驰"同学选修了的课程名字
select cname from Course where cno in
(
select sc.cno from sc inner join course c on sc.cno=c.cno
where s.sname='周星驰'
);
3. 查询选修了5门课程的学生学号和姓名
select stu.sno, stu.sname from student stu where
(select count(*) from sc where sno=stu.sno) = 5;