1. 视图
  2. 子查询
  3. 标量子查询
  4. 关联子查询
  5. 如何用SQL解决业务问题
  6. 各种函数

1. 视图

  1. 视图内存放SQL查询语句,运行时运行该语句。查出的数据为临时数据
  • 创建视图
create view as 视图名称 (<视图别名1>, <视图别名2>,。。。
as
<select 查询语句>

注意: <视图别名1>, <视图别名2>。。。。select语句查询结果的第1,2.。。。列

EG. create view as

2. 如何使用视图(什么时候使用视图,为什么使用视图)

  • 当某些sql查询语句需要频繁使用时,可保存成视图。不需每次都再写一遍。尤其在汇总和有复杂查询条件时,view可有效提高效率
  • 视图中的数据随原表的更新而更新,保证数据的最新状态。(因为视图中保存的是sql查询语句,每次运行都从原表中提取数据,保证了数据的最新)
  • 视图不用存储数据,节省空间。

3.注意事项

  • 避免在视图上再创建视图,多重视图降低效率
  • 在视图中插入数据会导致错误

2.子查询

1.什么是子查询

  • 一次性视图,在sql查询语句中直接定义视图查询语句。
  • 运行整条SQL查询语句, 子查询部分生成一个临时表,语句结束后子查询部分消失。
  • 运行顺序:子查询等于f原rom部分,最先运行。顺序:子查询-----外部select语句(where----group-----having----order---limit)-----select。
as 后是子查询名称。 如上,按性别汇总是子查询名称

2.如何使用子查询

  • where 列 in (子查询)
  • where 列+比较运算符+ any(子查询)------任意一个满足条件。 如: 哪些学生的成绩比0002课程的任意一成绩高呢?
  • where 列 + 比较运算符 + all(子查询)------所有满足条件。 如: 哪些学生的成绩比0002课程的所有成绩高呢?

3.子查询的功能,什么时候使用子查询

  • 功能与视图一样,但不需频繁使用,无需创建视图时可使用子查询。

4.注意事项

  1. 避免子查询层层嵌套,效率低。
  2. 创建子查询时加as。。。,增加可读性。 select。。。from
  3. SQL运算顺序:

标量子查询

  1. 标量子查询:查询语句返回单一值, 特定列+特定行。

由于标量子查询返回单一值,所以可以和比较运算符结合用

2. 标量子查询如何使用: 任何需返回单一值得地方都可使用标量子查询。 可结合多种运算符进行复杂查询。需注意使用标量子查询不能有一对多的情况。

关联子查询

  1. 同一张表里的两组数据进行比较。同一张表中的多对多。

如下: 在score表中,一个学生报了多节课, 多门课的平均成绩是一个组。-----多对多。 这种情况中,关联子查询的where连接语句将子查询的查询结果定位到特定课程的。使的查询结果为单一值。

  • 注意 使用关联子查询时外查询和子查询均需加as 别名, 以便where连接语句定位。 在where关联语句中, s2 可以看到s1, s1看不到s2. s2运行完子查询后消失。
1. select name from world where population > (select population from world where name = 'Russia');2.select name from world
where continent = 'Europe' and gdp/population >
(select gdp/population from world where name = 'United Kingdom')3.select name,continent from world where continent in
(select continent from world
where name in ('Argentina','Australia') )
order by name;4.select name, population from world where population > (select population from world where name = 'Canada') and population < (select population from world where name = 'Poland');5.select name, concat(round(population/(select population from world where name = 'Germany')*100), '%')from world where continent = 'Europe';6.select name from world
where gdp > all
(select gdp from world
where continent = 'Europe' and gdp>0);7.select continent, name, area from world as s1 where area >=all
(select max(area) from world as s2
where s1.continent = s2.continent
group by continent );8. List each continent and the name of the country that comes first alphabetically.
select continent, name from world as s1
where name <= all (select min(name) from world  as s2
where s1.continent = s2.continent
group by continent);
// 通过比较找最值-----比所有都大/小--->最大最小。
第一步: 找出所有集合B
第二步: where条件---A>= all(B)  A是最大;   A<=B A是最小
// 按什么划分,where后面就用什么关联
//where同样有按continent划分的功能, 这里的group by continent可略
// 用>all <all 表示最大,最小9.select name, continent,population from world as s1
where 25000000 >=  all
(select population from world as s2 where s1.continent = s2.continent)10. Some countries have populations more than three times that of any of their neighbours (in the same continent). Give the countries and continents.
select name, continent from world as s1 where population > all
(select population*3 from world as s2
where  s1.continent = s2.continent and s1.name != s2.name  )
用 A != B 表示AB可互相邻

order by 子查询_视图,子查询,标量子查询,关联子查询相关推荐

  1. sql 最外层传值给最内层查询_腾讯云高级工程师如何玩转PG查询处理与执行器算法...

    作者介绍 孙旭,腾讯云高级工程师.10年数据库内核研发经验,熟悉PostgreSQL.Teradata数据库内核,熟悉数据库的查询优化.执行.事务并发以及存储等子系统:对分布式数据库有深入的研究和研发 ...

  2. mfc获取子窗口句柄_前端设计-JavaScript中父窗口与子窗口间的通信

    父窗体与子窗体之间的通信 在之前文章讲解windows程序设计过程中,我们曾描述了windows程序窗口之间通信与控制实现方法与过程,如窗体之间参数传递等.本文主要从Web程序开发前端JavaScri ...

  3. hbase 查询_云HBase发布全文索引服务,轻松应对复杂查询

    云HBase发布了"全文索引服务"功能,自2019年01月25日后创建的云HBase实例,可以在控制台免费开启此"全文索引服务"功能.使用此功能可以让用户在HB ...

  4. 网站域名过户查询_聚查教你怎么用域名批量查询工具查询网站历史和域名权重...

    购买老域名之前,要先查网站历史和域名权重,但是很多小编都找不到合适的域名批量查询工具,那么,聚查教你怎么用域名批量查询工具查询网站历史和域名权重. 一:域名批量查询工具查询网站历史和域名权重查询入口 ...

  5. 微服务跨数据库联合查询_微服务架构中如何解决连表查询的问题?

    谢邀. 首先我说一个很实际的问题,不是任何公司都需要微服务,或者说,不要上来就搞微服务,我看过北京不少创业公司的项目,这么说吧,估值在2亿美金以下的创业公司,基本上没必要搞什么微服务,总共就二十几口程 ...

  6. tkmybatis 子查询_日均20亿流量:携程机票查询系统的架构升级

    携程机票查询系统,日均20亿流量,且要求高吞吐,低延迟的架构设计.于是,提升缓存的效率以及实时计算模块长尾延迟,成为制约机票查询系统性能的关键.本文是携程集团机票业务技术总监宋涛在「云加社区沙龙onl ...

  7. python摄像头识别快递单号查询_免费对接快递鸟api单号识别查询接口(python)

    由于自己网站需要对接一些物流查询快递,然后在网上搜了一圈发现快递鸟比较适合我 之前写快递api的时候,官网上只有php和.net的示例,而我使用python封装的相关功能踩了许多坑,才搞出来,分享一下 ...

  8. python课程水平测试成绩查询_学业水平测试成绩(学业水平考试成绩查询系统)

    有人说50~70 C等70~85 B85~100 A是么? 学业水平测试实行等级计分,分为4个等级,用A.B.C.D表示.技术科目测试等级为合格.不合格.2.必修学科等级计算方法:各科原始分满分为10 ...

  9. java手机号归属地查询_【原创】Java实现手机号码归属地查询

    网络上已经有很多的手机号码归属地查询的API接口,但是这些接口总是有一些大大小小的缺陷. 总结一下这些缺陷: 1.要直接将它的搜索框链接形式粘到自己的页面,点击查询的时候还要跳转到他们的网站来展示归属 ...

最新文章

  1. 计算机编程书籍-Python Cookbook
  2. hashCode与equals的区别与联系
  3. C语言对内存地址的封装
  4. Linux date命令的用法
  5. linux与mac os程序员,程序员为什么要使用或推荐Mac OS X?[关闭]
  6. 如何打包和部署air应用程序
  7. ADO.NET 2.0 的并行控制与数据存取冲突侦测
  8. 如何用python一个字一个字的输出汉字
  9. mac vscode远程服务器
  10. logstash关于date时间处理的几种方式总结
  11. Java语言程序设计 基础篇 编程练习题 12.7
  12. hi3798mv300救砖包_迪优美特V26_hi3798mv300线刷固件升级包纯净系统
  13. java面试知识题 app_java面试宝典_java面试宝典下载app_java面试题大全带答案
  14. 倾斜摄影测量三维实景建模
  15. 如何提高研发部门工作效率的探讨
  16. 我以前的痛苦,你也拥有吗?
  17. VI,NDVI,EVI
  18. Java项目:springboot大学生实习管理系统
  19. PRML笔记:1-介绍
  20. excel按照显示的计算机,同一EXCEL文件在不同计算机上显示分页不同

热门文章

  1. python使用install_用 python setup.py install 安装 matplotlib 报错
  2. comparator比较器用法_Python学习:好像很少人知道 Python iter() 的另外一个用法?...
  3. jekyll网站上传服务器,jekyll 高效搭建个人博客之完整流程
  4. 使用ajax实现无刷新邮箱验证码,AJAX和WebService实现邮箱验证(无刷新)
  5. 联想p720装系统_分享联想ThinkPad X1 Carbon笔记本最稳的重装WIN10系统方法
  6. mysql 编程处理数据类型_Mysql支持的数据类型(总结)
  7. 网络安全-Internet安全体系结构
  8. java高并发(九)线程封闭
  9. 干货|且看Pyecharts如何制作多个子图
  10. 软件测试报告bug统计,软件测试中如何有效地写Bug报告