SQL笔试经典50题

MySQL经典50题

1、

#1、查询“01”课程比“02”课程成绩高的所有学生的学号;
SELECT s1.sid
FROM SC s1 JOIN SC s2 ON s1.sid=s2.sid AND s1.cid='01' AND s2.cid='02' AND s1.score>s2.score

在这里插入图片描述
2、

#2、查询平均成绩大于60分的同学的学号和平均成绩;
SELECT sid as 学号, avg(score) as 平均成绩
FROM SC GROUP BY sid HAVING 平均成绩>60

在这里插入图片描述
3、

#3、查询所有同学的学号、姓名、选课数、总成绩
SELECT s2.sid as 学号, s2.sname as 姓名, a.b as 选课数, a.c as 总成绩
FROM Student s2,
(SELECT s1.sid as id ,count(s1.cid) as b, sum(s1.score) as c
FROM SC s1 JOIN Student s2 ON s1.sid=s2.sid GROUP BY s1.sid)a
WHERE s2.sid=a.id 

在这里插入图片描述
4、

#4、查询姓“李”的老师的个数;
SELECT * FROM Teacher WHERE tname LIKE '李%'

在这里插入图片描述
5、

#5、查询没学过“张三”老师课的同学的学号、姓名;
SELECT DISTINCT(s1.sid) as 学号,s1.sname as 姓名
FROM Student s1 JOIN SC s2 ON s1.sid=s2.sid AND s2.cid IN
(SELECT c1.cid FROM Teacher t1 JOIN Course c1 ON t1.tid=c1.tid AND t1.tname NOT LIKE '张三') 

在这里插入图片描述
6、

#6、查询学过编号“01”并且也学过编号“02”课程的同学的学号、姓名;
SELECT sid as 学号, sname as 姓名 FROM Student WHERE sid in 
(SELECT s1.sid
FROM SC s1 JOIN SC s2 ON s1.sid=s2.sid AND s1.cid='01' AND s2.cid='02')

在这里插入图片描述
7、

#7、查询学过“张三”老师所教的课的同学的学号、姓名;
SELECT s2.sid as 学号, s2.sname as 姓名
FROM SC s1 JOIN Student s2 ON s1.sid=s2.sid AND s1.cid IN
(SELECT cid FROM Course WHERE tid IN
(SELECT tid FROM Teacher WHERE tname='张三'))

在这里插入图片描述
8、

#8、查询课程编号“01”的成绩比课程编号“02”课程低的所有同学的学号、姓名;
SELECT a.sid as 学号, s3.sname as 姓名
FROM (SELECT s1.sid FROM SC s1 JOIN SC s2 ON s1.sid=s2.sid AND s1.cid='01' AND s2.cid='02' AND s1.score<s2.score)a JOIN Student s3 ON a.sid=s3.sid  

在这里插入图片描述
9、

#9、查询所有课程成绩小于60分的同学的学号、姓名;
SELECT DISTINCT(s2.sid) as 学号, s2.sname 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值