摘要:内置 users/orders/products 示例表,支持 SELECT / JOIN / WHERE / ORDER BY / LIMIT / 聚合函数。
本地工具可在 DevTools → Network 搜索输入内容,通常不会出现在请求中。
下一步
使用指南
学 JOIN、GROUP BY 或临时验证一条 SELECT,又不想装数据库时,本页内置 users / orders / products 三张 mock 表,在浏览器里执行查询并表格展示结果——纯本地教学引擎。只接受 SELECT;DELETE、UPDATE、DDL 会被拒绝并给出明确提示。方言、函数与性能都有限:复杂窗口函数、存储过程与事务请到真实 Postgres 或 MySQL 验证。查询内容会留在浏览器本地持久化键里,不会上传。练习时先看 Schema 面板的列名与样例值,再改默认注释里的句子。
1. 跑一条查询
引擎随输入重算,适合短查询练习。表名、列名拼错会直接报 Unknown table 或空列;先对照 Schema 面板,再查 WHERE 条件是否过严。空结果不一定是引擎坏了——可能是 JOIN 键写反或过滤条件把行全滤掉了。
- 展开 Mock Schema,看清 users、orders、products 的列名与样例值。
- 在编辑器写 SELECT(可改默认示例注释里的 JOIN 与聚合句)。
- 结果区即时显示行集,或给出语法/语义错误消息,并附带耗时毫秒数。
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。
相关工具
相关文章
在线 CSV 转 SQL 工具:将表格数据导入数据库
CSV 转 INSERT:空单元格→NULL、MySQL 反引号或 PostgreSQL 双引号、BOM 剥离、Markdown 竖线转义,以及与 COPY/LOAD 的分工。
在线 SQL 格式化工具:美化和压缩 SQL 查询语句
按方言格式化/压缩 SQL(MySQL、PostgreSQL、SQLite、BigQuery)。diff 友好排版、ORM 日志整理,以及格式化器做不到的事。可衔接 CSV→SQL。
在线代码格式化工具:一键美化 JavaScript、HTML、CSS、SQL
学习如何用浏览器本地的代码格式化工具整理 JavaScript、HTML、CSS 与 SQL:缩进选项、解析错误行号、Format 与 Minify 体积对照,以及和 IDE Prettier 的分工。