·4分で読めます

Mac向けオートコンプリート機能付きSQLiteクエリエディタ

オートコンプリートなしでSQLiteデータベースにSQLクエリを書くというのは、テーブル名や列名を確認するために、スキーマ表示とエディタの間を絶えず行き来することを意味します。

30個のテーブルを持つSQLiteデータベースに対してSELECTクエリを書いているとします。テーブル名はuser_sessionssession_logsのようなものだったと記憶していますが——どちらだったでしょうか?タイムスタンプの列はcreated_attimestamp、それともdate_createdでしょうか?sqlite3のCLIでは、.schemaモードに切り替えてテーブルを調べ、クエリの記述に戻り、列を参照するたびにこれを繰り返すことになります。実は、この文脈の切り替えにこそ、クエリを書く時間の大半が費やされているのです。

オートコンプリートがないことの代償

sqlite3のCLIには、テーブル名や列名のオートコンプリートがありません。記憶を頼りに入力し、何かを打ち間違えれば、入力中ではなく実行後にエラーが返ってきます。テーブルが数個しかない単純なデータベースであれば、何とかなります。しかし何十ものテーブルと何百もの列を持つデータベースでは、これは生産性に対する絶え間ない負担になります。

テーブルのスキーマをメモファイルにコピーして、クエリを書きながら参照する開発者もいます。.tablesPRAGMA table_info(tablename);を繰り返し実行する人もいます。どちらのアプローチも、欠けている機能を補うための回避策にすぎません——本来、クエリエディタはスキーマを把握し、正しいSQLを書く手助けをしてくれるべきなのです。

DataGripのような本格的なデータベースIDEは優れたオートコンプリートを提供しますが、高価で重く、エンタープライズ向けのワークフローのために設計されています。ローカルのSQLiteファイルのために、テーブル名の候補を得るためだけにサブスクリプション制のIDEが必要になるべきではありません。

Tomeのオートコンプリート付きクエリエディタ

Tomeには、データベースのスキーマを把握したSQLクエリエディタが搭載されています。テーブル名を入力し始めれば一致する候補が提案されます。テーブルを参照すれば、列名が補完候補として表示されます。本格的なIDEではありませんが、複雑さを増すことなくSQLiteのクエリを速く書けるようにする、ちょうど良いレベルのサポートです。

Tome SQL query editor with autocomplete on Mac

スキーマを理解した候補表示

Tomeはファイルを開くときにデータベースのスキーマを読み込みます。入力中には、テーブル名、列名、SQLiteのキーワードがすべて候補として表示されます。列名を暗記したり、クエリの途中でスキーマブラウザに切り替えたりする必要はありません。

シンタックスハイライト

SQLキーワード、文字列リテラル、数値、識別子は色分けされます。エラーメッセージを読んでから気づくのではなく、クエリを実行する前に引用符の抜けや打ち間違えたキーワードに気づけます。

ネイティブなグリッドに表示される結果

クエリの結果は、ネイティブなmacOSのテーブルビューに即座に表示されます。列の並べ替え、サイズ変更、大きな結果セットのスムーズなスクロールが可能です。結果をコピーしたり、特定のセルを選択したりできます——このグリッドは、ウェブビューで描画されるHTMLテーブルではなく、きちんとしたMacのデータビューとして振る舞います。

Mac App StoreでTomeを入手する

次の記事

Tome

Browse, query, and edit SQLite databases in a native Mac app.

Get Tome on the Mac App Store