在我的上一份工作中,我们开发了一个非常依赖数据库的应用程序,我开发了一些格式化标准,这样我们就可以用一个通用的布局编写SQL.我们还开发了编码标准,但这些标准更具体于平台,所以我在这里不赘述.
我很想知道其他人在SQL格式标准中使用了什么.与大多数其他编码环境不同,我还没有在网上找到多少一致意见.
要涵盖主要的查询类型,请执行以下操作:
select
ST.ColumnName1,
JT.ColumnName2,
SJT.ColumnName3
from
SourceTable ST
inner join JoinTable JT
on JT.SourceTableID = ST.SourceTableID
inner join SecondJoinTable SJT
on ST.SourceTableID = SJT.SourceTableID
and JT.Column3 = SJT.Column4
where
ST.SourceTableID = X
and JT.ColumnName3 = Y
在select
、from
和where
之后,对换行有一些分歧. Select 行的目的是允许其他操作员(如"top X")在不改变布局的情况下进行操作.在此基础上,在关键查询元素之后简单地保持一致的换行符似乎可以带来良好的可读性.
在from
和where
之后删除换行符是可以理解的修改.然而,在下面的update
这样的查询中,我们看到where
后面的换行符为我们提供了良好的列对齐.同样,group by
或order by
之后的换行符可以使我们的专栏布局清晰易读.
update
TargetTable
set
ColumnName1 = @value,
ColumnName2 = @value2
where
Condition1 = @test
最后,insert
:
insert into TargetTable (
ColumnName1,
ColumnName2,
ColumnName3
) values (
@value1,
@value2,
@value3
)
在大多数情况下,它们与MS SQL Server Managements Studio/query Analyzer编写SQL的方式没有太大的差异,但它们之间存在差异.
我期待着看到Stack Overflow社区在这个话题上是否有任何共识.我一直很惊讶,有多少开发人员可以遵循其他语言的标准格式,在使用SQL时突然变得如此随意.