SQL练习-4张表
针对下面的4张表格进行SQL语句的练习。
SQL练习-题目
- 查询
001
课程比002
课程成绩高的所有学生的学号
需要用到的表:SC
1 | select a.Sid |
- 查询平均成绩大于
60
分的同学的学号和平均成绩
需要用到的表:SC
1 | select Sid, avg(score) |
- 查询所有同学的学号、姓名、选课数、总成绩
需要用到的表:Student、SC
1 | select Student.Sid, Student.Sname, count(SC.Cid), sum(SC.score) -- 从两个表中选择4个统计字段 |
- 查询姓“李”老师的个数
需要使用的表:Teacher
1 | select count(distinct(Tname)) -- 去重之后再进行统计 |
- 查询没有学过“小风”老师所教课程的学生的学号、姓名
需要使用的表:Teacher、Student、SC、Course
1 | select Student.Sid, Student.Sname |
- 查询学过“小风”老师所教课程的学生的学号、姓名
需要使用的表:Teacher、Student、SC、Course
1 | select S.Sid, S.Sname |
- 查询学过001和002课程的同学的学号、姓名
需要使用的表:Course、Student
1 | select S.Sid, S.Sname |
- 所有课程成绩小于60分的同学的学号和姓名
1 | select Sid, Sname |
- 检索004课程分数小于60,按照分数降序排列的同学学号
1 | select Sid |
- 删除002(学号)同学的001(课程编号)课程的成绩
1 | delect from SC |
- 查询
2
门以上不及格课程的同学的学号(学号)以及平均成绩(score)
需要用到的表:SC
1 | select Sid, avg(isnull(score,0)) -- isnull函数表示:将SC表中所有的NULL替换成0 |
- 查询全部学生选修的课程的课程号、课程名
1 | select Cid, Cname |
- 查询不同课程,成绩相同的学生和学号、课程号、学生成绩
1 | select distinct a.Sid, b.Score |
- 查询和1002号的同学学习的课程完全相同的其他同学学号和姓名
1 | select Sid |
- 查询各科成绩的前3名记录
1 | select t1.Sid as 学生ID, t1.Cid as 课程ID, score as 分数 |
- 查询只选修1门课程的全部学生的学号和姓名
1 | select SC.Sid, Student.Sname, count(Cid) as 选课数 |
- 查询男女人数
1 | select count(Ssex) as 男生人数 |