Atitit 提升可读性sql subquery udf 子查询 目录 1. 使用udf 和参数@简化join和subquery 1 1.1.1. 子查询分类 1 2. 2.1 按返回结果集分类
Atitit 提升可读性sql subquery udf 子查询
目录
1. 使用udf 和参数@简化join和subquery 1
1.1.1. 子查询分类 1
2. 2.1 按返回结果集分类 2
2.1. 2.2 按照对返回结果的调用方法 2
2.2. 行子查询实例 3
2.3. 标量子查询实例 3
2.4. 4.6 列子查询实例 in any all 4
- 使用udf 和参数@简化join和subquery
Use in select fld by udf....can not need join,,and enhance readable.
- 子查询分类
- 按结果集的行列数不同分为4种
- 子查询分类
- 标量子查询(结果集只有一行一列)
- 列子查询(结果集只有一列多行)
- 行子查询(结果集有一行多列)
- 表子查询(结果集一般为多行多列)
- 按子查询出现在主查询中的不同位置分
select后面:仅仅支持标量子查询。
from后面:支持表子查询。
where或having后面:支持标量子查询(单列单行)、列子查询(单列多行)、行子查询(多列多行)
exists后面(即相关子查询):表子查询(多行、多列)
- 1 按返回结果集分类
子查询按返回结果集的不同分为4种:表子查询,行子查询,列子查询和标量子查询。
表子查询:返回的结果集是一个行的集合,N行N列(N>=1)。表子查询经常用于父查询的FROM子句中。
行子查询:返回的结果集是一个列的集合,一行N列(N>=1)。行子查询可以用于福查询的FROM子句和WHERE子句中。
列子查询:返回的结果集是一个行的集合,N行一列(N>=1)。
标量子查询:返回的结果集是一个标量集合,一行一列,也就是一个标量值。可以指定一个标量表达式的任何地方,都可以用一个标量子查询。
从定义上讲,每个标量子查询也是一个行子查询和一个列子查询,反之则不是;每个行子查询和列子查询也是一个表子查询,反之也不是。
- 2.2 按照对返回结果的调用方法
子查询按对返回结果集的调用方法,可分为where型子查询,from型子查询及exists型子查询。
where型子查询:(把内层查询结果当作外层查询的比较条件)
定义:where型的子查询就是把内层查询的结果当作外层查询的条件。
from型子查询:(把内层的查询结果供外层再次查询)
定义:from子查询就是把子查询的结果(内存里的一张表)当作一张临时表,然后再对它进行处理。
exists型子查询:(把外层查询结果拿到内层,看内层的查询是否成立)
定义:exists子查询就是对外层表进行循环,再对内表进行内层查询。和in ()差不多,但是它们还是有区别的。主要是看两个张表大小差的程度。若子查询表大则用exists(内层索引),子查询表小则用in(外层索引);
3 使用子查询原则
1.一个子查询必须放在圆括号中。
2.将子查询放在比较条件的右边以增加可读性。
子查询不包含 ORDER BY 子句。对一个 SELECT 语句只能用一个 ORDER BY 子句,并且如果指定了它就必须放在主 SELECT 语句的最后。
3.在子查询中可以使用两种比较条件:单行运算符(>, =, >=, <, <>, <=) 和多行运算符(IN, ANY, ALL)。
4
————————————————
- 行子查询实例
如:获取和100号球员性别相同并且居住在同一城市的球员号码。
mysql> select playerno
from players
where (sex, town) = (
select sex, town
from players
where playerno = 100);
————————————————
- 标量子查询实例
可以指定一个标量表达式的任何地方,几乎都可以使用一个标量子查询。
如:获取和27号球员出生在同一年的球员的号码
mysql> select playerno
from players
where year(birth_date) =
(select year(birth_date)
from players
where playerno = 27)
and playerno <> 27;
————————————————
- 4.6 列子查询实例 in any all
由于列子查询返回的结果集是 N 行一列,因此不能直接使用 = > < >= <= <> 这些比较标量结果的操作符。在列子查询中可以使用 IN、ANY(SOME)和ALL操作符:
IN:在指定项内,同 IN(项1,项2,…)。
ANY:与比较操作符联合使用,ANY关键字必须接在一个比较操作符的后面,表示与子查询返回的任何值比较为 TRUE ,则返回 TRUE 。
SOME:ANY 的别名,较少使用。
ALL:与比较操作符联合使用,ALL关键字必须接在一个比较操作符的后面,表示与子查询返回的所有值比较都为 TRUE ,则返回 TRUE 。
————————————————
mysql查询语句select-子查询_数据库_jesseyoung-CSDN博客
Atitit 提升可读性sql subquery udf 子查询 目录 1. 使用udf 和参数@简化join和subquery 1 1.1.1. 子查询分类 1 2. 2.1 按返回结果集分类相关推荐
- Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓 O725
Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓 O725 1. DSL主要分为三类:外部DSL.内部DSL,以及语言工作台. 1 2. DSL ...
- atitit 提升数据库死锁处理总结
atitit 提升数据库死锁处理总结 正常的来说,锁上都是自动的..不用官.. 正常来讲,insert时不需要加rowlock,就默认是rowlock了, #-----锁的自动转换原理.(正常的不用理 ...
- Atitit 提升效率 界面gui方面的前后端分离与cbb体系建设 规范与推荐标准
Atitit 提升效率 界面gui方面的前后端分离与cbb体系建设 规范与推荐标准 1. 界面gui方面的前后端分离重大意义1 2. 业务逻辑也适当的迁移js化1 3. 常用分离方法2 3.1. 页面 ...
- atitit. hb 原生sql跨数据库解决原理 获得hb 数据库类型执行期获得Dialect
atitit. hb 原生sql跨数据库解决原理 获得hb 数据库类型执行期获得Dialect #-----原理 Hibernate 执行期获得Dialect 2010-07-28 12:59:58| ...
- Atitit.提升电子商务安全性 在线充值功能安全方面的设计
Atitit.提升电子商务安全性 在线充值功能安全方面的设计 1. 防止dataservcie对充值订单表的直接改写,只能通过api,不能通过sql1 1.1. Order_id的安全取值,注入检测1 ...
- mysql 从a到z 查询_mysql 查询数据时按照A-Z顺序排序返回结果集
mysql 查询数据时按照A-Z顺序排序返回结果集 $sql = "SELECT * , ELT( INTERVAL( CONV( HEX( left( name, 1 ) ) , 16, ...
- Atitit.提升 升级类库框架后的api代码兼容性设计指南
Atitit.提升 升级类库框架后的api代码兼容性设计指南 1. 增加api直接增加,版本号在注释上面增加1 2. 废弃api,使用主见@dep1 3. 修改api,1 4. 修改依赖import, ...
- Atitit.提升软件Web应用程序 app性能的方法原理 h5 js java c# php python android .net
Atitit.提升软件Web应用程序 app性能的方法原理 h5 js java c# php python android .net 1. 提升单例有能力的1 2. 减少工作数量2 2.1. 减少距 ...
- Atitit.提升api兼容性的方法 v3 q326
Atitit.提升api兼容性的方法 v3 q326 1. Atitit.兼容性的"一加三"策略1 2. 2. 扩展表模式1 3. 3. 同时运行模式1 3.1. 3.1. 完美的 ...
- atitit.提升开发效率---mda 软件开发方式的革命
atitit.提升开发效率---mda 软件开发方式的革命 1. 软件开发方式的革命开发工具的抽象层次将再次提升 1 2. 应用框架和其实现相分离 2 3. 目前的问题模型和代码不同步 2 4. MD ...
最新文章
- ls 中一些你不知道的事
- mssql 为什么连接是sleeping 而不释放_什么是数据仓库,以及我为什么需要它?
- python web 框架的flash消息_python web开发-flask中消息闪现flash的应用
- Linux Qt打包发布应用程序
- 电子政务项目风险管理(上)
- 通用程序算法和数据结构_了解通用数据结构
- SQLServer中在视图上使用索引(转载)
- android mysql sqlite_android内嵌的SQLite创建数据库,在哪里查看?
- 云知声今年要量产三款芯片,还公布了多模态AI芯片规划
- 机器学习中的混淆矩阵,准确率,精确率,召回率,F1,ROC/AUC,AP/MAP
- SpringApplication run方法第四步解析(三)[(未完结,暂搁置)]
- 被奉为经典的「金字塔原理」,教给我们哪些PPT写作技巧?
- 惠普服务器显示器接口类型,介绍:目前显示器主要接口
- 2022Vue经典面试题及答案汇总(持续更新)
- nuxt 如何添加robots.txt文件
- 《操作系统真象还原》第九章 ---- 终进入线程动斧开刀 豁然开朗拨云见日 还需解决同步机制才能长舒气
- 编程入门先学python好不好,学python用什么软件编程
- 【论文精读】EnlightenGAN: Deep Light Enhancement without Paired Supervision
- excel随机数_原来Excel是个很好用的点名软件
- php调用lol数据库,计算lol战斗力
热门文章
- qt .pro文件配置
- android接推流sdk,Android-SDK推流端说明
- Android的cangoback方法,Android应用开发Android8.0 WebView返回上一层失效(canGoBack返回false问题)解决办法...
- idea project settings在哪_IntelliJ IDEA如何对project的目录进行筛选显示?
- matlab green函数,地基土的传Green函数编辑中……
- 如何根据iframe内嵌页面调整iframe高宽续篇
- 【POJ 3062】Party(2-SAT、tarjan)
- Linux段管理,BSS段,data段,.rodata段,text段
- [转精]IO_STACK_LOCATION与IRP的一点笔记
- JavaSE基础笔记一