Beeeat’s log

Beeeat’s log

プログラミングで出くわした知識やツール、日常生活、働き方その他色々なことをメモしていくブログ

SQL クライアントツール「DBeaver」が「OSqlEdit」レベルの使いやすさで感動した!!

皆さんはどんな SQL クライアントツールを使っていますか? 私は普段,MySQL を使っているため「Sequel pro」を使っていました.しかし,たまに PotgreSQL も使うことがあるんですね...

「Sequel pro」は MySQL のクライアントツールのため「pgAdmin」や「PG Commander」を使おう...という話になるのですが...一つの SQL クライアントツールで色々な種類の DB を操作したくなりますよね.

そこで思い切って最近の SQL クライアントツールについて調べてみたら「DBeaver」がかなり便利だったので,思いきって「Sequel pro」から移行しました.今回はこの DBeaver について紹介します.

f:id:bake0937:20200427193128p:plain

DBeaver とは?

DBeaver は「DBeaver Corp」が開発したマルチプラットフォーム対応の SQL クライアントツールです.対応している DB は MySQL, PostgreSQL, SQLite, Oracle, MariaDB, Amazon Redshift など殆どの DB に対応しています.

またDB だけではなく,全文検索エンジンの Elasticsearch や Hadoopの上構築されたデータウェアハウス である Apache Hive など様々なデータ分析ツールにも対応しております.

対応している DB はここから確認できます. dbeaver.com

使ってみる

インストール

DBeaver は「Community Edition」と「Enterprise Edition」の2種類があります.今回は無料で使える Community Edition を使ってみます.以下の公式サイトにあるダウンロードリンクからインストールしましょう.

dbeaver.io

Community Edition と Enterprise Edition の比較はここから確認できます. dbeaver.com

使い方

DBeaver を起動し,画面の左上にあるコンセントマークを押すとDBの接続画面が表示されます.

f:id:bake0937:20200427201838p:plain

対応している DB が沢山あってスクショに収まりきらない!!

f:id:bake0937:20200427202729p:plain

こんな感じで DB に接続する情報を入力できます.趣味で作った Webアプリの DB に接続してみます.

f:id:bake0937:20200427202945p:plain

接続に成功するとこんな感じで,DB の情報が表示されます.先程の接続設定で Database を選択していない場合は Host に存在する DB が全て表示されます.

f:id:bake0937:20200427203217p:plain

テーブル名をフィルタリングする

テーブルが沢山ある場合はテーブル名の文字を入れることでフィルタリングできます.

f:id:bake0937:20200427203916p:plain

レコードの値を更新する

接続しているユーザに書き込み権限があればレコードのカラムをダブルクリックすることで編集することができます.

f:id:bake0937:20200427204050p:plain

編集したカラムには色が付きます.この段階ではまだ更新処理(UPDATE)が実行されていません.画面下にある「Save」を押せば実行されます.そのため間違えた値で編集をしても「Save」を押さなければまだ大丈夫です.

f:id:bake0937:20200427204602p:plain

「Save」を押すと色が消えます.上記にもある通り複数のレコードを一気に更新することもできます.

f:id:bake0937:20200427204457p:plain

SQL エディタ

SQL エディタは勿論,文法やテーブル名の補完機能があります.書いた SQL は「ctrl + Enter」で実行できます.

f:id:bake0937:20200427205035p:plain

レコードのコピーも JSON や マークダウン など様々な形式に対応しています.

f:id:bake0937:20200427211231p:plain

SELECT したレコードのカラムを選択した状態で,右クリックを押すと「SQLの生成」から SQL 文を生成することができます.

f:id:bake0937:20200427205541p:plain

「コピー」を押すと,クリップボードにコピーされます.

※今回の記事のためにテストとして作成した DB のため,カラムの値は適当です

f:id:bake0937:20200427205713p:plain

ER図で各テーブルの関係を見てみる

テーブルに制約を設定していれば,「ER図」のタブから各テーブルの関係をER図で見ることができます.これは便利ですね.

f:id:bake0937:20200427210008p:plain

かつて使っていた「OSqlEdit」を思い出した

テーブル名のフィルタリング,直感的な複数レコードの更新...こんな SQL クライアントツールどこかで使ったことであるような...そうです!「OSqlEdit」です.

www.hi-ho.ne.jp

私は新卒の時に業務系の SIer で SE をやっていたのですが,その時現場で使っていた DB は Oracle でした.当時は SQL(PL/SQLも...) をよく書いていて,使いやすい SQL クライアントツールを探すのに苦労していました.その時に先輩にオススメされたのが OSqlEdit でした.

OSqlEdit は今回紹介した DBeaver の便利な機能や(ER図の機能はありませんが),シンプルな UI のため操作がしやすかった記憶があります.当時は最強の SQL クライアントツールだと感じていました.あまりにも便利すぎて READ ONLY ユーザにじゃないと事故るレベルだとも感じていました.

現在は Webエンジニア として転職し,業務で使う DB は MySQL で,使用している PC も MacBook Pro(OSqlEdit は Windows アプリ)のため OSqlEdit が使えません.「OSqlEdit Mac」みたいな感じでググって OSqlEdit レベルで使いやすい SQL クライアントツールをよく探していたのですが,その時は見つかりませんでした.

しかし,「DBeaver」を見つけ,使っていくうちに「お!これ OSqlEdit レベルの使いやすさじゃん!!しかも色んな種類の DB にも対応していて便利!!」とやっと求めていた SQL クライアントツールに巡り会うことができて,モヤモヤしていた気持ちをスッキリさせることができました.

まとめと所感

今回は DBeaver という SQL クライアントツールについて紹介しました.Mac で使える OSqlEdit レベルの便利な SQL クライアントツールをやっと見つけることができて,達成感みたいなものを感じてます.(約3年は掛かった...).

今回の件をきっかけに新卒時代のことも思い出したのですが,当時と今で経験している技術も大分変わったこともしみじみ感じました.

もちろんコマンドライン上から操作するスキルも必要ですが,これで DB 操作がだいぶ楽になったので良かったです.

SQL クライアントをどれにするのか迷っている人や私のようにかつて OSqlEdit を使っていた人にオススメなのでお試しを!!