跳至主要內容

每天都用 TablePro?購買授權即可使用付費功能,並支持下一版本的開發。 購買授權購買授權,支持 TablePro

撰寫、執行與理解查詢

適合在實際資料庫上撰寫 SQL 的使用者:參考結構撰寫查詢,執行一個陳述式或整份指令碼,儲存值得保留的查詢,並找出變慢的原因。本頁介紹的功能均在 Mac App 中,最後一節介紹 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、排序、篩選與欄寬,結束並重新開啟 App 後會還原;⌃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 shell,並非 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 App 的 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 shell 指令在 App 中開啟連線和檔案,不會從終端機執行查詢。

取得 TablePro

TablePro 開放原始碼且可免費使用。付費方案為 Mac App 增加選用功能。
下載 Mac 版

macOS 13 Ventura 或更新版本Apple silicon或Intel

從 App Store 下載

iPhone與iPadiOS與iPadOS 18 或更新版本

查看價格方案