V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
kongkongye
V2EX  ›  程序员

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

  •  
  •   kongkongye ·
    kongkongye · 238 天前 · 2317 次点击
    这是一个创建于 238 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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