有没有办法将 SQL 代码模块化,使其更具可读性和可测试性?
我的 SQL 代码经常变成一长串复杂的嵌套连接、内连接等,难以编写和调试。相比之下,在像 Javascript 或 Java 这样的过程语言中,人们会将离散的元素作为单独的函数捏出来,你可以按名称调用。
是的,可以将每个查询编写为完全独立的查询,存储在数据库中或存储过程,但通常我不想更改/混乱数据库,只需查询就可以了,特别是如果 DBA 不希望授予所有用户写入权限。
例如,从概念上讲,一个复杂的查询可能很容易用伪代码描述,如下所示:
(getCustomerProfile)
left join
(getSummarizedCustomerTransactionHistory)
using (customerId)
left join
(getGeographicalSummaries)
using (region, vendor)
...
我意识到从理论上的优势(下面有几个链接)写了很多关于这个主题的文章,但我只是在寻找一种方法来使代码更容易正确编写,并且在编写后更容易阅读。也许只是语法糖来从视觉中抽象出复杂性,如果不是从执行中抽象出来,它会在我试图不看的文字 SQL 中编译下来。类推...
- 手写笔:CSS ::
- CoffeeScript : Javascript ::
- SAS 宏语言: SAS 语言 ::
- ? : SQL
如果特定的 SQL 风格很重要,我的大部分工作都在 PostgresQL 中。