•表1 学生表 <学号,姓名,性别,年龄,系> -
95001,李勇,男,20,CS
95002,刘晨,女,19,IS
95003,王敏,女,22,MA
95004,张立,男,19,IS
95005,刘刚,男,18,MA
95006,孙庆,男,23,CS
•表2 课程表<课程ID,课程名>-
1,数据库
2,数学
3,信息系统
4,操作系统
5,数据结构
6,数据处理
•表3 中间表<学生ID,课程ID,成绩>
95001,1,81
95001,2,85
95001,3,88
95001,4,70
95002,2,90
1、查询全体学生的学号与姓名。
select Sno,Sname from s1;
2、查询选修了课程的学生姓名。
select Sname from s1 left semi join s3 on s1.Sno = s3.Sno;
select distinct Sname from s3;
3、查询学生的总人数。
select count() from s1;
4、计算1号课程的学生平均成绩。
>select Classid,avg(Score) from s3
> where Classid = ‘1’
> group by Classid;
5、查询选修1号课程的学生最高分数
> select Classid,max(Score) max_score from s3
> where Classid = ‘1’
> group by Classid;
6、求各个课程号及相应的选课人数
> select Classid,count(distinct Sno) count_Sno from s3
> group by Classid;
7、查询学生的得分情况。
>select s1.Sname,s2.Classname,s3.Score from
> s1 join s3 on s1.Sno = s3.Sno
> join s2 on s2.Classid = s3.Classid;
8、查询选修2号课程且成绩在90分以上的所有学生。
>select s1.Sname,s3.Classid,s3.Score from
> s1 join s3 on s1.Sno = s3.Sno
> where s3.Classid = ‘2’ and s3.Score > 90;
9、查询所有学生的信息,如果在成绩表中有成绩,则输出成绩表中的课程号
>select s1.,s3.Classid from
> s1 left outer join s3
> on s1.Sno = s3.Sno;
10、查询与“刘晨”在同一个系学习的学生
>select S1.Sname,S1.Sdepartment from s1 left semi join
> (select Sdepartment from s1 where Sname = ‘刘晨’) tmp
> on s1.Sdepartment = tmp.Sdepartment;