跳到主要内容
← 返回

SQL 模拟查询 - 在线工具

数据
本地运行 · 不上传

免费在线 SQL 模拟查询:在浏览器中执行 SQL 语句,无需数据库即可练习查询语法,支持建表、插入、查询等操作,全部本地处理。

结果有帮助吗?

本地工具可在 DevTools → Network 搜索输入内容,通常不会出现在请求中。

下一步

使用指南

学 JOIN、GROUP BY 或临时验证一条 SELECT,又不想装数据库时,本页内置 users / orders / products 三张 mock 表,在浏览器里执行查询并表格展示结果——纯本地教学引擎。只接受 SELECT;DELETE、UPDATE、DDL 会被拒绝并给出明确提示。方言、函数与性能都有限:复杂窗口函数、存储过程与事务请到真实 Postgres 或 MySQL 验证。查询内容会留在浏览器本地持久化键里,不会上传。练习时先看 Schema 面板的列名与样例值,再改默认注释里的句子。

1. 跑一条查询

引擎随输入重算,适合短查询练习。表名、列名拼错会直接报 Unknown table 或空列;先对照 Schema 面板,再查 WHERE 条件是否过严。空结果不一定是引擎坏了——可能是 JOIN 键写反或过滤条件把行全滤掉了。

  1. 展开 Mock Schema,看清 users、orders、products 的列名与样例值。
  2. 在编辑器写 SELECT(可改默认示例注释里的 JOIN 与聚合句)。
  3. 结果区即时显示行集,或给出语法/语义错误消息,并附带耗时毫秒数。

2. 推荐练习路径

默认注释里已有可用样例。先跑通再改条件;把做对的句子复制到自己的笔记并标注「仅 mock 方言」。面试前用本页热身,再到目标数据库跑一遍同一逻辑,能暴露方言差异。

  • 单表:SELECT * 与 WHERE 过滤、ORDER BY / LIMIT。
  • users 与 orders 按 id / user_id 做 INNER JOIN 或 LEFT JOIN。
  • orders 上 GROUP BY status,配合 COUNT(*) / SUM(amount)。
  • 带 WHERE 再 GROUP BY:先过滤再分组,核对分组行数是否变少。

3. 支持什么、不支持什么

日常 SELECT、JOIN(INNER/LEFT)、WHERE(比较、AND/OR、LIKE、IS NULL)、GROUP BY、COUNT/SUM/AVG/MIN/MAX、ORDER BY、LIMIT(含 MySQL 风格 offset,count)较够用。完整 DDL、事务、权限、厂商方言函数、窗口函数、存储过程、深层子查询不在范围。遇到 not supported 或解析失败,不要假设「和 Postgres 一样」——以本页引擎消息为准。

4. 和真实库的差异

教学引擎的目标是「写对思路」,不是「复刻某一厂商」。把本页当草稿本,把目标库当验收场,分工清楚就不容易被假数据误导。

  • 同一 SQL 在 MySQL 与 Postgres 的引号、LIMIT、日期函数可能不同。
  • 面试前用本页回忆写法,上机题仍以对方方言为准。
  • 数据是固定假数据,不能用来估生产基数或索引效果。
  • 聚合无 GROUP BY 时会收成一行;要按状态拆开必须写 GROUP BY。

5. 和相邻工具

格式化后再回头查括号与逗号,能减少一半「看起来对但跑不通」的时间。需要灌数时先用 Mock 生成器造行,再转成 INSERT。

  • 美化长 SQL:SQL 格式化。
  • CSV → INSERT:csv-sql。
  • 造更多假行:Mock 数据生成器。
  • 语法速查:SQL 速查表。

6. 隐私与练习习惯

查询与结果留在浏览器本地,不会上传服务器。不要把真实客户表结构或敏感样例粘进演示稿;练习用完可改回默认示例。屏幕分享时注意 Schema 面板是否暴露业务命名习惯。处理含个人信息或密钥的内容时,即使计算在本地完成,也要留意屏幕分享、录屏与下载文件的二次传播路径。

7. 报错怎么排

Missing FROM:忘记写 FROM 表名。Unknown table / join table:表名与 Schema 不一致。Only SELECT:写了破坏性语句。结果为空:WHERE 过严或 JOIN 键写反。分组结果只有一行却期望多组:检查是否漏写 GROUP BY。先把 SQL 贴进格式化工具看括号与逗号,再回本页重试。

常见问题

查询内容留在浏览器本地的持久化键里,不上传服务器;重开页面还能接着练,清除站点数据即可彻底移除。

users、orders、products 三张 mock 表,自带示例数据。动手前先展开 Schema 面板,看清列名与样例值再写查询。

日常 SELECT、INNER/LEFT JOIN、WHERE(比较、AND/OR、LIKE、IS NULL)、GROUP BY、COUNT/SUM/AVG/MIN/MAX、ORDER BY 与 LIMIT(含 MySQL 风格 offset,count)。DELETE、UPDATE、DDL 等写操作会被拒绝并给出明确提示。

表名、列名拼错会直接报 Unknown table 或空列,先对照 Schema 面板;空结果未必是引擎坏了——常见原因是 JOIN 键写反(id 与 user_id)或 WHERE 条件把行全滤掉了。

不能。这是教学引擎:窗口函数、存储过程、事务、权限与厂商方言函数不在范围内;而且同一 SQL 在 MySQL 与 Postgres 的引号、LIMIT、日期函数上本就可能有差异。关键逻辑请在目标数据库再验收一遍。

先单表练 SELECT、WHERE、ORDER BY、LIMIT,再让 users 与 orders 按 id/user_id 做 JOIN,然后在 orders 上 GROUP BY status 配合 COUNT/SUM。长句跑不通时先用 SQL 格式化检查括号逗号;需要更多数据就配合 Mock 数据生成器与 CSV 转 INSERT。

相关工具

相关文章