当前位置:   article > 正文

sql语句多个表补齐四位_SQL学习笔记 - CTE通用表表达式和WITH用法

sql补够4位

CTE or WITH

WITH语句通常被称为通用表表达式(Common Table Expressions)或者CTEs。

WITH语句作为一个辅助语句依附于主语句,WITH语句和主语句都可以是SELECT,INSERT,UPDATE,DELETE中的任何一种语句。

  • A special type of subquery that is declared ahead of your main query.(在主查询之前声明。)
  • Named and referenced later in FROM statement.(在FROM语句中按名称引用它,就像它是数据库中的任何其他表一样。)

创建CTE的语法

  1. WITH cte_name AS(
  2. CTE_query_definition)
  3. 注:可以同时定义1个或多个cte,做法是用逗号','隔开,最后一个cte后不跟','
  4. WITH cte_name1 AS(
  5. CTE_query_definition),
  6. cte_name2 AS(
  7. CTE_query_definition)
  8. ...
  9. Main query

示例

2eee9a8dc7b20a2dcb866485be5e31b6.png

左图中的例子,在inner join中使用子查询s;右侧将s作为CTE定义在主查询之前,之后可以像使用其他表一样,直接引用s。

c7a3e96b474e19e1a2dcc921bc41a597.png
多个CTE

Why use CTEs / CTE优点

  • Exceted once (仅执行一次,然后存储在内存中,可以提高执行效率)
    • CTE is then stored in memory
    • Improves query performance
  • Improving organization of long & complex queries(提升复杂查询的可阅读性、可维护性)
  • Referencing other CTEs(可引用其他的CTE)
  • Referencing itself ( SELF JOIN) (可自引用)

你的点赞是我持续更新的动力~ 谢谢 Thanks♪(・ω・)ノ

其他SQL学习笔记 友情链接:

JessieY:SQL学习笔记 - 窗口函数OVER​zhuanlan.zhihu.com
JessieY:SQL学习笔记 - CASE WHEN THEN​zhuanlan.zhihu.com
JessieY:SQL学习笔记 - GROUP BY / JOIN / UNION​zhuanlan.zhihu.com
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/537763
推荐阅读
相关标签
  

闽ICP备14008679号