クエリを書き、実行し、理解する
このページの有料機能:Query Insights (Starter)とResult Charts (Starter)。その他はすべて無料です。
スキーマを理解するエディタ
入力中に自動補完が接続のスキーマを参照します。FROM や JOIN の後のテーブル、エイリアスのカラム、その文の前方で定義した CTE やサブクエリのカラムも候補になります。ハイライトには tree-sitter を使い、⌘⇧L はコメントを残したままカーソル位置の文を整形します。
⌘⏎ はカーソル位置の文または選択範囲、⌘⇧⏎ はすべての文を実行し、⌘⌥⏎ は行数制限なしで実行します。⌘. はキャンセルです。通常の文のバッチは一つのトランザクションで実行し、一つでも失敗するとロールバックします。例外は、自分でトランザクションを管理するスクリプト、SQL Server スクリプト、VACUUM などトランザクション内に置けない文、および独自にコミットする MySQL、MariaDB、Oracle の DDL です。
- ガターに文のマーカーを表示し、それぞれに実行ボタンを用意。
- 正規表現に対応した検索と置換。
- 移動、レジスタとマクロに対応する Vim モード。
:wでクエリを実行。 .sqlファイルをクエリタブとして開き、編集し、保存。


パラメータ、履歴と保存済みクエリ
クエリに :customer_id を書くと、実行前に TablePro が値と型を尋ねます。ドライバーが対応する場合は、値をネイティブにバインドします。
実行したすべてのクエリはローカル履歴(⌘Y)に入り、全文検索とソース、失敗、期間のフィルターを使えます。既定では 10,000 件を 90 日間保持し、同期しません。
クエリに dau などのキーワードを付けて保存すると、エディタでそのキーワードを入力して展開できます。保存済みクエリにはバージョン履歴があります。リンクした SQL フォルダは、.sql ファイルのフォルダとサイドバーを双方向に同期し、ファイルごとに Git ステータスの文字を表示します。この機能は無料で、共有接続ファイル用の Starter 機能 Linked Folders とは別です。


クイックオープンとタブ
Open Quickly(⌘⇧O)は、開いているすべての接続からテーブル、ビュー、システムテーブルを探し、保存済みと最近のクエリも検索します。各タブは独自の SQL、並べ替え、フィルターとカラム幅を保持し、アプリを終了して再び開いても復元されます。⌃Tab で直近に使ったタブを切り替えられます。
プランを読み、比較し、追跡する
EXPLAIN と EXPLAIN Compare
⌥⌘E はクエリのプランを図、コストバー付きのツリー、またはエンジンの生の出力で表示します。同じクエリの過去の実行を基準として選ぶと、Compare が遅くなったか、プランが変わったかを示します。15% 未満の差はノイズとして扱います。どちらも無料です。
- 図とツリーでプラン表示
- PostgreSQL、MySQL、SQLite、MariaDB、CockroachDB、PGlite、ClickHouse、DuckDB、Cloudflare D1、Turso、libSQL、Google Cloud Spanner、Dameng DM8、SAP HANA
- テキストでプラン表示
- TiDB、OceanBase、Databend、Amazon Redshift、Snowflake、SurrealDB、Teradata、Trino、Cloudflare R2 SQL
- ドライランでコスト推定
- Google BigQuery
- EXPLAIN 非対応の SQL エンジン
- SQL Server、Oracle、Beancount


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


結果をグラフや地図で見る
同じタブで、結果をグリッドからグラフや地図に切り替え、また戻せます。
結果グラフ
Result Charts:Starter プラン
結果を棒、折れ線、面、散布図として描けます。日付には時間軸を使い、選んだカラムの値ごとに系列を作成します。グラフは先頭 50,000 行から最大 2,000 点、20 系列を描画し、すべてを描けない場合はツールバーに表示します。


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


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 を追加してください。
対応範囲
| 機能 |
|---|
| 自動補完と整形付き 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 を入手
macOS 13 Ventura 以降Apple siliconまたはIntel