pta MYSQL 训练题集(41-60)

10-41 查询课程成绩最高二人

select a.sno,sname,grade
from
(
    select sno,grade
    from sc
    where cno = 'C002'
    order by grade desc
    limit 2
) as a,stu
where a.sno = stu.sno

10-42 查询选修张老师讲授所有课程的学生

select sname
from stu
where sno in
(
    select sno
    from sc
    where cno in (select cno from cou where teacher = '张老师')
    group by sno
    having count(*) = (select count(*) from cou where teacher = '张老师')
) 

10-43 sql-insert-sample

insert into Student
values
(99,'test')

10-44 sql-delete-sample

delete from Student
where id > 50

10-45 添加一条学生记录

insert into stu
values
('S012','周强',1,null,null,null)

10-46 添加学生成绩记录

insert into sc
values
('S012','C001',90),
('S012','C002',null)

10-47 批量插入学生记录

insert into softstu
(
    select sno,sname
    from stu
    where mno= '02'
)

10-48 检索部分教师并插入新表

insert into faculty
(
select teacher as tname
from cou
where cno in 
(
    select cno from sc
    group by cno
    having avg(grade)>70
)
group by teacher
having count(*) = (select count(*) from cou as b where cou.teacher = b.teacher)
)

10-49 插入学生总学分表

insert into totalcredit(sno,totalcredit)
select sno,ifnull(t.score,0) as totalcredit
from stu
left join 
(
    select sc.sno as id,sum(credit) as score
    from sc,cou
    where grade>60 and sc.cno = cou.cno
    group by sc.sno
) as t on stu.sno=t.id
order by stu.sno;

10-50 单表查询:根据运费查询订单信息

select orderid,customerid,employeeid from orders
where Freight between 10 and 50;

10-51 修改高数不及格的学生成绩

update sc
set grade = 60
where grade < 60 and cno = (select cno from cou where cname = '高等数学')

10-52 修改女生成绩

update sc
set grade = grade * 1.05
where grade < 75 and sno in (select sno from stu where sex = 0)

10-53 修改学生选课成绩(俩种都行)

update sc 
-- set grade= if(grade<70,grade*1.05,grade*1.04) 
set grade = (case when grade < 70 then grade*1.05 else grade*1.04 end)
where cno='C001';

10-54 添加成绩等级rank字段

update sc 
set rank= 
(
    case
    when grade>=0 and grade<60 then 'E'
    when grade>=60 and grade<=69 then 'D'
    when grade>=70 and grade<=79 then 'C'
    when grade>=80 and grade<=89 then 'B'
    when grade>=90 then 'A'
    end
);

10-55 计算并填写学生获得的总学分

update stu,
(
select sno,sum(credit) as credit
from sc,cou
where grade >=60 and cou.cno = sc.cno
GROUP BY sno
) as a
set stu.totalcredit = a.credit
where stu.sno = a.sno

10-56 删除成绩为空的学生选课记录

delete from sc where grade is null;

10-57 删除选修C语言课程的女生成绩记录

delete from sc
where 
sno in (select sno from stu where sex=0) and cno =(select cno from cou where cou.cname='C语言');

10-58 spj-查询供应工程 j1 的供应商

select distinct sno
from spj
where jno = 'j1'

10-59 spj-查询供应工程 j1 零件 p1 的供应商

select sno
from spj
where jno = 'j1' and pno = 'p1';

10-60 2-1(a) 查询st1制片公司的地址

select address
from Studio
where name = 'st1';

  • 10
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三块不一样的石头

十分满意,一分打赏~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值