SQL で多くのことを行ってきた場合、その作業を完了するために、おそらく何らかの SQL IDE を使用してきたことでしょう。 しかし、その方法でデータベースやテーブルを作成したり、保守したりすることは、マゾヒズムの訓練にさえなります。 dbArtisan や SQL Server の Management Studio などの素晴らしい商用 IDE がありますが、IDE はオープンソースでも十分に(あるいは、場合によってはそれ以上に)機能する分野の 1 つです。 その理由としては、サービス プロバイダーがオープン ソース データベースをより活用していることや、NoSQL のような代替手段の台頭が挙げられます。 statistaのサイトでは、商用データベースの世界的な収益は今後も減少し続けるだろうと指摘しています。
この記事では、Squirrel、HeidiSQL、DBeaver、Tora、OmniDBの5つのSQLクライアントを選択しました。 HeidiSQL と Squirrel はしばらく使っていたので、後者から始めましょう。
Squirrel
5年前に私が働いていた銀行では、クライアントとして Java が好まれ、それが書かれているため、Squirrel がよく選ばれていました。 Sybase も広く使用されており (最も人気のあるデータベースではありませんでしたが)、Squirrel はそれに接続できる数少ないクライアントの 1 つです。 (SybaseはSQL Serverの祖先でもあります。) Squirrel は、すべての主要なデータベース (Oracle、DB2、Informix、Ingres、SQL Server、SAPDB、および Sybase) とその他多くのデータベースの条件を満たし、17 年の実績を持ちます。
しかし、Squirrel は、主に複数のデータベースとの同時セッションをサポートできるために、結局、銀行での運用が禁止されることになりました。 何度かメモリ不足になり、稼働中のデータベースで問題が発生したため、レッドカードが発行されました。 (JDBC のおかげで) カバレッジの広さでは非常にお勧めですが、実行するセッション数に注意してください。 データベースの範囲にはより制限がありますが (MySQL/MariaDB, SQL Server, PostgreSQL のみ)、多くの人にとってはそれで十分です。 私の PC で動作している MariaDB に対して select count (*) SQL コマンドを実行すると、約 2 分かかります。 特に優れているのは、インポート/エクスポート機能とバッチ インポートです。 大きな SQL ファイル (バックアップ エクスポートなど) をクエリ ウィンドウに読み込まずに直接実行できます。
もう 1 つの素晴らしい機能です。 SQL クエリを書いているとき、現在選択されているテーブルの列が、SQL 関数やキーワード、および独自のスニペットとともに別のウィンドウに表示されます。
HeidiSQL は Windows 用ですが、Linux および Mac の Wine Emulator を介して他の場所でも使用できます (ただし、正直なところ、Squirrel または DBeaver のいずれかを使用したほうがよいでしょう)。
DBeaver
DBeaver も Java による SQL クライアントで、JDBC コネクターのように接続可能なデータベースの大きなセットを持っています。 Enterprise バージョンには、NoSQL データベース (Cassandra、MongoDb、および Redis) のサポートが含まれていますが、私が調べたのはコミュニティ版です。
接続ウィザードから試せるデータベースのリストが多数あります。 SQLite はそのデータベースと完璧に動作し、私は感動しました。 私はまだ HeidiSQL を好みますが、機会があれば DBeaver を使用したいと思います。
注意すべき点は、DBeaver はドライバを最初からインストールせず、必要なときに取得します (これは非常に “Eclipse ライク” です)。 これはおそらく Eclipse プラットフォームで構築されているためで、これに慣れている人なら違和感なく使えると思います。 確かに、私は何の問題もなく、非常にキビキビと動いているように感じました。 DBeaver には、Windows と Mac だけでなく、Linux 用の Debian と RPM インストールも含まれています。
Tora
C++ で書かれた Tora を 5 つのうちの 1 つに選んだのは、それが Oracle をサポートし PL/SQL デバッガを持っていたからです。 クロスプラットフォームで、GCC、Clang、MSVC 2013/2015でテストされています。 Oracleのほか、ODBC経由でMySQLやPostgreSQLなどのデータベースもサポートしている。
期待通り、Tora はユーザーインターフェイスに Qt を使用しており、高速ですが、特に MySQL に接続するときに、少し古さを感じます。 Oracle を使っていて、商用ソフトウェアがない場合は Tora を使ってください。しかし MySQL/PostgreSQL や、HeidiSQL、Squirrel、DBeaver のいずれかを使う場合は、おそらくもっと良いでしょう。 それは Python で書かれており、ローカルの Web サーバーとブラウザーをインストールします。 サポートされているデータベースは、Oracle、MySQL、MariaDB、および PostgreSQL です。 SQLite、SQL Server、DB2、Firebird データベースは現在サポートされていませんが、明らかにロードマップにあります。
私は一般的に Web GUI が好きではありませんが、これは素晴らしく見え、非常によく機能します。 HeidiSQL と DBeaver はより良いインポート/エクスポートを提供しますが、OmniDB は将来の開発のための提案にオープンです。 2 つの Java クライアントと同様に、OmniDB はクロスプラットフォームで、最もモダンなルック アンド フィールです。
結論
私は HeidiSQL に慣れていますが、DBeaver の機能には感銘を受けました。 Squirrel は非常に堅実で成熟しています。 OmniDBは、現時点では少し機能が軽量ですが、良さそうです。おそらく、Django CMSを使用しているとは想像できないでしょう。 Tora はかなり良いですが、より良い接続性が欲しいところです。