当前位置: 首页 > news >正文

南阳网站推广外包上海的网络推广公司

南阳网站推广外包,上海的网络推广公司,教程网网站源码php,百度网站建设公司哪家好全文目录#xff1a; 开篇语#x1f31f; 前言#x1f4dc; 目录#x1f4a1; 什么是CTE#xff1f;#x1f3a8; CTE的语法与结构#x1f4a5; 使用场景#xff1a;CTE何时更香#xff1f;#x1f3ac; CTE实战案例案例1#xff1a;统计每个部门的平均薪资案例2 开篇语 前言 目录 什么是CTE CTE的语法与结构 使用场景CTE何时更香 CTE实战案例案例1统计每个部门的平均薪资案例2递归查询——公司架构层级 递归CTE挑战升级️ CTE与子查询的比较 总结文末 开篇语 哈喽各位小伙伴们你们好呀我是喵手。运营社区C站/掘金/腾讯云/阿里云/华为云/51CTO欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点并以文字的形式跟大家一起交流互相学习一个人虽可以走的更快但一群人可以走的更远。 我是一名后端开发爱好者工作日常接触到最多的就是Java语言啦所以我都尽量抽业余时间把自己所学到所会的通过文章的形式进行输出希望以这种方式帮助到更多的初学者或者想入门的小伙伴们同时也能对自己的技术进行沉淀加以复盘查缺补漏。 小伙伴们在批阅的过程中如果觉得文章不错欢迎点赞、收藏、关注哦。三连即是对作者我写作道路上最好的鼓励与支持 前言 Hello各位数据库玩家们在SQL查询中我们有时会写出长到让人窒息的查询语句越往下读脑子越容易变成一团浆糊……有没有想过有没有更简洁、更优雅的方式来写出复杂查询答案就是今天的主角公用表表达式CTECommon Table Expressions。如果你对SQL优化、可读性提升以及代码复用有兴趣那就别走开接下来我们一起探索CTE的魅力 目录 什么是CTE CTE的语法与结构 使用场景CTE何时更香 CTE实战案例 递归CTE挑战升级️ CTE与子查询的比较 总结 什么是CTE 公用表表达式CTE其实是SQL语句中的“临时表”定义后可以在同一个查询中多次使用。相比传统子查询CTE让代码更简洁、结构更清晰。CTE的出现就是为了提升SQL查询的可读性特别是对于复杂查询场景CTE简直是救世主 简而言之CTE是SQL代码中的“局部变量”你可以用它来暂时存储中间结果就像在打游戏时暂存进度一样。 CTE的语法与结构 写CTE其实很简单来个大体结构先 WITH cte_name AS (-- 这里放查询逻辑SELECT column1, column2FROM your_tableWHERE conditions ) SELECT * FROM cte_name;基本语法分为三步 使用关键字WITH引入CTE。起个名字比如cte_name方便后续调用。在CTE内写SQL查询随后在主查询中使用。 是不是挺轻松现在让我们进入更有趣的实战环节吧 使用场景CTE何时更香 CTE非常适合以下场景 多步查询的中间结果如果查询逻辑复杂有多步计算的需求可以用CTE来清晰地表达每一步。递归查询想从某个父节点找到所有子节点使用递归CTE非常合适。代码复用在一个查询中多次用到同一中间表时CTE比子查询更直观。 小提示CTE并不是性能优化的“灵丹妙药”更多的是一种结构优化。所以有些场景下CTE可能会提高性能但更多时候它的作用是提升代码的可读性。 CTE实战案例 案例1统计每个部门的平均薪资 假设我们有一张员工表包含员工姓名、部门ID和薪资信息。我们想统计每个部门的平均薪资最基础的写法可能是这样的 SELECT department_id, AVG(salary) AS avg_salary FROM employees GROUP BY department_id;不过假设我们还想加入一些复杂的筛选条件和分组逻辑这时可以使用CTE来优化代码的结构 WITH department_avg AS (SELECT department_id, AVG(salary) AS avg_salaryFROM employeesGROUP BY department_id ) SELECT d.department_id, e.employee_name, department_avg.avg_salary FROM employees e JOIN department_avg d ON e.department_id d.department_id WHERE e.salary department_avg.avg_salary;在这个例子中我们先通过CTE计算出每个部门的平均薪资再通过主查询对比员工的薪资是否高于部门平均值。这样分步骤编写逻辑一目了然。 案例2递归查询——公司架构层级 递归CTE也是非常经典的应用场景。假设我们有一张表记录了员工与上级的关系employee_id、manager_id。如果我们想查看某个员工的所有上下级关系就可以使用递归CTE来解决这个问题。 WITH RECURSIVE org_chart AS (SELECT employee_id, manager_id, 1 AS levelFROM employeesWHERE manager_id IS NULL -- 找到顶层管理者UNION ALLSELECT e.employee_id, e.manager_id, org_chart.level 1FROM employees eINNER JOIN org_chart ON e.manager_id org_chart.employee_id ) SELECT * FROM org_chart;这里的递归CTE通过自连接实现层级递归将顶层管理者的所有下属关系输出。这个查询语句让人耳目一新使用递归CTE后复杂的上下级关系链条也变得很清晰。‍ 递归CTE挑战升级 递归CTE不仅能用来处理员工层级关系还能应对例如路径分析、数列生成等场景。递归CTE的核心在于自我调用但也要小心使用避免形成“死循环”。 提示递归CTE默认会有100层的递归限制避免无限循环。使用时建议给递归CTE的层数设限以提高查询的稳定性。 ️ CTE与子查询的比较 很多同学会问CTE和子查询到底有啥不同其实两者都能实现类似的效果但在代码结构上CTE往往更直观、易读。以下是两者的对比 特点CTE子查询可读性 易读 略复杂重用性 可以在主查询多次调用 通常只能使用一次性能优化 有时会增加性能开销 有时更快适用场景复杂查询、递归查询简单查询 小贴士如果查询比较简单建议使用子查询如果查询逻辑较复杂且需要复用中间结果CTE则是更好的选择。 总结 CTE带来的不仅仅是SQL结构上的优化更是一种“代码洁癖”式的编程体验。通过CTE你的SQL查询代码会更加整洁、可读性更强。在合适的场景下使用CTE代码不仅不会失去性能优势反而更容易维护、优化。 在下次编写复杂SQL查询时记得考虑CTE哦它会帮你提升代码的美观度和可读性希望这篇文章对你理解CTE有所帮助祝大家写SQL越来越顺手 … … 文末 好啦以上就是我这期的全部内容如果有任何疑问欢迎下方留言哦咱们下期见。 … … 学习不分先后知识不分多少事无巨细当以虚心求教三人行必有我师焉 wished for you successed ⭐️若喜欢我就请关注我叭。 ⭐️若对您有用就请点赞叭。 ⭐️若有疑问就请评论留言告诉我叭。
http://www.hkea.cn/news/14344324/

