本文へスキップ

毎日 TablePro をお使いですか?ライセンスで有料機能が使え、次のリリースを支えられます。 ライセンスを購入ライセンスで TablePro を支援

クエリを書き、実行し、理解する

稼働中のデータベースに SQL を書く方へ。スキーマを参照しながら記述し、一つの文やスクリプト全体を実行し、残しておきたいクエリを保存し、遅くなった原因を調べられます。ここで紹介するのは Mac アプリの機能です。最後の節では iPhone と iPad を説明します。
MaciPhone・iPad

このページの有料機能:Query Insights (Starter)とResult Charts (Starter)。その他はすべて無料です。

スキーマを理解するエディタ

入力中に自動補完が接続のスキーマを参照します。FROM や JOIN の後のテーブル、エイリアスのカラム、その文の前方で定義した CTE やサブクエリのカラムも候補になります。ハイライトには tree-sitter を使い、⌘⇧L はコメントを残したままカーソル位置の文を整形します。

⌘⏎ はカーソル位置の文または選択範囲、⌘⇧⏎ はすべての文を実行し、⌘⌥⏎ は行数制限なしで実行します。⌘. はキャンセルです。通常の文のバッチは一つのトランザクションで実行し、一つでも失敗するとロールバックします。例外は、自分でトランザクションを管理するスクリプト、SQL Server スクリプト、VACUUM などトランザクション内に置けない文、および独自にコミットする MySQL、MariaDB、Oracle の DDL です。

  • ガターに文のマーカーを表示し、それぞれに実行ボタンを用意。
  • 正規表現に対応した検索と置換。
  • 移動、レジスタとマクロに対応する Vim モード。:w でクエリを実行。
  • .sql ファイルをクエリタブとして開き、編集し、保存。
TablePro の SQL エディタ。recent_orders という CTE を users に結合するクエリと、CTE の列を表示する自動補完リスト。

パラメータ、履歴と保存済みクエリ

クエリに :customer_id を書くと、実行前に TablePro が値と型を尋ねます。ドライバーが対応する場合は、値をネイティブにバインドします。

実行したすべてのクエリはローカル履歴(⌘Y)に入り、全文検索とソース、失敗、期間のフィルターを使えます。既定では 10,000 件を 90 日間保持し、同期しません。

クエリに dau などのキーワードを付けて保存すると、エディタでそのキーワードを入力して展開できます。保存済みクエリにはバージョン履歴があります。リンクした SQL フォルダは、.sql ファイルのフォルダとサイドバーを双方向に同期し、ファイルごとに Git ステータスの文字を表示します。この機能は無料で、共有接続ファイル用の Starter 機能 Linked Folders とは別です。

:customer_id と :since パラメータを使うクエリ、値を入力するパネル、クエリ履歴のドロワー。

クイックオープンとタブ

Open Quickly(⌘⇧O)は、開いているすべての接続からテーブル、ビュー、システムテーブルを探し、保存済みと最近のクエリも検索します。各タブは独自の SQL、並べ替え、フィルターとカラム幅を保持し、アプリを終了して再び開いても復元されます。⌃Tab で直近に使ったタブを切り替えられます。

プランを読み、比較し、追跡する

EXPLAIN と EXPLAIN Compare

⌥⌘E はクエリのプランを図、コストバー付きのツリー、またはエンジンの生の出力で表示します。同じクエリの過去の実行を基準として選ぶと、Compare が遅くなったか、プランが変わったかを示します。15% 未満の差はノイズとして扱います。どちらも無料です。

ドライランでコスト推定
Google BigQuery
EXPLAIN 非対応の SQL エンジン
SQL Server、Oracle、Beancount
orders に対するクエリの EXPLAIN Compare。計画が Index Scan から Seq Scan に変わり、クエリがベースラインより遅くなったことを示しています。

クエリ分析

Query Insights:Starter プラン

Query Insights はこの Mac のクエリ履歴を読み、最も多く実行したクエリ、最も遅いクエリ、失敗したクエリ、前の期間より遅くなったクエリを順位付けします。クエリは形式ごとにまとめるため、異なる値で実行した同じ文は一つとして数えます。数値は Mac 上で計算し、アップロードしません。

