• 请不要在回答技术问题时复制粘贴 AI 生成的内容
kongkongye
V2EX  ›  程序员

复杂的 sql 有办法简化或格式化,或加点注释之类,让它更易读易懂吗?

  •  
  •   kongkongye ·
    kongkongye · Apr 25, 2024 · 3617 views
    This topic created in 930 days ago, the information mentioned may be changed or developed.

    一个复杂的 sql 如果同时包含了 join ,子查询,聚合之类的,就很难阅读,不知道大家有没同感的,以及有什么好办法解决?

    10 replies  •  2024-04-26 14:40:10 +08:00
    hooych
    hooych
    Apr 25, 2024❤️2
    1
    扔给 GPT 啊
    qi1
    qi1
    Apr 25, 2024
    2
    多行 sql 上面,写清楚注释。注释内容包括,引用到的表名,查询出来的结果,和数据关系,如 1:1or 1:n 。这样下次看到注释的时候 基本上就知道 sql 怎么写的
    8355
    8355
    Apr 25, 2024
    3
    不用啊,这种慢查何必折腾它,等 dba 喊你优化啦。
    v1nce
    v1nce
    Apr 25, 2024❤️1
    4
    逻辑尽量写在代码里,sql 尽量简单。不管注释多清晰,逻辑过多的 sql 都会让人头晕,极难维护。大多数情况下,只要索引用的没问题,多几次数据库链接的损耗远比维护复杂 sql 要能接受的多。
    yy77
    yy77
    Apr 25, 2024
    5
    可以用回车分开若干行的,也可以用--来注释。
    hnliuzesen
    hnliuzesen
    Apr 25, 2024
    6
    除了加注释,还可以用 WITH 把一些查询提取成有名字的 CTE
    我用的是 PostgreSQL
    xiangyuecn
    xiangyuecn
    Apr 25, 2024
    7
    换行+缩进。注释不注释倒无所谓,有前面两个可读性强一百倍。搭配上注释 就跟普通编程语言没啥区别了
    StrangerA
    StrangerA
    Apr 25, 2024
    8
    粘贴进 intellij 里 ctrl+shift+L ,GPT 的话等他慢慢出来急死个人。
    dayeye2006199
    dayeye2006199
    Apr 26, 2024
    9
    CTE
    MillaMaxwell
    MillaMaxwell
    Apr 26, 2024
    10
    上家公司前后端 superset 一把梭,那个开发把一堆数据处理的业务全写的 sql ,全是联几十甚至上百张表的查询
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2071 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 15:01 · PVG 23:01 · LAX 07:01 · JFK 10:01
    ♥ Do have faith in what you're doing.