【SQL整形】ルールや方法まとめ:サンプル多数ありここでは、ORACLEデータベースにおける、SQLの整形の方法を紹介します。・SQLの整形やメリットについて解説します・SQLの整形ルールについて紹介します・SQLの整形方法を紹介しますSQLの整形とはSQLの整形とは、SQLのコードを読みやすく整えることです。◆SQL整形を行うとき・プログラム作成時にSQLを整形しておく・プログラム改修時にSQLを整形して、ソースコードを読み解く・SQLチューニング時にSQLを整形して、改善ポイントを検討する例えば、↓のようなSQLです。実行することは出来ますが非常に見づらいです。col5='hogehoge';SQLのインデントやスペースを整えてると↓のように見やすくなります。='hogehoge';SQL整形のメリットSQL整形すると次のようなメリットがあります。1.可読性が高くなる2.保守性が高くなる3.チューニングしやすい詳しく解説していきます。1.可読性が高くなるSQL整形すると、非常に読みやすくなります。あるSQLに何らか問題があると分かった場合です。SQLが読みやすいと瞬時に解決することが出来ます。他にも、SQLの修正プランを上司や顧客に提示する時やミーティングで説明するときです。SQLが整形されているとよりスムーズに議論を交わすことが出来ます。SQL自体が読めない人間には一切通じませんが。2.保守性が高くなるSQLを整形しておくと、保守性が高くなります。Aさんが作ったSQLを自分が修正するときです。Aさんが作ったSQLがめちゃくちゃだと、読むのに時間がかかります。分かりづらい記述になっていると、修正するときにミスを起こしやすくなります。SQL整形して読みやすい状態にしておくと、修正も速くでき、ミスも減るので保守性が上がります。3.チューニングしやすいSQL整形しておくと、チューニングしやすいです。チューニングの必要な遅いSQLというのは、テーブルが数十個や条件が複雑に絡み合っていたりします。場合、ログから取得することが多いので、SQL整形されていません。そのままでは読み解くことは不可能なので、SQL整形をします。SQL整形することで、どのテーブルから、どんな条件で、どのカラムをSELECTしているか、といことを正確に読み解き、チューニングポイントを洗い出します。SQLチューニングするときには、必須の作業になってきます。SQLを整形するルールSQLを整形するときの主なルールを私の経験を中心に紹介します。◆SQL整形をする主なルール1.インデントを合わせる2.大文字小文字を使い分ける3.結合条件と抽出条件を整理する詳しく解説していきます。1.インデントを合わせるSQL整形では、インデントを合わせることで、可読性が上がります。SELECT句の列名のインデントを揃えて書きます。このときインデントは半角スペース2個もしくは4個くらいで良いと思います。a.col3他にも、カンマの位置を前に持ってきてインデントを揃える方法もあります。好みにもよりますが、私は上記のほうが好きですね。a.col3・例2:FROM句これもSELECT句と同じ考え方でインデントを合わせます。ちなみにテーブルの別名ですが、個人的にはa,b,cと順番につけていくのが単純で分かりやすいと思っていますが、プロジェクトや担当システムでは、TB1,TB2のようにつけていくようにルール決めされている場合もあるので注意が必要です。b・例3:WHERE句こちらも考え方は同じです。インデントを合わせます。'hogehoge';カンマの位置を変えて、↓のように書くこともできます。'hogehoge';2.大文字小文字を使い分ける2つ目が大文字と小文字を使い分けることです。・テーブル名やカラム名:小文字といったように分けて置くことで、どこか構文でどこがテーブル名や列名なのか、分かりやすくしまう。='hogehoge';3.結合条件と抽出条件を整理するSQL整形するときには、結合条件と抽出条件を整理するとより分かりやすくなります。次のようなSQLは、テーブル同士を結合する条件やデータを絞り込むための抽出条件が混ざっており、非常に分かりづらいです。次のSQLのように、抽出条件を先に並べて、結合条件は後ろに書くと読みやすくなります。抽出条件についても、tab1のテーブルの抽出条件、tab2のテーブルの抽出条件と言う風に順番でまとめていくと、より一層分かりやすいです。上記では、これまで私が経験してきた中で遭遇した主なルールを説明しました。注意してもらいたいのですが、担当しているプロジェクトやシステム、運用保守のルールによって、SQLコーディング規約が定められていることが多いです。ご自身の担当しているプロジェクトやシステムの規約を確認した上で整形していくことをおすすめします。SQLを整形する方法ここからはSQLを整形する方法を紹介します。1.ObjectBrowserやosqleditを使う2.手作業でSQL整形する3.WEBサイトを使う詳しく解説していきます。1.ObjectBrowserやosqleditを使う1つ目は、ObjectBrowserやosqleditを使う方法です。ORACLEデータベースを利用している環境であれば、ObjectBrowserやosqleditがといったORACLE関連ツールが使えることが多いです。この2つのツールには、「SQL整形」という機能があり、SQLを自動で整形してくれます。SQL整形機能を使って思い通りの形にならないところを微修正すると手早くできます。osqleditについては、「SQL実行ツールosqleditのオススメ設定」でおすすめの設定も紹介しているので、ぜひ参考にしてください。2.手作業でSQL整形するテキストエディタ(sakuraや秀丸、メモ帳)を使って、手作業でSQL整形する方法です。ObjectBrowserやosqleditでSQL整形した後の微修正をするとき、またはObjectBrowserやosqleditが使えない状況の場合には、手作業でSQL整形します。私がおすすめするのはサクラエディタです。「ALTキー」の次に↓矢印を押すと、複数の行をまとめて操作できます。同時に10行の先頭に空白を入れるといった操作が可能です。ツールを使うよりも多少時間はかかりますが、どんな環境でも使えるので、便利です。3.WEBサイトを使うSQL整形のできるWEBサイトを使う方法です。個人的にはあまりおすすめできません。SQLには、テーブル名や列名が入っています。条件でしている値に’〇×会社’とか、固有名詞が入っていることがあります。外部に漏らしてはいけない情報がSQLに含まれていることがあるからです。多くのプロジェクトやシステムでは、外部サイトにプログラムのコードやデータを入力することは禁止されています。ビジネスメールの英語の翻訳も禁止されていたりしますので、SQLもアウトだと思います。自己学習のために作ったSQLを整形するにはとても簡単で便利なので良いと思います。まとめ最後までお読み頂きありがとうございます。私も過去にSQL整形で苦労した記憶があります。50個とか100個のテーブルが書かれたSQLや整形すると1,000行を超えるSQLがあり、途方もない時間を要しました。整形して理解するのも大変でした。そんなSQLの経験から「SQLのレスポンスが遅い原因3つ」や「SELECT文のSQLチューニング方法まとめ」にまとめていますので、よければぜひ参考にしてください。