数据库笔试题及答案

这是一篇关于数据库笔试题的文章,包含了Student、Course、SC和Teacher四张表的相关信息。题目要求找出课程001分数高于课程002的学生ID。作者提供了个人的解答,并分享了操作系统和MySQL的版本信息。
摘要由CSDN通过智能技术生成

以下为某公司的数据库笔试题及个人整理的答案,小伙伴们有更好的答案欢迎指教!

数据表

Student(S#,Sname) 10000条记录
Cource(C#,Cname,T#) 9条记录
SC(S#,C#,Score) 89991条记录
Teacher(T#,Tname) 3条记录

题目并没有指定表中有多少数据,记录是我自己模拟的。

试题

1、选择课程001的成绩大于课程002的成绩的学生ID;

SELECT sc1.`S#` from sc sc1 WHERE sc1.`C#`=1 AND 
EXISTS
(SELECT sc1.`S#` from sc sc2 WHERE sc2.`C#`=2 and sc1.`S#`=sc2.`S#` AND sc1.Score > sc2.Score
)
上面的用法性能太差了。


[SQL] SELECT sc1.`S#` from sc sc1, sc sc2 WHERE sc1.`S#`=sc2.`S#` and sc1.`C#`=1 AND sc2.`C#`=2 AND sc1.Score > sc2.Score
时间: 14.913ms
2、查询所有平均成绩大于60分的学生ID,学生姓名;
select s.`S#`,Sname,av
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值