私の前の仕事では、非常にデータベースを多用するアプリケーションに取り組み、共通のレイアウトで全員が 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
。選択行の意図は、レイアウトを変更せずに「top X」などの他の演算子を許可することです。それに続いて、主要なクエリ要素の後に一貫した改行を維持するだけで、読みやすさが向上するように思われました。
from
andの後の改行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 / クエリ アナライザーが SQL を書き出す方法からそれほど逸脱していませんが、違いはあります。
このトピックについて Stack Overflow コミュニティでコンセンサスが得られるかどうかを楽しみにしています。多くの開発者が他の言語の標準フォーマットに従っていて、SQL を実行したときに突然ランダムに実行できることに、私はいつも驚かされます。