過去 7 日間の Query Insights。Most Run、Slowest、Got Slower のリストの上に日ごとの成功・失敗クエリのグラフがあり、一つのクエリ形式が Got Slower と表示されています。

結果をグラフや地図で見る

同じタブで、結果をグリッドからグラフや地図に切り替え、また戻せます。

結果グラフ

Result Charts:Starter プラン

結果を棒、折れ線、面、散布図として描けます。日付には時間軸を使い、選んだカラムの値ごとに系列を作成します。グラフは先頭 50,000 行から最大 2,000 点、20 系列を描画し、すべてを描けない場合はツールバーに表示します。

orders テーブルの月ごとの売上を表す折れ線グラフ。注文のステータスごとに一本の線があります。

地図ビュー

カラムに WKT、WKB、GeoJSON、ClickHouse タプルや Elasticsearch の geo_point 値としてジオメトリが入っていると、地図ビューは Apple マップ上に描画し、図形を選ぶとその行が選択されます。行データは Mac に残り、地図タイルは Apple が提供します。地図ビューは無料です。

Map ビューで PostGIS テーブルの居住地を地図に表示し、行インスペクタに選択された地点のパリを表示しています。

SQL を使わないエンジン

SQL を使わない接続では、エディタはエンジン固有の言語を受け付けます。対応内容は各エンジンのページで説明しています。MongoDB エディタは TablePro 内で動く mongosh 風の JavaScript シェルで、mongosh 自体ではありません。

エンジンごとのクエリ言語
MongoDB (MQL)、Redis (Redis CLI)、Cassandra (CQL)、ScyllaDB (CQL)、Amazon DynamoDB (PartiQL)、Elasticsearch (Query DSL)、etcd (etcdctl)、Apache Kafka (KafkaQL)、SurrealDB (SurrealQL)、Typesense (Typesense API)、Weaviate (GraphQL)

iPhone と iPad では

iPhone と iPad アプリの Query タブには SQL ハイライト、Run と Stop(キーボードでは ⌘↩)、そのデバイスで実行した直近 200 件の履歴があります。結果を JSON、CSV や SQL INSERT 文としてコピーまたは共有できます。

自動補完、整形、パラメータ、EXPLAIN や保存済みクエリには対応しません。結果は最大 10,000 行まで保持するため、必要な範囲を見るには LIMIT を追加してください。

対応範囲

このページの各機能、Mac で必要なプラン、iPhone・iPad での対応範囲
機能
自動補完と整形付き SQL エディタMac: 無料iPhoneとiPad: ハイライト、Run と Stop のみ。自動補完なし
クエリパラメータMac: 無料iPhoneとiPad: 非対応
クエリ履歴Mac: 無料iPhoneとiPad: デバイス上の直近 200 件
保存済みクエリとリンクした SQL フォルダMac: 無料iPhoneとiPad: 非対応
クイックオープンMac: 無料iPhoneとiPad: 非対応
EXPLAIN と EXPLAIN CompareMac: 無料iPhoneとiPad: 非対応
クエリ分析Mac: Starter プランiPhoneとiPad: 非対応
結果グラフMac: Starter プランiPhoneとiPad: 非対応
地図ビューMac: 無料iPhoneとiPad: 非対応
結果をコピーまたは共有Mac: 無料iPhoneとiPad: 無料

知っておきたい制約

  • Settings で上限を最大 500,000 行に引き上げるか、⌘⌥⏎ で実行しない限り、クエリが返すのは最大 10,000 行です。自分で記述した LIMIT が常に優先されます。
  • クエリ履歴と Query Insights はこの Mac のみが対象です。他の Mac や iPhone で実行したクエリは含まれません。
  • シェルコマンド tablepro はアプリで接続やファイルを開きます。ターミナルからクエリを実行する機能ではありません。

TablePro を入手

TablePro はオープンソースで、無料で使えます。有料プランで Mac アプリに任意の機能を追加できます。
Mac 版をダウンロード

macOS 13 Ventura 以降Apple siliconまたはIntel

App Store からダウンロード

iPhoneとiPadiOSとiPadOS 18 以降

料金を見る