简短回答
SQL测试是一种简短的测评,许多雇主会在数据、分析师或开发人员岗位的面试前用它考查应聘者阅读、编写和修正数据库查询的能力。SQL测试并非只有一种:平台由各个雇主选择,题目和时间限制也由他们自行设置。这项免费练习测试包含10道使用通用标准SQL的原创题,时长为25分钟。
- 免费试做
- 25分钟完成10道题
- 格式
- 由各雇主设定
- 示例(HackerRank SQL Basic)
- 30分钟完成2道题
- 示例(TestGorilla MySQL)
- 10分钟完成15道题
- 公共区域
- 筛选、连接、分组、排序和 NULL 值
免费试用
25分钟内完成10道题,按正式考试节奏作答。结束后查看得分和每道题的解析。
选择您的套餐
解锁完整练习
SQL 测试:完整长度的限时模拟测试,另含所有其他测试
开通月度方案- 本测试的完整限时模拟测验
- 每道题均附有解析
- 查看各题型得分和练习记录
- 包含全部 93 项练习测试
- 手机和笔记本电脑均可使用
如果您完成的完整模拟测验不超过一套,可在 7 天内申请退款。价格以美元计。
完整练习包含哪些内容
完整模拟测验采用实际测试的形式和计时方式,每套完成后均可查看完整解析。
- Free免费试做10道题 · 25分钟
- 完整模拟测验实际测试的题量和时间限制
- 涵盖所有题型SQL 概念, 查询返回的内容, 修复查询等更多内容
- 完整复盘每次模拟测试后查看各题型得分
- 成绩记录历次练习进度
- 手机或笔记本电脑随时随地练习
- SQL 概念90%
- 查询返回的内容75%
- 修复查询60%
- 选择合适的查询35%
下一步练习:选择合适的查询。
免费样题或完整练习
| 功能 | Free | 完整 |
|---|---|---|
| 仿真实际测试风格的题目 | ||
| 每道题都附有解析 | ||
| 完整限时模拟测验 | ||
| 按题型查看成绩 | ||
| 各次模拟测试的成绩记录 | ||
| 全部 93 项练习测试 |
免费备考指南
通过简短课程,了解有关实际测试的一切。
正式测试通常是什么样
**SQL 测试没有统一标准。**每个雇主都会选择一个测试平台,或自行编写测试,并决定题目数量、时长和使用的数据库。招聘信息或测试邀请是了解你将参加的测试的最佳参考。公开示例展示了不同测试的范围:
- **HackerRank 的 SQL 技能测试。**HackerRank 将其 SQL (Basic) 技能测试列为 30 分钟内完成 2 道题,内容包括简单查询等主题 (HackerRank;其 SQL (Intermediate) 测试列为 35 分钟内完成 2 道题,内容包括复杂连接等主题 (HackerRank。自行创建 HackerRank 测试的雇主可以添加数据库题目,并选择允许考生使用哪些数据库 (HackerRank 支持)。
- **编写查询任务。**TestGorilla 将其 SQLite 编程测试描述为 30 分钟,要求考生针对中等复杂度的数据库,为一个真实场景编写查询,内容包括连接和筛选、简单计算、排序、四舍五入以及排除无关条目 (TestGorilla)。
- **简短的知识测试。**TestGorilla 将其 MySQL 测试列为 10 分钟内完成 15 道题,题目从 101 道题的题库中抽取 (TestGorilla)。
SQL 测试中常见的内容领域:
- **筛选和排序:**SELECT、WHERE、ORDER BY,以及使用 AND、OR、IN 和 BETWEEN 的条件。
- **连接:**内连接和左连接,以及没有匹配项的行会如何处理。
- **分组:**使用 COUNT、SUM、AVG、MIN 和 MAX 的 GROUP BY,以及用于筛选分组的 HAVING。
- **NULL 值:**缺失值在比较、计数和平均值计算中的处理方式。
- **子查询:**嵌套在另一个查询中的查询,使用 IN、EXISTS 或单个值。
- **根据简单的文字要求编写查询,**评分时通常会检查查询返回的行是否与预期完全一致。
**我们的模拟测试涵盖的内容。**每套完整模拟测试包含 18 道题,限时 45 分钟,分为四个部分:SQL 概念(5 道)、查询返回的结果(6 道)、修正查询(4 道)和选择正确的查询(3 道)。你可以返回之前的题目并为题目添加标记。我们使用跨数据库通用的标准 SQL,因此这些查询在 PostgreSQL、MySQL、SQL Server、SQLite 和大多数其他数据库中的含义相同。我们的模拟测试练习的是阅读、跟踪和选择查询;不会运行你编写的查询。许多真实的 SQL 测试会要求你编写查询,并根据预期结果进行检查。因此,你可以通过我们的模拟测试练习相关的阅读和跟踪技能,同时也可以在 SQLite 等免费数据库中自行编写查询。
附详细解答的题型示例
每个部分各有一个例题,并指出大多数人容易掉进去的陷阱。
1. SQL 概念。 COUNT() 和 COUNT(email) 有什么区别?COUNT() 统计所有行;COUNT(email) 只统计 email 不为 NULL 的行。*陷阱:*以为所有计数函数都会统计每一行。大多数聚合函数都会跳过 NULL。
2. 查询会返回什么。 scores 表中的值为 8、5、NULL 和 8。SELECT COUNT(DISTINCT score) 会返回什么?不同的非 NULL 值是 8 和 5,因此答案是 2。*陷阱:*把 NULL 当作一个值来统计,或把重复的 8 计算两次。列出表中的数据,并按照查询的处理方式逐行划掉。
3. 修复查询。 查询写着 WHERE city = 'Austin' OR city = 'Dallas' AND active = 1,却返回了未激活的 Austin 客户。AND 的优先级高于 OR,因此这个条件实际表示 Austin 客户,或者已激活的 Dallas 客户。应添加括号:WHERE (city = 'Austin' OR city = 'Dallas') AND active = 1。*陷阱:*从左到右理解条件。
4. 选择正确的查询。 你需要最近的五笔订单。哪种写法正确:ORDER BY order_date DESC 并限制为 5 条,还是 ORDER BY order_date 并限制为 5 条?第一种。没有 DESC 时会按从最早到最晚排序,因此会得到最早的五笔订单。*陷阱:*只看查询写法是否顺眼,却不检查排序方向。(不同数据库的限制条数写法可能不同,例如 LIMIT 5 或 FETCH FIRST 5 ROWS ONLY,因此请确认测试中使用的是哪一种。)
5. 带条件的连接。 左连接之后,如果在 WHERE 子句中检查右表的列,就会悄悄变成内连接,因为没有匹配项的行在该列上会得到 NULL,并被条件筛掉。*陷阱:*没注意到哪些行消失了。问问自己:“没有匹配项的行会怎样?”
如何准备
- **先阅读邀请信息。**了解要使用哪个平台、考试时长、是编写查询还是回答选择题,以及使用哪种数据库。不同考试的形式差异很大,不要想当然。
- **了解查询的执行顺序。**先执行 FROM 和 JOIN,然后是 WHERE、GROUP BY、HAVING、SELECT 和 ORDER BY。弄清每一步会处理哪些数据后,大多数“为什么这个结果不对?”之类的问题就容易理解了。
- **手动追踪小型数据表。**写出三四行数据,再按顺序应用每个子句。这是检查答案最快的方法,也能发现 NULL 和重复值方面的陷阱。
- **单独学习 NULL。**练习 IS NULL、COUNT(column) 和 COUNT(*) 的区别、AVG 会跳过 NULL、列表中有 NULL 时使用 NOT IN,以及左连接如何处理不匹配的列。
- **也要编写实际查询。**我们的模拟测验可以训练阅读和追踪代码的能力;还可以在 SQLite 之类的免费数据库中编写查询,让限时输入代码变得习以为常。有些测试会用许多测试用例检查查询,例如 TestGorilla 介绍的 SQLite 测试包含 10 多个测试用例 (TestGorilla)。
- **检查结果,不要只看语法。**查询即使能够运行,也可能返回错误的行。提交前,想想没有匹配项、出现重复值或存在 NULL 时会发生什么。
- **按照实际节奏练习。**TestGorilla 的 MySQL 测试属于简短的知识测试,10 分钟内回答 15 道题,平均每题不到一分钟 (TestGorilla)。完成整套限时模拟测验,让自己适应考试当天的节奏。
评分通常如何进行
评分取决于雇主和平台。 SQL 没有标准分数,也没有统一的合格线。每位雇主自行决定怎样的结果才算合格。以下是两个公开的查询题评分示例:
- **HackerRank 数据库题:**HackerRank 表示,系统会自动比较你的查询结果与预期输出,并据此评分。结果匹配即可得满分,否则得零分,除非雇主进行人工审核并给出部分分数。雇主也可以选择忽略行的顺序(HackerRank 支持)。
- **TestGorilla 的 SQLite 测试:**TestGorilla 表示,候选人的排名依据是 10 多个测试用例的结果,这些用例会检查解决方案在边界情况下的表现(TestGorilla)。
由于结果通常会逐行检查,查询即使几乎正确,例如漏掉了没有订单的客户,得分也可能和完全没有作答一样。
我们的练习得分是你答对我们自编题目的数量,并按部分列出得分,帮助你了解应该重点练习哪些内容。这只是练习得分,不代表你在任何雇主或平台的测试中的分数,也无法预测你能否通过测试。
常见错误
- **用 = 与 NULL 比较。**请使用 IS NULL 和 IS NOT NULL。任何与 NULL 进行 = 比较的结果都是未知,因此该行会被筛除。
- **在 WHERE 中筛选左连接。**对右表列进行测试会删除未匹配的行。如果需要保留这些行,请将该条件放在 ON 子句中。
- **用 WHERE 筛选汇总结果。**聚合条件应放在 GROUP BY 之后的 HAVING 中。
- **选择未分组的列。**在标准 SQL 中,每个选出的列都必须分组或进行聚合。有些数据库允许查询运行,并替你选取一个值,这会掩盖错误。
- **忘记重复行。**连接可能会重复行,从而使 SUM 和 COUNT 的结果偏大。请确认一侧的每一行是否可能与另一侧的多行匹配。
- **依赖某个数据库的快捷写法。**不同数据库的某些函数和限制语法可能有所不同。请学习标准写法,并确认测试使用的是哪种数据库。
所有练习题均为原创,不是真题或泄露题。月度方案可随时取消。如果您完成的完整模拟测试不超过一次,可在 7 天内申请退款。
常见问题
是否有一套所有雇主都会使用的 SQL 测试?+
不是。每家雇主都会自行选择平台、题目、时限和数据库。有些会要求你编写查询,并根据预期结果进行检查;另一些则会提供选择题。你的邀请中应该会说明是哪种形式。
我应该练习哪种 SQL 方言?+
先学习标准 SQL,我们的题目使用的就是标准 SQL,它适用于 PostgreSQL、MySQL、SQL Server 和 SQLite。然后查看你的考试邀请:如果邀请中提到了某种数据库,就了解该数据库如何编写限制、日期和字符串函数。
你们的模拟测试会运行我编写的查询吗?+
不是。我们的模拟测试会练习阅读、跟踪、修正和选择查询。许多真实测试会要求你编写查询,并根据预期行进行检查,因此也请在 SQLite 等免费数据库中练习编写查询。
SQL 测试要达到多少分才能通过?+
没有统一的及格线。每位雇主都会设定自己的标准,有些还会人工检查答案。目标是确保每条查询都完全正确,因为查询结果哪怕只有少量行不正确,往往也会得零分。
这些题目是雇主 SQL 测试中的原题吗?+
不是。这些是我们团队原创的练习题,题目风格类似。Intellect Council 与 HackerRank (Interviewstreet, Inc.)、TestGorilla 以及任何测评平台或雇主均无关联。
来源
- HackerRank:SQL(基础)技能测试,检查日期:2026-11-09
- HackerRank:SQL(中级)技能测试,检查日期:2026-11-09
- HackerRank 支持:数据库工程师题目(数据库题评分),检查日期:2026-11-09
- TestGorilla:SQLite(编程):真实场景查询测试,检查日期:2026-11-09
- TestGorilla:MySQL 测试事实,检查日期:2026-11-09
相关练习
做好准备,从容应考。
离开时,知道自己已经尽了最大努力。
按真实测试形式计时练习,每道题都附有解析。