练习测试技术与编程

SQL 测试练习

免费 SQL 练习测试:涵盖 SQL 概念、查询的返回结果、修复有问题的查询和选择正确的查询,题目风格类似雇主的 SQL 测评,并逐题讲解答案。

  • 10道免费题目,无需注册账户
  • 计时方式与真实测试相同
  • 可随时取消
免费试做
10道题 · 25分钟
题型
SQL 概念, 查询返回的内容, 修复查询等更多内容
完整模拟测验
实际测试的题量和时间限制

简短回答

SQL测试是一种简短的测评,许多雇主会在数据、分析师或开发人员岗位的面试前用它考查应聘者阅读、编写和修正数据库查询的能力。SQL测试并非只有一种:平台由各个雇主选择,题目和时间限制也由他们自行设置。这项免费练习测试包含10道使用通用标准SQL的原创题,时长为25分钟。

免费试做
25分钟完成10道题
格式
由各雇主设定
示例(HackerRank SQL Basic)
30分钟完成2道题
示例(TestGorilla MySQL)
10分钟完成15道题
公共区域
筛选、连接、分组、排序和 NULL 值

免费试用

25分钟内完成10道题,按正式考试节奏作答。结束后查看得分和每道题的解析。

正在加载练习题

选择您的套餐

解锁完整练习

SQL 测试:完整长度的限时模拟测试,另含所有其他测试

选择套餐
开通月度方案
  • 本测试的完整限时模拟测验
  • 每道题均附有解析
  • 查看各题型得分和练习记录
  • 包含全部 93 项练习测试
  • 手机和笔记本电脑均可使用

如果您完成的完整模拟测验不超过一套,可在 7 天内申请退款。价格以美元计。

完整练习包含哪些内容

完整模拟测验采用实际测试的形式和计时方式,每套完成后均可查看完整解析。

  1. Free免费试做10道题 · 25分钟
  2. 完整模拟测验实际测试的题量和时间限制
  3. 涵盖所有题型SQL 概念, 查询返回的内容, 修复查询等更多内容
  4. 完整复盘每次模拟测试后查看各题型得分
  5. 成绩记录历次练习进度
  6. 手机或笔记本电脑随时随地练习

免费样题或完整练习

功能Free完整
仿真实际测试风格的题目
每道题都附有解析
完整限时模拟测验
按题型查看成绩
各次模拟测试的成绩记录
全部 93 项练习测试

免费备考指南

通过简短课程,了解有关实际测试的一切。

第 1 课

正式测试通常是什么样

**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 等免费数据库中自行编写查询。

第 2 课

附详细解答的题型示例

每个部分各有一个例题,并指出大多数人容易掉进去的陷阱。

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,并被条件筛掉。*陷阱:*没注意到哪些行消失了。问问自己:“没有匹配项的行会怎样?”

第 3 课

如何准备

  1. **先阅读邀请信息。**了解要使用哪个平台、考试时长、是编写查询还是回答选择题,以及使用哪种数据库。不同考试的形式差异很大,不要想当然。
  2. **了解查询的执行顺序。**先执行 FROM 和 JOIN,然后是 WHERE、GROUP BY、HAVING、SELECT 和 ORDER BY。弄清每一步会处理哪些数据后,大多数“为什么这个结果不对?”之类的问题就容易理解了。
  3. **手动追踪小型数据表。**写出三四行数据,再按顺序应用每个子句。这是检查答案最快的方法,也能发现 NULL 和重复值方面的陷阱。
  4. **单独学习 NULL。**练习 IS NULL、COUNT(column) 和 COUNT(*) 的区别、AVG 会跳过 NULL、列表中有 NULL 时使用 NOT IN,以及左连接如何处理不匹配的列。
  5. **也要编写实际查询。**我们的模拟测验可以训练阅读和追踪代码的能力;还可以在 SQLite 之类的免费数据库中编写查询,让限时输入代码变得习以为常。有些测试会用许多测试用例检查查询,例如 TestGorilla 介绍的 SQLite 测试包含 10 多个测试用例 (TestGorilla)。
  6. **检查结果,不要只看语法。**查询即使能够运行,也可能返回错误的行。提交前,想想没有匹配项、出现重复值或存在 NULL 时会发生什么。
  7. **按照实际节奏练习。**TestGorilla 的 MySQL 测试属于简短的知识测试,10 分钟内回答 15 道题,平均每题不到一分钟 (TestGorilla)。完成整套限时模拟测验,让自己适应考试当天的节奏。
第 4 课

评分通常如何进行

评分取决于雇主和平台。 SQL 没有标准分数,也没有统一的合格线。每位雇主自行决定怎样的结果才算合格。以下是两个公开的查询题评分示例:

  • **HackerRank 数据库题:**HackerRank 表示,系统会自动比较你的查询结果与预期输出,并据此评分。结果匹配即可得满分,否则得零分,除非雇主进行人工审核并给出部分分数。雇主也可以选择忽略行的顺序(HackerRank 支持)。
  • **TestGorilla 的 SQLite 测试:**TestGorilla 表示,候选人的排名依据是 10 多个测试用例的结果,这些用例会检查解决方案在边界情况下的表现(TestGorilla)。

由于结果通常会逐行检查,查询即使几乎正确,例如漏掉了没有订单的客户,得分也可能和完全没有作答一样。

我们的练习得分是你答对我们自编题目的数量,并按部分列出得分,帮助你了解应该重点练习哪些内容。这只是练习得分,不代表你在任何雇主或平台的测试中的分数,也无法预测你能否通过测试。

第 5 课

常见错误

  • **用 = 与 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 以及任何测评平台或雇主均无关联。

来源

  1. HackerRank:SQL(基础)技能测试,检查日期:2026-11-09
  2. HackerRank:SQL(中级)技能测试,检查日期:2026-11-09
  3. HackerRank 支持:数据库工程师题目(数据库题评分),检查日期:2026-11-09
  4. TestGorilla:SQLite(编程):真实场景查询测试,检查日期:2026-11-09
  5. TestGorilla:MySQL 测试事实,检查日期:2026-11-09

关于此页面

由 Intellect Council 团队撰写并审阅。 最近审核 . 阅读我们的编辑政策。

查看全部 93 项练习测试

完整限时模拟测试,附答案解析。获取完整访问权限
测评即将到来,做好准备。

做好准备,从容应考。
离开时,知道自己已经尽了最大努力。

按真实测试形式计时练习,每道题都附有解析。

开始免费练习测试或查看完整模拟测试 免费体验,无需注册账号即可开始。