mysql的cte(公用表表达式)
来源:互联网 发布:linux 读写文件命令 编辑:程序博客网 时间:2024/05/06 05:51
(一)公用表表达式是一个命名的临时结果集,仅在单个SQL语句(例如SELECT,INSERT,UPDATE或DELETE)的执行范围内存在。
查询中的列数必须与column_list
中的列数相同。 如果省略column_list
,CTE将使用定义CTE的查询的列列表。
WITH 公用表名 (column_list) AS ( 查询语句) SELECT * FROM 公用表名;
实例:
WITH customers_in_usa AS ( SELECT customerName, state FROM customers WHERE country = 'USA') SELECT customerName FROM customers_in_usa WHERE state = 'CA' ORDER BY customerName;
(二)派生表是从SELECT语句返回的虚拟表。与子查询不同,派生表必须具有别名,以便稍后在查询中引用其名称。
SELECT column_listFROM (SELECT column_list ——》派生表 FROM table_1) derived_table_name;WHERE derived_table_name.c1 > 0;
(三)临时表是一种特殊类型的表,它允许您存储一个临时结果集,可以在单个会话中多次重用。
1、使用CREATE TEMPORARY TABLE
语句创建临时表。请注意,在CREATE
和TABLE
关键字之间添加TEMPORARY
关键字。
2、当会话结束或连接终止时,MySQL会自动删除临时表。当您不再使用临时表时,也可以使用DROP TABLE语句来显式删除临时表。
3、一个临时表只能由创建它的客户机访问。不同的客户端可以创建具有相同名称的临时表,而不会导致错误,因为只有创建临时表的客户端才能看到它。 但是,在同一个会话中,两个临时表不能共享相同的名称。
4、临时表可以与数据库中的普通表具有相同的名称。 不推荐使用相同名称。例如,如果在示例数据库(yiibaidb)中创建一个名为employees
的临时表,则现有的employees
表将变得无法访问。 对employees
表发出的每个查询现在都是指employees
临时表。 当删除您
临时表时,永久employees
表可以再次访问。
创建一个临时表,按照收入存储前10
名客户
CREATE TEMPORARY TABLE top10customersSELECT p.customerNumber, c.customerName, FORMAT(SUM(p.amount),2) totalFROM payments pINNER JOIN customers c ON c.customerNumber = p.customerNumberGROUP BY p.customerNumberORDER BY total DESCLIMIT 10;
删除临时表:
DROP TEMPORARY TABLE table_name;
(四)子查询是嵌套在另一个查询(如SELECT,INSERT,UPDATE或DELETE)中的查询。子查询称为内部查询,而包含子查询的查询称为外部查询。 子查询可以在使用表达式的任何地方使用,并且必须在括号中关闭。
- mysql的cte(公用表表达式)
- 公用表表达式(CTE)
- 公用表表达式(CTE)的递归调用(2)
- 公用表表达式(CTE)的递归调用
- 公用表表达式(CTE)的递归调用
- 公用表表达式(CTE)的递归调用
- 使用公用表表达式的递归查询(CTE)
- 公用表表达式CTE
- 公用表表达式(CTE)
- 公用表表达式CTE
- 公用表表达式(CTE)
- mysql递归cte(公用表表达式)分层数据(邻接列表模型)
- 公用表表达式(CTE)与临时表比较
- 使用公用表表达式(CTE)简化嵌套SQL
- 使用公用表表达式(CTE)简化嵌套SQL
- SQL.WITH AS.公用表表达式(CTE)
- 使用公用表表达式(CTE)
- 详解公用表表达式(CTE)
- HDU3047 Zjnu Stadium(带权并查集)
- 《gradle 用户指南》中文版 第2章 概述
- 菜鸟win7双系统安装教程 两个系统都用Win7
- 从公司gitlab获取所有依赖的jar包坐标
- PHP中的stdClass 【转】
- mysql的cte(公用表表达式)
- JavaScript中的setTimeout函数
- Mysql主从复制两种配置方式
- String被设计成不可变和不能被继承的原因
- js正则表达式提取汉字和去掉汉字
- 使用TileStache 进行矢量geojson瓦片的切割 实际操作部分记录
- API--集合框架Vector集合,linkedList,ArrayList,HashSet集合
- ueditor视频上传失败的解决办法
- hdu6090 Rikka with Graph (找规律)