AtomエディタでSQL文の自動整形機能を実装する方法の紹介です。
Atomエディタには ' atom-beautify ' というソースコードを自動で整形するプラグインが用意されており、javascript、Ruby、Python ... etc など 様々な言語に対応しています。
そんなソースフォーマッティングですが、Beaurify上で SQL文の自動整形機能を導入する方法を紹介します。
- Atomエディタ上でSQL文のフォーマッティングが出来るようになります

AtomエディタでSQL文の自動整形機能を実装するには依存するパッケージを用意する必要があります。
* 依存しているパッケージ
- Atom Beautify (自動整形するAtom用プラグイン)
- Python ( プログラミング言語 Python の実行環境 )
- sqlparse ( SQL整形に必要なPythonのパッケージ )
# atom-beutify が既に導入されている場合は必要ありません
apm install atom-beautify
# 依存パッケージ sqlparseのインストール * 事前にPythonのインストールが必要になります
pip install --upgrade sqlparse
# 環境によっては下記 * python3のpipを使用
pip3 install --upgrade sqlparse
依存パッケージの導入が完了すれば、Beautifyと同じ ' Ctrl-Alt-B ' のショートカットキーで SQL文の整形が出来るようになります。

atom-beautifyにはSQL文フォーマット用の、幾つかの設定がオプションされており、' Keywords
'の 設定によってフォーマットするSQLを 好みの構文に指定することができます。
Settings -> Packages -> atom-beautify
' から 
# 元になるSQL文
select distinct salary from employee where salary not in(select salary from employee where salary < any (select salary from employee))
- unchanged
' unchanged
' 構文を変更せずに、SQL文を整形するオプションです。
select distinct salary
from employee
where salary not in
(select salary
from employee
where salary < any
(select salary
from employee))
- lower
' lower
' は SQL文を小文字に変更しつつ整形するオプションです。SQL文に大文字が混ざっていても全て小文字に変更されます。
* SELECT => select
select distinct salary
from employee
where salary not in
(select salary
from employee
where salary < any
(select salary
from employee))
- upper
' upper
' オプションはSQL文を大文字に変更、整形するオプションです。デフォルトではこの設定になっています。
* select => SELECT
SELECT DISTINCT salary
FROM employee
WHERE salary NOT IN
(SELECT salary
FROM employee
WHERE salary < ANY
(SELECT salary
FROM employee))
- capitalize
' capitalize
' は先頭を大文字に変更するオプションです。SQL文の予約語は大文字から始まるように変更されます。
* select => Select
Select Distinct salary
From employee
Where salary Not In
(Select salary
From employee
Where salary < Any
(Select salary
From employee))
以上が Atomで SQL文のフォーマッティング機能を導入する方法の紹介でした。複雑なクエリの見直しをする時などに便利な機能です。