有3个表,表结构如下:

student 学生表 (学号,姓名,性别,年龄,组织部门) course 课程表 (编号,课程名称) sc 选课表 (学号,课程编号,成绩)

  1. 写一个SQL语句,查询选修了"计算机原理"的学生学号和姓名。
  2. 写一个SQL语句,查询"周星驰"同学选修了的课程名字。
  3. 写一个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;

results matching ""

    No results matching ""