Sublime Text 3 で SQL を実行する方法 (SQLTools)


Sublime Text 3 で SQL を実行する方法

SQLTools とは?

Sublime Text 3 エディタの中で書いた SQL をそのままデータベースに対して実行できたら非常に便利です。それを実現してくれるのが SQLTools というツールです。

https://github.com/mtxr/SQLTools

SQLTools がサポートしているデータベースは、PostgreSQL, MySQL, Oracle, MSSQL, Vertica, Firebird, (SQLite) となっています。

また SQLTools は次のような機能を提供してくれますので、開発時には非常に役立ちます。

SQLTools の機能一覧

  • 高度な自動補完 (PostgreSQL, MySQL, Oracle, MSSQL, Vertica, Firebird)
  • SQL の実行 (`CTRL+e, CTRL+e`) [CTRL+e を2回押す]
  • テーブルスキーマを見る機能 (`CTRL+e, CTRL+d`)
  • SQL 実行履歴を見る機能 (`CTRL+e, CTRL+h`)
  • テーブルデータを表示 (`CTRL+e, CTRL+s`)
  • SQL の実行計画を表示 (PostgreSQL, MySQL, Oracle, Vertica, SQLite) (`CTRL+e, CTRL+x`)
  • SQL を整形 (`CTRL+e, CTRL+b`)
  • スレッドサポート (Sublime Text 3 がロックされるのを防ぐ)
  • SQL タイムアウト (SQL 実行に時間がかかる場合スレッドを KILL する)
  • エスケープを削除する (PHP の \" を " に置き換える)
  • SQL を保存する機能 (`CTRL+e, CTRL+q`)
  • 保存した SQL の一覧表示と実行 (`CTRL+e, CTRL+a`)
  • 保存した SQL を削除 (`CTRL+e, CTRL+r`)
とても高機能で開発効率が格段に向上しますので、以降で導入していきましょう。




Sublime Text 3 に SQLTools パッケージをインストールする

パッケージコントロールから "Package Control: Install Package" を選択後、以下のように SQLTools をインストールします。

1. CTRL+SHIFT+p を押す
2. 入力欄に Install Package と打つ
3. sqltools と打つと次のように表示されますのでクリックしてインストール


データベースクライアントソフトウェアを導入する

SQLTools は接続するデータベースのクライアントソフトウェアを必要としますので、まだインストールしていない場合にはそれぞれのソフトウェアをインストールします。

Oracle データベースに接続するには Oracle Instant Client を Windows にインストールする方法 で Oracle Instant Client をインストールします。

MySQL データベースに接続するには Microsoft Windows に MySQL をインストールする で MySQL をインストールします。

PostgreSQL データベースに接続するには PostgreSQLのダウンロード及びインストール で PostgreSQL をインストールします。

Microsoft SQL Server データベースに接続するには SQL Server 2016 Expressのインストール及び設定 で Microsoft SQL Server Express をインストールします。


SQLTools の設定を行う

SQLTools に対してデータベースへ接続するための設定を行います。

Preferences => Package Settings => SQLTools => Settings を開きます。


すると次のように SQLTools の設定ファイルが開かれます。

画面左側の内容を全て右側の画面にコピー&ペーストします。左側のファイルの設定は全体設定で、右側はユーザー設定です。設定を変更する場合には通常はユーザー設定を変更するため、全体設定の内容を全てユーザー設定ファイルにコピーしています。

下図のような "cli" という段落に移動し、各データベースへ接続するためのコマンドの場所を設定します。

ここでは MySQL、PostgreSQL、Oracle のみ設定していますが、その他のデータベースも同様に設定できます。今回は次のように各データベースの接続ツールの場所を記載します。インストールするバージョンや種類によって場所は異なります。

[MySQL]
"mysql"   : "C:/xampp/mysql/bin/mysql.exe",

[PostgreSQL]
"pgsql"   : "C:/Program Files/PostgreSQL/9.3/bin/psql.exe",

[Oracle]
"oracle"  : "C:/APPL/instantclient-windows.x64-12.2.0.1.0/instantclient_12_2/sqlplus.exe",

設定を終えたら画面を閉じて設定を保存します。


データベース接続を追加する

次に Sublime Text 3 から接続する先のデータベース接続を定義します。

下図のように Preferences => Package Settings => SQLTools => Connections を開きます。

"Connections" 設定はデータベースの接続を1つづつ定義するファイルです。左側の内容と右側の画面の内容は同じはずですが、もし違っていれば右側の内容を全て左側の画面にコピー&ペーストします。

ここからは右側の画面の内容(ユーザー設定)のみ変更していきます。データベースの種類に応じて設定例が書いてありますので、基本的にはそのままサンプルをコピーして右側画面の一番下の部分に貼り付け、適時変更していきます。

変更が終わったら画面を閉じて設定を保存します。


データベースに接続する

Sublime Text 3 からデータベースに接続するには、CTRL+SHIFT+p コマンドで設定画面を開いて st: と入力します。その中で "ST: Select Connection" を選択します (下図青丸)。

すると下図のように設定したデータベース一覧が表示されます。この中から接続したいデータベースを選んで接続します。もしデータベース一覧が表示されない場合には、Sublime Text 3 を再起動、それでも表示されない場合にはデータベース接続設定の見直しをして Sublime Text 3 を再起動します。


Sublime Text 3 エディタ内で SQL を実行

ここでは PostgreSQL データベースに接続して SQL を実行してみます。実行する SQL を選択状態にして CTRL+e、CTRL+e (CTRL キーを押しながら e を2回) を叩くと、SQL が実行されます。

画面が自動的に上下に分割され、上画面には SQL が表示され、下画面には SQL 実行結果が表示されます。また SQL にエラーがあれば下画面にエラーメッセージが表示されます。

Sublime Text 3 の中だけで SQL を実行してその結果も取得することによって確実に作業効率が上がりますし、結果のコピー&ペーストも自由自在です。


更なるカスタマイズ

SQLTools の設定をもう少し調整することで更に便利になります。SQLTools の設定を開き、ユーザー設定の中の "cli_options" という部分に各データベース毎の設定を記述できるようになっています。この設定を変更することでもう少し見やすく便利にすることが出来ます。

例えば PostgreSQL データベースの場合、"args" という部分に psql コマンドのオプションを付け加えることで表示フォーマットを見やすくすることが出来ます。

"args": "-h {host} -p {port} -U {username} -d {database}",

"args": "-h {host} -p {port} -U {username} -d {database} -P border=2 -P linestyle=unicode ",

この設定を行った後に前述の SQL を実行すると、枠線がキレイになっているのが分かります。

その他のデータベースについても "cli_options" の設定を調整することで、もっと便利に SQLTools を使うことが出来るようになります。