相关文章:

  • 微信公众号可以做微网站益阳市住房和建设局 网站
  • 手机网站跳转怎么做北京到安阳的火车票时刻表查询
  • 创办网站需要哪些步骤番禺网站开发费用
  • 阿里巴巴网站建设基本内容免费服务器安全软件
  • 齐齐哈尔企业网站排名优化潘多拉固件建设网站
  • 青岛网站建设电话设计网页的三大工具是什么
  • 中国数学外国人做视频网站建网站哪家好北京
  • 做网上购物网站南通网站建设项目
  • 建站用wordpress 起飞了聊城菜鸟网站建设公司
  • 在线转格式网站怎么做flash网站代码
  • 潍坊品牌网站建设公司营销型网站建设细节
  • 一般网站是怎么做的哪个网站银锭专业做银锭的
  • 北京网站建设公司价格蚌埠企业网站建设套餐
  • 在哪个网站申请建设资质商城类app开发价格
  • 网站的布局设计开发公司总工年终总结
  • 廊坊门户网站电商网站建设概念
  • 商务网站设计报告在网站上显示地图
  • 百度指数平台广东培训seo
  • 企业网站的首页网站内链优化的角度
  • 综合类网站怎么做微信朋友圈广告在哪里做
  • 厦门市网站建设wordpress微论坛主题
  • 锦州建设局网站虚拟邮箱注册网站
  • 湖南营销型企业网站开发手机网站建设动态
  • 自己做的网站用别的电脑怎么访问长沙网站制作品牌
  • 爱站网反链查询网站公司的客户怎么来
  • 制作网站的公司哪家比较好申请域名步骤
  • 河南省建设厅专业业务系统网站营销型wordpress模板下载
  • 容桂网站设计制作平面广告作品分析
  • 推荐做幻灯片搜图网站搜索网站大全排名
  • 搭建网站需要什么技术一元夺宝网站建设