SQLエディタについてまとめています。
SQLエディタは、SQLクエリの編集・発行・ビジュアル化等をおこなうツール
SQLエディタは、開発・管理目的でSQLを編集するためのツールです。
カラム名を自動取得してタイピングの手間やミスをなくしたり、インデントや改行を最適化する整形機能を持っているものが多いです。SQLクエリを発行し、結果を一覧表示したり、ER図からテーブルを作成したり、テーブルからER図を作成する機能を備えている高機能なものもあります。
データベースエンジンのネイティブな管理ツール
DBサーバのコンソールなどにインストールし、データベース管理用のツールとして使われることが多いのが、データベースのネイティブな管理ツールです。製品の一部として提供されていることが多いです。
たとえば、MySQLには、MySQL Workbenchというツールがあります。MySQL Workbenchは、有償版のMySQL Enterprise Editionの一部として利用可能。
Windows、Linux、Mac OS Xで利用可能で、SQLのシンタックスのカラーハイライト、自動補完、ステートメントの再利用、実行履歴などの基本的な編集機能のほか、ER図、サーバ設定、ユーザ管理、バックアップやリカバリの実行、監査データの調査、データベースの状態監視などをおこなうことができます。
MySQL以外の主要なデータベースのネイティブな管理ツールは以下の通りです。
- Oracle … Oracle SQL Developer
- SQL Server …SQL Server Management Studio (SSMS)
- PostgreSQL … pgAdmin
phpMyAdminは、ウェブから簡単アクセスできるSQLエディタ
サーバにインストールする必要がありますが、インストールしてしまえば開発チーム全員が簡単操作で使えるようになるSQLエディタが、phpMyAdminなどのウェブ系SQLエディタです。
インタフェースが日本語化されているので、データベースに不慣れなメンバーでも比較的使いやすいです。
参考)phpMyAdmin
PHPMyADminは、MySQL用のSQLエディタで、PHPとApacheがインストールされたサーバ上で動作します。
データベースにどういうデータが入っているのかを、ブラウザからアクセスしてパッと見られるのがポイント。
SQLクエリの編集・実行に加えて、データベースの作成・削除、ユーザの作成・管理、テーブルの作成・管理、データの追加や編集・削除、データベースのバックアップなど、管理者向けの機能もひと通り備えています。
しかし、簡単にウェブで操作ができることから、開発環境にインストールされて使われることが多いようです。本番環境のDBサーバにはあまりインストールされない印象。「万が一、リモートからアクセスされると困る」というセキュリティ上の懸念が理由と思われます。
MySQL以外では、PostgreSQL用のSQLエディタが利用できます。
参考)phpPgAdmin
phpPgAdminは、PostgreSQLの8.4.x~11.xまでのバージョンに対応。SQLの実行、データの挿入・更新・削除に加え、以下の機能を備えています。
- ユーザーとグループ
- データベース
- スキーマ
- テーブル、インデックス、制約、トリガー、ルール、特権
- ビュー、シーケンス、関数
- 高度なオブジェクト
- レポート機能
加えて、SQL形式やCSVでのデータダンプ(バックアップ)、インポート(リストア)機能もあり。
Oracle用にかつて、ウェブベースで使えるphpOracleAdminがありましたが、2014年以降更新されておらず、あまり利用されていなかったようです。現在、Oracle用のウェブベースSQLエディタは存在しないようです。
参考)phpOracleAdmin download | SourceForge.net
Microsoft SQL Server用のウェブベースSQLエディタは、当時phpMYAdminというツールがありました。しかし、2013年以降更新されておらず、最新のSQL Serverでは動作しません。
参考)phpMSAdmin download | SourceForge.net
A5:SQL Mk-2は、主要DBに対応したフリーの多機能SQLエディタ
フリーのツールながら、多くのデータベースに対応しているのがA5:SQL Mk-2。
参考)A5:SQL Mk-2 – フリーの汎用SQL開発ツール/ER図ツール
このツールの特徴は、MySQL、Oracle、PostgreSQL、SQL Server、DB2、SQLLite、Microsoft Accessなどの主要データベースに接続できる点。
開発用のPCにインストールすれば、このツールから様々なデータベースにアクセスできるんですね。無償で使える上、2020年現在もメンテナンス・アップデートが行われています。
SQLエディタのDBオブジェクト管理機能
SQLエディタには、データベース、ユーザ、テーブル、インデックス、トリガーなどのデータベースオブジェクトの作成・更新・削除などをおこなう管理機能です。多機能型のSQLエディタには管理者権限用の機能として搭載されていることが多いです。
ビジュアルで理解できる管理機能を提供することで、データベース管理者向けの学習コストを抑えることができる点と、コマンドベースでの管理と比較して経験の浅い管理者のミスを減らせる点がメリットです。
SQLエディタのER図機能
テーブルのリレーション関係を可視化するER図の作成・編集機能が、実際のデータベースのテーブル情報と連動するというすごい機能。
なんと、フリーのA5:SQL Mk-2にも搭載されています。
ER図からテーブルを生成する機能に加えて、テーブル情報からER図を生成するリバースエンジニアリング機能を備えたツールもあります。
データベース設計のER図として利用することで、開発者全員が常に最新のテーブル定義を参照できる点がポイント。設計書の更新の手間と、更新ミスや関連するバグの発生を抑えるのに役立ちます。
データベース構造が変わる可能性が高い開発案件では、インパクトのある機能になるでしょう。
SQLエディタのクエリ整形機能
複雑な条件やジョインを記述した長いSQLクエリでミスが起こりにくいよう、見やすく整形する機能です。
多くのSQLエディタに搭載される機能ですが、整形の精度はさまざま。複雑すぎるクエリや、SQL標準以外のステートメントを使っている場合は誤認識をおこし、整形結果が意図しない結果になることがあります。
テキストエディタ搭載の整形機能や、オンラインで使えるクエリ整形サイトもあるので、合わせて検討すると良いでしょう。
【関連記事】
▶SQL 整形ツール 美しいコードが出力できるテキストエディタはどれ?
SQLエディタのバックアップ・リストア機能
データベースの運用で、データのバックアップ・リストアは必須。要件にもよりますが、ユーザ向けのバックアップ・リストアは開発工数をかけて簡易的なツールを作りこむよりも、SQLエディタの機能を流用したほうがコストを削減できます。
バックアップ(エクスポート)の細かい指定をGUI上から指定でき、リストア(インポート)も簡単操作で完了。
特に、あまり規模の大きくない開発案件でバックアップ・リストア機能を実装する際にはSQLエディタの機能を流用することを検討してみるとよいでしょう。
まとめ
- SQLエディタは、SQLクエリの編集・発行のほか、管理者向け機能を持つものがある。
- SQLエディタには、ネイティブ系、ウェブ系、フリーツールがあるがそれぞれ長所・短所あり。
- SQLエディタの管理者向け機能を運用に組み込むことで、開発コストを抑えられる可能性がある