《第一周周末作业》

这篇博客详细记录了使用SQL进行数据库操作的过程,包括创建数据库、表及插入数据,展示了多表联查的实例,涉及平均成绩计算、特定条件筛选等复杂查询。同时,给出了创建学生、班级和成绩表的SQL语句,并演示了如何进行多表联查以获取学生信息和成绩。
摘要由CSDN通过智能技术生成

一.第一周笔记汇总
在这里插入图片描述
二.数据库作业
1.完成两道练习题,用nvicat创建数据库和表以及数据,写出正确的SQL查询语句和运行结果截图。
在这里插入图片描述
解:创建的表及表中数据如下图
在这里插入图片描述
在这里插入图片描述
1)1) select avg(english) “平均成绩” from mark;
在这里插入图片描述
2) select b.math,a.Name,a.Address,a.Telno from cust a join mark b on a.Studentno=b.Studentno where a.Studentno in (11,22,33,44,55);(因为表中没有学号为11,22,33,44,55,66的数据,所以查询结果为null)
在这里插入图片描述
3)select a.Name,b.computer from cust a join mark b on a.Studentno=b.Studentno order by b.computer desc;
在这里插入图片描述
4)select a.Studentno,a.name,(b.computer+b.english+b.math) “总成绩” from cust a join mark b on a.Studentno=b.Studentno where (b.computer+b.english+b.math)>240 order by (b.computer+b.english+b.math) desc;
在这里插入图片描述
在这里插入图片描述
解:创建的表及表中的数据如下图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
A. select count(*) from student where name like “王%”;
在这里插入图片描述
B. select id from (select a.id,max(case when c.name=‘语文’ then b.score end) chinese,max(case when c.name=‘数学’ then b.score end) math from student a join sc b on a.id=b.sid join course c on c.id=b.cid group by a.id having math>chinese) biao;
在这里插入图片描述
C. select a.name,avg(b.score) ‘平均成绩’ from student a join sc b on a.id=b.sid join course c on c.id=b.cid group by a.name having avg(b.score) > 90;
在这里插入图片描述
2.用SQL语句创建以下三张表,要求字段属性要求如图所示。(用nvicat),用SQL语句,分别在三张表中插入数据。注意:学生表的id等于成绩表的sid,班级表的id等于学生表的cid,注意,以上题目,请把sql语句写出来。
学生表:t_student
在这里插入图片描述
班级表:t_class
在这里插入图片描述
成绩表:t_grade在这里插入图片描述
表数据如下图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1) 用SQL语句对班级表学生表进行多表联查,显示班级表的班级名称和学生的id,姓名
select b.cname,a.id,a.sname from t_student a join t_class b on a.cid=b.id;
在这里插入图片描述
2) 用SQL语句对学生表成绩表多表联查,显示学生的id,sname和成绩表的语数外的成绩。
select a.id,a.sname,b.chinese,b.math,b.english from t_student a join t_grade b on a.id=b.sid;

在这里插入图片描述
3) 用SQL语句,对三张表进行多表联查,显示学生表的id,sname班级表的cname,成绩表的语数外成绩。
select a.id,a.sname,c.cname,b.chinese,b.math,b.english from t_student a join t_grade b on a.id=b.sid join t_class c on a.cid=c.id;
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值