数据库_SQL高级查询
来源:互联网 发布:mac怎么安装输入法 编辑:程序博客网 时间:2024/06/14 06:17
2017年14日学习总结:
在SELECT查询中,在WHERE查询条件中的限制条件不是
一个确定的值,而是来自于另一个查询的结果。为了给查询提供数据而首先执行的查询语句叫做子查询。
主查询子查询嵌入的语句叫做父查询或者主查询。
主查询可以是SELECT语句,也可以是其它类型的语句,例如DML或DDL语句。
子查询在WHERE子句中
如果子查询返回多行,主查询中要使用多行比较操作符:IN、ALL、ANY。
EXUSTS关键字
EXISTS后边的子查询至少返回一行数据,则符合条件。
子查询在FROM部分
这样的子查询称作内视图或者匿名视图,只能在当前的SQL语句中有效。
子查询在SELECT部分
可以认为是外连接的另一种表现形式,更灵活。
分页查询
ROWNUM
称作伪列,返回标识行数据顺序的数字,从1开始计数。
在ORACLE中利用ROWNUM的功能可用来进行分页。每次只取一页的数据。每次换页,取下一页的数据。
DECODE函数
语法:
DECODE(expr,search1,result1[,search2,result2...][,default])
比较expr的值,匹配到那个search条件,就返回对应的result结果。
如果没匹配到,返回default。如果没写default,返回NULL。
排序函数
ROW_NUMBER( ) OVER(PARTITION BY col1 ORDER BY col2)
根据col1分组,根据col2排序。顺序编号,组内连续且唯一。
RANK( ) OVER(PARTITION BY col1 ORDER BY col2)
根据col1分组,根据col2排序。相同数据返回相同排名,跳跃排序。
DENSE_RANK( ) OVER(PARTITION BY col1 ORDER BY col2)
根据col1分组,根据col2排序。相同数据返回相同排名,连续排序。
集合操作
集合操作符
UNION
获取两个或以上结果集的并集,去掉重复记录。
UNION ALL
获取两个或以上结果集的并集,包括重复记录。
INTERSECT
获取两个结果集的交集,同时存在于两个结果集中的数据,才会被显示输出。
MINUS
获取两个结果集的差集,结果集一减去结果集二的结果。
高级分组函数
GROUP BY ROLLUP(a,b,c)
对列从右到左以一次少一列的方式进行分组,直到所有的列都去掉后的分组(全表分组)。
GROUP BY CUBE(a,b,c)
(a,b,c),(a,b),(a,c),(a),(b,c),(b),(c)最后对全表进行分组,一共是2的3次方=8次分组。
GROUP BY GROUPING SETS( )
指定分组。
阅读全文
0 0
- 数据库_SQL高级查询
- 数据库_SQL基础查询和SQL关联查询
- 数据库高级查询设计
- sql数据库高级查询
- 数据库查询--高级议题
- 数据库之高级查询
- 数据库高级查询
- 数据库高级查询
- android数据存储_SQL数据库
- 数据库基本_SQL语句大全
- shell操作数据库:高级查询
- 高级查询和连接数据库
- 数据库高级查询题目集
- 【Oracle数据库】高级子查询
- Oracle数据库高级查询案例
- 1_SQL简单的查询语句
- 黑马程序员_SQL 数据库概念解读
- 数据库4_Sql常见面试题
- 嵌入式Linux入门6:u-boot移植
- 使用gulp实现静态资源版本号替换
- Linux 周期性任务计划
- JS编程训练 | 题15:正确使用parseInt
- go语言一年的实践经验!
- 数据库_SQL高级查询
- CHROME开发者工具的小技巧
- 中国电信ChinaNet骨干网大区片区和省级节点
- 装饰者模式 VS 建造者模式
- mybatis之动态代理
- FWT——快速沃尔什变换
- 基本类型和引用类型的区别
- css cursor鼠标指针光标样式
- 算法分析与设计课程18——《算法概论》8.19