当前位置: 首页 > wzjs >正文

宿迁市建设局网站安阳seo关键词优化

宿迁市建设局网站,安阳seo关键词优化,网站alexa排名查询,通化公司做网站sql练习题0-5题 前言数据库表结构介绍学生表课程表成绩表教师表 0-1 查询"01"课程比"02"课程成绩高的学生的信息及课程分数0-2查询"01"课程比"02"课程成绩小的学生的信息及课程分数0-3查询平均成绩大于等于60分的同学的学生编号和学生…

sql练习题0-5题

  • 前言
  • 数据库表结构介绍
    • 学生表
    • 课程表
    • 成绩表
    • 教师表
  • 0-1 查询"01"课程比"02"课程成绩高的学生的信息及课程分数
  • 0-2查询"01"课程比"02"课程成绩小的学生的信息及课程分数
  • 0-3查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩
  • 0-4 查询平均成绩小于等于60分的同学的学生编号和学生姓名和平均成绩
  • 0-5 查询所有同学的学生编号,学生姓名,选课总数,所有课程的总成绩
    • 特别情况

前言

记录一下最近写过的sql的一些记录,从这篇开始每天更新5个题目,sql真的非常灵活,一个题目可能有很多很多种解法,我记录的只是我自己的一个解题思路,如果大家有更好的不同解法欢迎在评论区一起探讨
ps:有些题可能解法会重复,比如求大于,我们下一个题可能是求小于,大家如果第一遍没有做出来,看了我写的之后有了思路,可以试一下反面的解法。

数据库表结构介绍

学生表

在这里插入图片描述

课程表

在这里插入图片描述

成绩表

在这里插入图片描述

教师表

在这里插入图片描述

0-1 查询"01"课程比"02"课程成绩高的学生的信息及课程分数

写sql之前先分析,需要用到的表以及函数
student,score两张表
简单分析一下这个sql,因为01课程和02课程在同一个字段,所以我的思路是采用自连接来处理

SELECTc.*, a.s_score score1,b.s_score score2
FROMscore a,score b,student c
WHEREa.c_id = '1'
AND b.c_id = '2'
AND a.s_id = b.s_id
AND c.s_id = b.s_id
AND a.s_score > b.s_score;

结果如下:

在这里插入图片描述

0-2查询"01"课程比"02"课程成绩小的学生的信息及课程分数

同样的思路,再写一遍,巩固一下

SELECTc.*, a.s_score score1,b.s_score score2
FROMscore a,score b,student c
WHEREa.c_id = '1'
AND b.c_id = '2'
AND a.s_id = b.s_id
AND c.s_id = b.s_id
AND a.s_score < b.s_score;

结果如下:
在这里插入图片描述

0-3查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩

需要用的表为student,score
题目需要查询到学生姓名,需要利用子查询
函数为age求平均值函数
需要分组

SELECTb.s_id,(SELECTs.s_nameFROMstudent sWHEREb.s_id = s.s_id) s_name,AVG(b.s_score) avg_score
FROMscore b
GROUP BYb.s_id
HAVINGAVG(b.s_score) >= 60

结果如下:
在这里插入图片描述

0-4 查询平均成绩小于等于60分的同学的学生编号和学生姓名和平均成绩

思路和上面一模一样

SELECTa.s_id,(SELECTs.s_nameFROMstudent sWHEREa.s_id = s.s_id),avg(a.s_score)
FROMscore a
GROUP BYa.s_id
HAVINGavg(a.s_score) <= 60;

结果如下
在这里插入图片描述

0-5 查询所有同学的学生编号,学生姓名,选课总数,所有课程的总成绩

从题目的意思可以看出来,我们需要两个表student,score
用到的函数为,count,sum
和上一个题的思路其实很像
ps:我个人比较喜欢子查询的方式,其实很多人比较喜欢用内连接,其实没有啥本质上区别,看个人习惯吧

子查询:
SELECTs.s_id,(SELECTa.s_nameFROMstudent aWHEREa.s_id=s.s_id),COUNT(s.c_id),SUM(s.s_score)
FROMscore s
GROUP BYs.s_id;
显式内连接:SELECTa.s_id,s.s_name,COUNT(a.c_id),SUM(a.s_score)
FROMscore a
INNER JOIN student s ON s.s_id = a.s_id
GROUP BYa.s_id;

结果如下:
在这里插入图片描述

特别情况

不知道有没有细心的小伙伴发现,我们这张成绩表中缺少id为8的同学的成绩,可能因为某些情况缺考了导致我们在上面的查询中也查不到她的信息,那么如果我们也需要将他的信息查询出来应该如何做呢?

student中有的数据而score中没有,可以使用外连接来做

SELECTs.s_id,s.s_name,COUNT(a.c_id) count_cid,IFNULL(SUM(a.s_score), 0) sum_score
FROMscore a
RIGHT JOIN student s ON s.s_id = a.s_id
GROUP BYa.s_id
ORDER BYs_id ASC;

结果如下:
在这里插入图片描述

http://www.dtcms.com/wzjs/804287.html

相关文章:

  • 深圳市住房建设部官方网站宁波小程序开发
  • 做网站搜索框如何找外链资源
  • 怎么建设电子商城网站教育智慧城市型网站开发
  • 网站点击换图片的效果怎么做网站建设公司 壹宇网络
  • 好看的 网站后台模板怎么在百度上推广产品
  • 网站建设能带来流量么wordpress设置导航
  • 网站建设英文北太平庄网站建设
  • asp做的网站后台怎么进去wordpress编辑器图片
  • 建设工程消防验收网站wordpress文章末尾添加内容
  • 上海优秀网站设计荣成做网站的公司
  • 找人做网站网站网络营销的手段有哪些
  • 网站后台html模板下载百度网站是什么
  • 专业网站的特点新人做网站盈利
  • 创造与魔法官方网站一起做喜欢的事品牌建设的意义和重要性
  • 漂亮网站设计装修网名大全
  • 音乐网站怎么做精准关键词定远建设小学投诉网站
  • 网站建设可自学吗欧美动物人物ppt免费模板下载网站
  • onethink做的企业网站wordpress伪
  • 有什么网站可以做微信网站建设 自己的服务器
  • 巴中 网站建设苏州建筑公司有哪些
  • 网站建设价格明细表服务器创建网站
  • 聊城wap网站制作技术支持 合肥网站建设
  • 域名 空间 建网站做软件赚钱还是做网站赚钱
  • dw用设计视图做网站移动端网站建设的意义
  • 合肥网站开发外包网站建设教程给赚湖南岚鸿官 网
  • 高端手机网站设计用.net做网站中含有论坛
  • 网站建设门店牌子一周热点新闻
  • 网站开发学什么语音哈尔滨建站模板源码
  • 网站架构企业收费标准正规挣钱最快的app
  • 土木工程毕业设计网站wordpress 4.0 安装