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

哪些网站做的好处做引流推广的平台

哪些网站做的好处,做引流推广的平台,wordpress免费中文主题,wordpress 微信二维码sql练习题6-10题 前言数据库表结构介绍学生表课程表成绩表教师表 0-6 查询"李"姓老师的数量0-7 查询学过"李四"老师授课的同学的信息0-8 查询没学过"李四"老师授课的同学的信息0-9 查询学过编号为"01"并且也学过编号为"02"的…

sql练习题6-10题

  • 前言
  • 数据库表结构介绍
    • 学生表
    • 课程表
    • 成绩表
    • 教师表
  • 0-6 查询"李"姓老师的数量
  • 0-7 查询学过"李四"老师授课的同学的信息
  • 0-8 查询没学过"李四"老师授课的同学的信息
  • 0-9 查询学过编号为"01"并且也学过编号为"02"的课程的同学的信息
  • 0-10 查询学过编号为"01"但是没有学过编号为"02"的课程的同学的信息

前言

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

数据库表结构介绍

学生表

在这里插入图片描述

课程表

在这里插入图片描述

成绩表

在这里插入图片描述

教师表

在这里插入图片描述

0-6 查询"李"姓老师的数量

首先读题,关键字 老师,数量,确定好我们需要的东西
表:teacher
函数count()

SELECTcount(t.t_name) count_li
FROMteacher t
WHEREt.t_name LIKE '李%';

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

0-7 查询学过"李四"老师授课的同学的信息

首先分析一下,我们需要通过name去teacher表中查询到李四老师的t_id,通过t_id再去课程表中查到c_id,有了c_id就可以去成绩表中查到s_id,然后再去student里面查学生信息
表:teacher,course,score,student

SELECT
b.*
from teacher t,course c,score a,student b
where t.t_name='李四'
AND   c.t_id=t.t_id
AND   a.c_id=c.c_id
AND   b.s_id=a.s_id;

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

0-8 查询没学过"李四"老师授课的同学的信息

上个题,其实我们是通过找到score表中的学过李四老师课程的学生的id,然后在student表中利用id找出对应符合要求的学生,这个题其实相反,我们把剩余的id取出来其实就是答案

SELECTb.*
FROMstudent b
WHEREb.s_id NOT IN (SELECTa.s_idFROMteacher t,course c,score aWHEREt.t_name = '李四'AND c.t_id = t.t_idAND a.c_id = c.c_id);

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

0-9 查询学过编号为"01"并且也学过编号为"02"的课程的同学的信息

分析一下,感觉题目就很绕,读着很烦,白话说就是:查询学过语文课也学过数学课的同学的信息
表:score ,student
自连接,分别查询语文课,数学课

select 
c.*
from score a,score b,student c
where a.c_id='1'
and b.c_id='2'
and a.s_id=b.s_id
and c.s_id=b.s_id

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

0-10 查询学过编号为"01"但是没有学过编号为"02"的课程的同学的信息

查询学过语文课但是没有学过数学课的同学的信息
将表的长数据,转换为宽数据
通过下面的方式,得到结果可以直观的看出来有01课程成绩但是没有02课程成绩

select 
a.s_id,
max(CASE when a.c_id='1' then a.s_score else null END) sco1 ,
max(CASE when a.c_id='2' then a.s_score else null END) sco2
from score a
GROUP BY a.s_id;

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

再用内连接将两张表连起来

select 
s.*
from 
(select
a.s_id,
max(CASE when a.c_id='1' then a.s_score else null END) sco1 ,
max(CASE when a.c_id='2' then a.s_score else null END) sco2
from score a
GROUP BY a.s_id) t,student s
where t.s_id=s.s_id
and t.sco1 is not NULL
and t.sco2 is   null;

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

ps:这里我数据库中的数据有错误,表中6号吴兰,02课程应该是没有成绩的,我当时设置错了,但是思路以及步骤都是正确的
如果有同学用的我提供的表来练习这个题目的话,把题目中的01课程和02课程换一个位置就可以了,这样按照解题思路求出来的是7号,因为他只有课程02,没有课程01

http://www.hyszgw.com/news/19777.html

相关文章:

  • 做网站如何文字链接文字代写文章质量高的平台
  • 视频网站开发费用一站式海外推广平台
  • 网站建设兆金手指花总什么是市场营销
  • 网站的文件结构湘潭网站seo
  • 百度公司可以做网站么东莞网站定制开发
  • 专门做同人h的网站深圳网络推广专员
  • 宿州做网站dw如何制作网页
  • 什么网站下载素材做图的cnzz
  • 企业网站如何做微信营销经典品牌推广文案
  • win8扁平化网站百度seo快速排名优化软件
  • A级网站视频 一级做爰片抖音推广佣金平台
  • 网站建设指导思想和目标每天看七个广告赚40元的app
  • seo网站建设哪家专业引流软件下载站
  • 做网站商机seo系统优化
  • 本地服务器怎么做网站好视通视频会议app下载安装
  • 比较好的建站程序枣庄网站seo
  • h5网站价格百度关键词排名优化工具
  • 汽车网站首页模板代码百度竞价登录入口
  • 做美食下载什么网站seo资源是什么意思
  • 手机网站的网址是什么原因百度灰色关键词代发
  • 卖花网站模板广安网站seo
  • 珠海网站建设案例成都关键词优化服务
  • 哈尔滨住建委seo知识培训
  • 广州网站公司建设网站seo网站推广企业
  • asp flash网站模板国产十大erp软件
  • 郴州旅游攻略开鲁网站seo不用下载
  • 大连网站设计哪里有做产品宣传
  • 政府网站建设管理工作经验公司域名注册步骤
  • php的网站怎么做网站优化策略
  • 做网站找那些公司外贸推广平台