MYSQL——解题查询语句答题思路,再难的查询都不怕!
select查询语句,作为测试人员,使用此语句是家常便饭,是必须掌握的部分,由开始学习mysql到网上搜索试题做,开始做题一塌糊涂,拿到题目就晕,无从下手,现在慢慢总结了一套自己做题的方式,很开森,嘿嘿!由简单试题到较难试题的解答,思路其实都是一样的,今天将做题思路进行总结,(说明:用到的关键字等自行学习,只讲解题思路)详见如下:
我们在查询时会用到的表,有4张表格如下:

1、查询出‘计算机系’教师所教课程的成绩表
解题思路:
1.1)首先根据题目要求,找到相关联表,此处涉及到的表为:教师表、课程表、成绩表
1.2)找到三张表之间的关联点,如:teacher表与course表,相关联点:tno。course表与score表,相关联点:sno
首先已将题目进行拆解,拆解之后一步一步进行查询,直到查询到题目要求的结果,根据题目解题步骤分为3步,同时每步带了具体的查询语句:
第1步:查找‘计算机系’在哪个表中,根据图可看出‘计算机系’在teacher表中。并且列名显示为depart,根据此些信息查找代表‘计算机系’的教师编号: select tno from teacher where depart = '计算机系'; #1、结果:tno为:804、825 第2步:根据第1步的查找的tno结果在相关联的course课程表中查找tno对应的sno数据,因此需将“第1步”作为条件
select cno from course where tno in (select tno from teacher where depart = '计算机系') #2、结果:3-105、3-245 第3步:前2步已经将‘计算机系’的老师与所教课程查找完成,最后剩下查找成绩,因此将‘第2步’查找的cno结果作为条件,在成绩表中查找sno值对应的成绩即可
select cno,degree from score where cno in(select cno from course where tno in (select tno from teacher where depart = '计算机系')) #3、结果:cno为3-105、3-245对应的degree将全部显示出来 #运行第3步,显示的就是题目要求的结果
2、查询出‘李诚’老师教的学生的最高成绩,结果显示:最高成绩的学生基本信息以及成绩
解题思路:
第1步:查询‘李诚’老师的tno
select tno from teacher where tname='李诚' #结果显示:804 第2步:已第1步的查询结果为条件,在course课程表中查找tno对应的cno课程编号
select cno from course where tno in(select tno from teacher where tname='李诚') #结果显示:3-245 第3步:已第2步的cno结果为第三步的条件,查找出cno课程编号在score成绩表中对应的成绩.此处为查看结果的正确性,在结果显示时添加了cno
select cno,degree from score where cno in (select cno from course where tno in(select tno from teacher where tname='李诚')) #查询结果:3-245对应的成绩有:86,75,68 第4步:第3步完成后,已经将‘李诚’老师教的学生成绩全部查出来了,根据题目要求,需要查找最高成绩,因此将第3步进行修改,需要用到max(查找最大)
select cno,max(degree) from score where cno in (select cno from course where tno in(select tno from teacher where tname='李诚')) 第5步:以上4步已经将老师对应的学生最高成绩查询出来,剩一步为显示学生基本信息,需要用到student表,因此需要将score与student两个表关联起来,使用sno
select s.*,cno,max(degree) from score sc,student s where cno in (select cno from course where tno in(select tno from teacher where tname='李诚')) and s.sno = sc.sno; #运行第5步显示的就是题目要求的结果
3、查询出4位老师,每个老师教的成绩最高的学生,结果显示:学生基本信息、老师基本信息、课程名称、成绩,并按成绩由高到低展示
#试题的解答案本宝宝已经列在下方,根据上面写的解题思路,将此答案进行理解就可以啦
select s.*,t.*,sc.cno,sc.degree
from teacher t,course c,score sc , student s
where sc.cno in(select cno from course where tno in(select tno from teacher))
and t.tno = c.tno and c.cno = sc.cno and s.sno = sc.sno group by sc.cno order by degree desc;
解题思路总结:
1、分解试题
2、查找分解试题之后所要对应的表
3、查找对应表之间的关联点
4、一步一步按照分解步骤实现,最后结果就出来啦
完事,本宝宝将mysql查询的解题思路写完了,解题思路梳理清楚,在难的查询题也不怕,公司目前就剩我一个人啦,赶紧跑回家~~端午节走起!
MYSQL——解题查询语句答题思路,再难的查询都不怕!的更多相关文章
- mysql查询语句,通过limit来限制查询的行数。
mysql查询语句,通过limit来限制查询的行数. 例如: select name from usertb where age > 20 limit 0, 1; //限制从第一条开始,显示1条 ...
- MySQL 查询语句优化思路
query 语句的优化思路和原则主要提现在以下几个方面:1. 优化更需要优化的Query:2. 定位优化对象的性能瓶颈:3. 明确的优化目标:4. 从 Explain 入手:5. 多使用profile ...
- MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY)
在上一篇文章MySQL查询语句执行过程及性能优化-基本概念和EXPLAIN语句简介中介绍了EXPLAIN语句,并举了一个慢查询例子:
- Mysql常用sql语句(21)- regexp 正则表达式查询
测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 正则的强大不言而喻,Mysql中也提供了 reg ...
- Mysql常用sql语句(八)- where 条件查询
测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 前言 ...
- Mysql常用sql语句(九)- like 模糊查询
测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 前言 ...
- Mysql常用sql语句(14)- 多表查询
测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 前言 ...
- Mysql常用sql语句(6)- limit 限制查询结果的条数
测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 实际工作中,我们的数据表数据肯定都是万级别的,如 ...
- SQL 查询语句总是先执行 SELECT?你们都错了
很多 SQL 查询都是以 SELECT 开始的.不过,最近我跟别人解释什么是窗口函数,我在网上搜索"是否可以对窗口函数返回的结果进行过滤"这个问题,得出的结论是"窗口函数 ...
随机推荐
- JDBC连接数据库时候出错
错误提示如下: Fri May 13 09:06:04 CST 2016 WARN: Establishing SSL connection without server's identity ver ...
- (七):C++分布式实时应用框架 2.0
C++分布式实时应用框架 2.0 技术交流合作QQ群:436466587 欢迎讨论交流 上一篇:(六):大型项目容器化改造 版权声明:本文版权及所用技术归属smartguys团队所有,对于抄袭,非经同 ...
- php里进程创建和分析
pcntl_fork()函数创建一个子进程,这个子进程仅PID(进程号) 和PPID(父进程号)与其父进程不同成功时,在父进程执行线程内返回产生的子进程的PID,在子进程执行线程内返回0.失败时,在 ...
- 3D Lut 电影级调色算法 附完整C代码
在前面的文章,我提到过VSCO Cam 的胶片滤镜算法实现是3d lut. 那么3d lut 到底是个什么东西呢? 或者说它是用来做什么的? 长话短说,3d lut(全称 : 3D Lookup t ...
- Effective C++ 读书笔记(13-32)
条款一十三:以对象管理资源 1.把资源放进对象内,我们便可依赖C++的“析构函数自动调用机制“确保资源被释放. 2.auto_ptr是个”类指针对象“,也就是所谓”智能指针“,其析构函数自动对其所指对 ...
- ASCII、 Unicode 和 UTF8
ASCII: 英文字母与数字编号的一一对应.每个英文字母对应一个编号.范围0~127 Unicode: 全世界所有语言中字符与数字编号的一一对应.也即为存在的每个字符指定一个唯一的编号.范围为0~0x ...
- PAT1115:Counting Nodes in a BST
1115. Counting Nodes in a BST (30) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Y ...
- JVM配置参数详解(目前不够完善)
最近看了有关虚拟机的书籍,发现有很多虚拟机配置参数不知道,特来记录一下, -XX: MaxDirectMemorySize--->设置直接内存,不设置与Java堆内存最大值一致 -XX:Perm ...
- Linux kernel的中断子系统之(一):综述
返回目录:<ARM-Linux中断系统>. 总结: 一从作为一名驱动工程师角度看,用好中断需要正确认识request_threaded_irq/request_irq关系.中断临界区保护. ...
- centos7搭建postfix邮件服务器
在使用qq等邮件服务器厂商提供的邮件服务后,发现他们的邮件发送数量是有限制的,随着公司的业务的需求下,我们需要搭建一个邮件服务器,邮件服务器可以帮助我们在一些提醒方面和消息推送方面起到帮助. 理论性语 ...