失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > sql面试题 查询学过“叶平”老师所教的所有课的同学的学号

sql面试题 查询学过“叶平”老师所教的所有课的同学的学号

时间:2023-08-07 15:30:46

相关推荐

sql面试题 查询学过“叶平”老师所教的所有课的同学的学号

转自:/u010689306/article/details/51494386

Student(Sid,Sname,Sage,Ssex) 学生表

Course(Cid,Cname,Tid) 课程表

SC(Sid,Cid,score) 成绩表

Teacher(Tid,Tname) 教师表

参考数据:

1、查询“1”课程比“2”课程成绩高的所有学生的学号;

select a.sidfrom (select sid,score from sc where cid=1) a join (select sid,score from sc where cid=2) b on a.sid = b.sidwhere a.score > b.score;

2 查询平均成绩大于60分的同学的学号和平均成绩;

select sid,avg(score)from sc group by sid having avg(score)>60;

3 查询所有同学的学号、姓名、选课数、总成绩

SELECT stu.sid,stu.sname,count(cid),sum(score)FROM student stu JOIN sc s ON stu.sid = s.sidgroup by stu.sid

4 查询姓“李”的老师的个数;

select count(tid)from teacher where tname like '李%'

5 查询没学过“叶平”老师课的同学的学号、姓名;

SELECT sid,snameFROM studentWHERE sid NOT IN (SELECT DISTINCT sidFROM scWHERE cid IN (SELECT cidFROM courseWHERE tid = (SELECT tidFROM teacherWHERE tname = "叶平")));

6 查询学过编号“1”并且也学过编号“2”课程的同学的学号、姓名;

SELECT sid,snameFROM studentWHERE sid IN (SELECT a.sidFROM (SELECT sid FROM sc WHERE cid = 1) AS aWHERE a.sid IN (SELECT sid FROM sc WHERE cid = 2))-- 这道题如果你抽风容易写成 where sid=1 and sid=2 大错特错!!!

7 查询学过“叶平”老师所教的所有课的同学的学号、姓名;

select sid-- 子查询结果如果要当临时表来使用的话需要起个别名(比如这里面的t)from (-- 学过该老师课程的同学学号(包含只学一门)select sid,count(cid) numfrom scwhere cid in (-- 该老师教了哪些课程select cidfrom coursewhere tid in (select tidfrom teacherwhere tname = '叶平'))group by sid) twhere t.num = (-- 统计该老师总课程数select count(cid)from coursewhere tid = (select tidfrom teacherwhere tname = '叶平'))

8 查询所有课程成绩小于60分的同学的学号、姓名;

select sid,snamefrom studentwhere sid in(select distinct sidfrom scwhere score<60)

9 查询没有学全所有课的同学的学号、姓名;

select sid,snamefrom studentwhere sid in(select sidfrom scgroup by sid having count(cid) < (select count(cid)from course))

10 查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;

select sid,snamefrom studentwhere sid in(select distinct sidfrom scwhere cid in(select cidfrom scwhere sid='1001') and sid != '1001')

11查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分

select cid,max(score) max,min(score) minfrom sc group by cid

如果觉得《sql面试题 查询学过“叶平”老师所教的所有课的同学的学号》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。