练习MySQL,sql练习(mysql版)

学生表student

073b21891aef24b4634264a68ca99099.png

老师表teacher

a1a9744f9d2aefbd230ccb55159a8c95.png

课程表course

19ec0f4d018a6bf33c9d21a05e8bb341.png

分数表test

e2a28ade6e4fea7cfe80673937d00aa3.png

1.数学比语文成绩高的所有学生

select a.sid from

(select * from test where cid=1) a,

(select * from test where cid=2) b

where a.sid=b.sid

and a.score>b.score

2.查询各科分数前三的学生

#第一种

select tmp.* from test as tmp

where

(

select count(*) from test

where cid = tmp.cid and score > tmp.score

)<3

order by cid,score desc

#第二种

select tmp.* from test as tmp

where exists

(

select count(*) from test

where cid = tmp.cid and score > tmp.score

having count(*)<3

)

order by cid,score desc

这个我是这么理解的,首先假设存在各科分数前三的表tmp,那么它的构成就是这样的

0b3b03e2b638e6681b57dbae5f906046.png

和原test表相比,有什么关联呢?

1b07570bfeef3a0155b9ef371eea2566.png

当满足tmp.cid=test.cid=1时,test.score中只有一个99满足>tmp中的其中一个数。

当tmp.cid=test.cid=2时,test.score中有2个数(98和91)满足>tmp中的其中一个数。

可以发现,test.score中,不能有三个数满足大于tmp中的数,不然的话,tmp将存在4个互不相同的数,那就不是前三了。

所以。。。当满足以下条件时,就能保证存在这么一个tmp表。

select count(*) from test

where cid = tmp.cid and score > tmp.score

having count(*)<3

3.查询每个学生数语英三门课的成绩,合并于一张表

SELECT tmp.sid,

(SELECT score FROM test WHERE tmp.sid=sid AND cid='') AS 'math',

(SELECT score FROM test WHERE tmp.sid=sid AND cid='') AS 'chinese',

(SELECT score FROM test WHERE tmp.sid=sid AND cid='') AS 'english'

FROM test AS tmp

GROUP BY tmp.sid

ORDER BY tmp.sid

4.查询每个学生的数学成绩,并在成绩后面注明是否及格

select sid,score,if(score<60,'不及格','及格') as '是否及格'

from test where cid=1

全国省市级联数据sql语句 mysql版

全国省市级联数据sql语句 mysql版 --省级 provincial create table provincial ( provincialID int, provincialName ), p ...

SQL优化 MySQL版 - B树索引详讲

SQL优化 MySQL版  - -B树索引详讲 作者:Stanley 罗昊 [转载请注明出处和署名,谢谢!] 为什么要进行SQL优化呢?很显然,当我们去写sql语句时: 1会发现性能低 2.执行时间太 ...

SQL优化 MySQL版 -分析explain SQL执行计划与笛卡尔积

SQL优化 MySQL版 -分析explain SQL执行计划 作者 Stanley 罗昊 [转载请注明出处和署名,谢谢!] 首先我们先创建一个数据库,数据库中分别写三张表来存储数据; course: ...

SQL优化 MySQL版 - 索引分类、创建方式、删除索引、查看索引、SQL性能问题

SQL优化 MySQL版  - 索引分类.创建方式.删除索引.查看索引.SQL性能问题 作者 Stanley 罗昊 [转载请注明出处和署名,谢谢!] 索引分类 单值索引 单的意思就是单列的值,比如说有 ...

SQL优化 MySQL版 - 避免索引失效原则(一)

避免索引失效原则(一) 精力有限,剩余的失效原则将会在 中连载出来,请谅解 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 避免索引失效的一些原 ...

SQL优化 MySQL版 - 多表优化及细节详讲

多表优化及细节详讲 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 注:本文章需要MySQL数据库优化基础或观看前几篇文章,传送门: B树索引详讲(初识SQL优化,认识索引):htt ...

SQL优化 MySQL版 - 单表优化及细节详讲

单表优化及细节详讲 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 注:本文章需要MySQL数据库优化基础或观看前几篇文章,传送门: B树索引详讲(初识SQL优化,认识索引):htt ...

SQL优化 MySQL版 -分析explain SQL执行计划与Extra

Extra 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 注:此文章必须有一定的Mysql基础,或观看执行计划入门篇传送门: https:.html 终于总结到哦SQK执行计划的最 ...

SQL优化 MySQL版 -分析explain SQL执行计划与Type级别详解

type索引类型.类型 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 注:看此文章前,需要有一定的Mysql基础或观看上一篇文章,该文章传送门: https://www.cnblo ...

SQL优化 MySQL版 - 避免索引失效原则(二)

避免索引失效原则(二) 注:继上一篇文章继续讲解: 避免索引失效原则(一)https://www.cnblogs.com/StanleyBlogs/p/10482048.html#4195062 作者 ...

随机推荐

C&num;开发微信门户及应用&lpar;27&rpar;-公众号模板消息管理

通过模板消息接口,公众号能向关注其账号的用户发送预设模板的消息.模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等.不支持广告等营销类消 ...

Python之路【第二十篇】Tornado框架

Tornado Tornado是使用Python编写的一个强大的.可扩展的Web服务器.它在处理严峻的网络流量时表现得足够强健,但却在创建和编写时有着足够的轻量级,并能够被用在大量的应用和工具中. 我 ...

mybatis报invalue types()错误

错误信息: Cause: org.apache.ibatis.reflection.ReflectionException: Error instantiating class cn.qd.mybat ...

MongoDB的快速手动安装

上一篇文章漏了点东西:就是关于MongoDB主从库的安装配置和启动.网上关于MongoDB的安装有大量的文章供大家学习.我这 ...

Storm实时流处理Hello World

近来在看Storm的相关资料,以下总结一下配置过程和Hello World例子. Storm是分布式的实时计算系统.详细文档可参考Storm网站,也可以参阅

Java反射学习(java reflect)&lpar;一&rpar;

具有能够分析类能力的程序被称为反射,使用反射库可以编写能够动态操纵Java代码的程序. 一.开始 背景:Java运行时系统始终对所有对象维护一个被称为Runtime的类型标识,然后这货save着每个对 ...

彻底卸载 RAD Studio 2009&sol;2010&sol;XE&plus; 的步骤

重新安装 RAD 系列时,建议将上一个版本彻底卸载,彻底卸载 RAD Studio 2009/2010/XE+ 的步骤: 控制面板-->添加/删除程序中执行了卸载操作以后, 还需要做以下工作: ...

java各种排序实现

排序是程序开发中一种非常常见的操作,对一组任意的数据元素(或记录)经过排序操作后,就可以把他们变成一组按关键字排序的有序队列. 对一个排序算法来说,一般从下面3个方面来衡量算法的优劣: 时间复杂度:它 ...

Android决议具体解释

1.Android手机常见的分辨率 WVGA:800x480 FWVGA:854x480 QHD:960x540 720P:1280x720(SD.standard definition,SD) 10 ...

sigmoid&lowbar;cross&lowbar;entropy&lowbar;with&lowbar;logits

sigmoid_cross_entropy_with_logits 原创文章,请勿转载!!! 函数定义 def sigmoid_cross_entropy_with_logits(_sentinel= ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值