高畑 匡秀

2017.04.13

JetBrains製DBツール「DataGrip」の基本操作

ネイティブアプリの開発からすっかり離れてWebエンジニアの世界にどっぷり使っています。
phpの開発にずっとintelliJを使っていたのですが、やっぱりphpやるときはPhpStorm使いたくなったりiOSやるときにAppCodeもあったほうがいいかなとか
色々考えてもうせっかくだからAll Product Pack買ってしまえということで、えいやで買いました。
そこで以前からちょっと気になっていたDBツールのDataGripも一緒に使えるようになったので主にSequelと操作感などを比較しながら基本的な操作を紹介したいと思います。

SELECT

テーブルを選択して⌘Enterで結果が表示されます
テーブルの検索も入力した文字の部分一致で検索されるので探しやすいです。
表示したいテーブル名の一部を入力して、カーソル上下で移動して、⌘Enter。これで気分良くテーブルの内容表示できます
Sequelだとテーブルの数多くなってくると結構検索しづらかったんですけど、DataGripはさくさく検索できて表示できて使いやすいです

テーブルの内容を表示した後の絞り込みも柔軟にできます。
Filter criteriaの部分に検索条件を自由に入力できます。
Sequelだと条件1つしか入れれなくて結構不便に感じていたのでDataGripのデータ表示の画面は使いやすくて非常に良い感じです。

DDL関連

GUIの画面から操作することで、下に発行されるSQLが表示されるのでわかりやすいです。
型はもちろんのこと、INDEXや外部キーを貼るときにも色々と補完が効くので操作しやすいです
Sequelでも十分に操作しやすかったのでどちらが特に優れているという感じはなく、ほとんど好みによる違いだと思います

DML関連

Sequel同様画面上の値を直接入力してsubmitボタンを押せば更新されます。更新で変更される予定のカラムはハイライトされます

PreferenceからSubmit changes immediatelyにチェックをいれればSequel同様即時反映にできます

DELETEやINSERTも「+」「-」を押せば実行できます。
このあたりの使用感はSequelとほぼ同じです。

SQLを書く

補完が半端なく効く

実際にSQLを書くときにDataGripの真の力が発揮されます。
というのも補完がめちゃくちゃ効きます。この補完力が圧倒的にSequelとの差別化をはかれる部分です。
テーブル名やカラム名など、即座に補完で表示されるのでSQL書く速度があがります。Syntacs Errorも表示されるので実行する前にクエリーがおかしいことがわかります。

サブクエリーのみ実行できる

この機能もたまにお世話になります。複雑なクエリーを見つけたときなどサブクエリーの部分が望みどおりの結果か確認するのにサブクエリーのみ実行して結果を見たりします。

パラメーターを設定できる
地味に便利です。「:hoge」みたいにSQLに書いておけば実行前にすきな値を入れられます

データのImport,Export

個人的にcsvのImportとExportはよく使う機能です。
200万行のデータでカラムはid(int),name(VARCHAR(255)),created_at(DATETIME),updated_at(DATETIME)の4カラムのテーブルを
csvでImport,Exportを試してみます。

Impoty Export
Sequel 150秒 90秒
DataGrip 270秒 40秒

結果、ExportはDataGripが早くて、ImportはSequelの方が早かったです。
DataGripのImport少し遅いですね……ImportするときはSequelの方がよさそうです。

まとめ

SequelでできることはDataGripでもすべてできます。DataGripの操作も1,2日業務で使ってみるとすっかり手に馴染むようになりました。
何よりも補完力はさすがJetBrains製品という感じで文句なしです。この補完力だけでも使っていて気持ちいいのでおすすめです。もうSequelに戻れない……
今回はMySQLで紹介しましたがもちろんほかのDatabaseにも対応しているのでDatabaseを業務などで良く利用する場合は試しに使ってみてもいいかもしれません。