atomエディタにSQLフォーマッターを導入する



AtomエディタでSQL文の自動整形機能を実装する方法の紹介です。

Atomエディタには ' atom-beautify ' というソースコードを自動で整形するプラグインが用意されており、javascript、Ruby、Python ... etc など 様々な言語に対応しています。

そんなソースフォーマッティングですが、Beaurify上で SQL文の自動整形機能を導入する方法を紹介します。

今回すること

- Atomエディタ上で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文の整形が出来るようになります。

* SQL文のフォーマット


  beautifyの設定

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))


Summary

以上が Atomで SQL文のフォーマッティング機能を導入する方法の紹介でした。複雑なクエリの見直しをする時などに便利な機能です。

 

この記事のカテゴリ
プログラミング

この記事に付けられているタグ