跳转到正文

每天都用 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 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 应用的 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 命令在应用中打开连接和文件,不会从终端执行查询。

获取 TablePro

TablePro 开源且可免费使用。付费方案为 Mac 应用增加可选功能。
下载 Mac 版

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

从 App Store 下载

iPhone和iPadiOS和iPadOS 18 或更新版本

查看定价