君は知っているかSequelProの便利な機能

#はじめに
最近、自宅に帰ってからSequelProを触るようになり、そこで気づいた小技や初めて使った機能を同期に共有したところ絶賛してくれたので、せっかくなので記事にしようと思いました。
##SequelProとは
MysqlのDBを確認できるMac用のGUIアプリケーションです。Mysqlクライアントの中でどれくらいのシェア率があるかまではわからないですが必要な機能は一通り揃っているようです。

なお現在の正式版バージョンは1.1.2であり、このバージョンは最新OSなどで頻繁にクラッシュする報告が多数あり、アップデートも2016年から止まっています。正式版ではなくテストビルド版を使うことでクラッシュを回避することができ、最新のテストビルド版のアップデートは7ヶ月前となっているためクラッシュに悩む人は移行するのもありだと思います。

<img width="1281" alt="20200204-211955.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277953/ab8df6f1-c007-cbef-fe42-3867832803d0.png">

今回はどちらのバージョンでも使用可能なものについて紹介します。

# ちょっと便利な使い方
## タブの複製 - 新しいタブで同じDBサーバに接続する
例えばテーブルAを見ているとき、Aと関連のあるテーブルBを並べて見たいっていうときありますよね。わざわざSELECTしてJOINして見るのも面倒だし、`Cmd + T`で新しいタブを開いて見ればいいやってなると思います。
SequelProには`新規タブでテーブルを開く`という機能があります。テーブルを右クリック（もしくは画面左下の歯車のマーク）して選択すると、接続中の同じDBサーバに接続し今見ているテーブルを新しいタブで開くところまでやってくれます。

<img width="253" alt="20200204-214538.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277953/3b63097a-f9f7-9c14-c8d7-71d792545178.png">

ショートカットキーがデフォルトでは割り当てられていないので、Mac本体の設定で割り当てておくことをお勧めします。（僕は`Cmd + Shift + T`）
これで実質`タブの複製`が実現できます。

## データベース名で絞り込んで移動
例えば、テスト環境にはたくさんのDBが存在するけれど、自分がよく使うのは1つか2つ程度、みたいな環境の人はたくさんいるんじゃないでしょうか。
SequelProでDBを選択するとき、プルダウン形式で選べるのですが、数が多いとスクロールが必要だったり、DB名に番号をつけているような場合辞書順なため1の次は10だったりで少し探しづらいです。
SequelProのショートカットに`Cmd + Shift + D`（データベースへ移動）が割り振られており、これでDBの名前で絞り込み、Enterで即移動することができます。

<img width="491" alt="20200204-220932.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277953/3afaf2af-de51-8322-5cec-c830d17d0c42.png">

移動した後はフォーカスがFilter（テーブルの検索）になっていると思うのでマウスを持たずに一連の動作が可能です。

## カラム名でテーブルを検索したり情報を見たりする
`Cmd + Opt + Ctl + N`というちょっと押しづらいショートカットを使うと、ナビゲーターというものが現れます。ここでは、接続中のサーバの全DBのテーブル名やカラム名を検索をすることができます。検索したカラムをクリックするとメインの画面の方でそのテーブルに移動してくれます。
「あのデータのカラムはnicknameって名前だったけど、なんて名前のテーブルだっけ」みたいなときに`nickname`ですぐに検索できます。一緒に型など簡単な情報も出てくるので、探したかったものかどうかもその場でわかります。

<img width="489" alt="20200204-221838.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277953/e4aeee36-c9cf-e258-a96b-84dd6d284095.png">

逆に`sync`を押すとメイン画面で見ているテーブルの情報がナビゲーターに表示されます。テーブル情報タブより情報量は少ないですが最低限の情報が見れるのでクエリを書くときなどは便利ではないでしょうか。

<img width="494" alt="20200204-221921.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277953/d035c4d3-0416-389f-a61e-45b99ebc4dd1.png">

ただし、DBの数やカラムが多い場合は検索するとSequelProが落ちてしまうので注意しましょう。

## ショートカットから補完機能を呼び出す
クエリタブからクエリを実行できる機能って便利ですよね。履歴が残せたり、行を選んで実行できたりと嬉しい機能が備わっています。便利な機能の一つに、自動で入力候補を補完してくれる機能があるのですが、自然に出てくる候補はDB名、テーブル名、カラム名など区別なく出てきてしまうため、絞り込み切るのに長い文字を打たないといけないことがあります。

<img width="655" alt="20200204-222937.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277953/6555f638-0876-6beb-a670-f9391b704e34.png">

そこで、`Cmd + Opt + {1, 2, 3}`を使うことで、候補となる元の項目を絞ることができます。`Cmd + Opt + 1`だとDB名から、2ならテーブル名、3ならカラム名と候補の元を先に絞り込めます。下の画像は`Cmd + Opt + 2`でテーブル名の補完を呼び出したあと'm'と入力した場合です。最初の画像とは候補が変わっていて探しやすくなっています。

<img width="697" alt="20200204-222817.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277953/3b66b32d-8b08-43d3-2f73-d185e3566416.png">

##カラムを複数条件で楽に検索
テーブルを選択した後、`Cmd + F`でレコードの絞り込みができることは、ほとんどの人がご存知だと思います。フィルターの横にある**＋**ボタンで条件を増やしAND検索できることも、ある程度SequelProを触っている人はご存知の機能だと思います。
（2020/2/6追記）バージョン1.1.2だとこの**＋**ボタンは存在しないようです。

<img width="731" alt="20200204-224656.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277953/511eb5c1-a54a-046d-3fcc-eee61dd3bb9c.png">

この検索ですが、カラムを決めて演算子を決めて入力をするという、当たり前ですが少し面倒な作業に感じます。特定の1レコードを探したい場合はユニークキーで検索すれば条件は一つで済みますが、複数のレコードをざっと見たいときなどはイマイチです。

そんなモヤモヤを解消してくれるのが、`Cmd + Shift + F`によるフィルターです。メイン側の画面に表示されているレコードと同じテーブル形式の入力欄があり、そこの各カラムに検索条件を入れてあげると設定された演算子（デフォルトはLIKE）で絞り込みをしてくれます。ウィンドウの右下で、検索に使う演算子を決めることもできます。
同じ行同士の条件はAND、別の行同士の条件はOR検索としてフィルターすることができます。

<img width="761" alt="20200204-231642.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277953/b07586ec-bba7-349a-51be-9ecf8ca84812.png">

どのカラムも常に同じ条件なのがデメリットですが、ある程度のレコードを絞るような検索はこれで十分便利と思います。（WHERE queryの編集の仕方はわからなかった😭）

#さいごに
SequelProを使うようになってから時間の浅いひよっこなので、慣れた人は普段から使っていた機能かもしれません。僕と同じような駆け出しの方にこの記事が役立てば良いと思います。
他にも便利な機能がありましたらぜひ教えてください。