专栏首页SQL实现介绍两个刷 SQL 题的网站

介绍两个刷 SQL 题的网站

今天有朋友在群里问到:在哪可以刷 SQL 题?

其实,要刷 SQL 题,对着《SQL COOKBOOK》、《SQL 经典实例》这两本书,把所有实例从头到尾全部实现一遍就很厉害了。

不过,我想她的本意是想知道有没有关于 SQL 的 Online Judge(在线评测系统,简称 OJ)。相比算法,关于 SQL 的 OJ 确实是少之又少,我目前了解到的就有两个网站:一个是 LeetCode,另外一个是 HackerRank。

LeetCode

LeetCode 的 SQL 题库中一共有 119 道题,题目的难度分为简单、中等、困难三个等级。图1 是题目列表,题目编号前面有锁的图标表示只有会员身份才能做题。

图1 LeetCode 上的 SQL 题目列表

任意选择一道可以回答的题目,点击它的链接将进入到题目详情和答题页,如图2 所示:左边栏是题目描述,右边是答题区。

当你把答案写完,点击右下角的“执行代码”按钮,等待它返回结果。如果 SQL 没有出现语法错误,它返回的执行结果包含输入、输出和预测结果。

图2 题目详情页

当检查“输出”项和“预测结果”完全对得上时,就可以提交答案了,系统将给我们反馈 SQL 的整体的执行结果。

图3 提交结果

HackerRank

HackerRank 上有 58 道 SQL 题,题目也是分了简单、中等、困难三个级别。

图4 HackerRank 的 SQL 题目列表

点击题目链接就进入了题目详情页,和 LeetCode 布局不一样的地方是:HackerRank 采用了上下分栏。在题目详情页,问题描述在最上边一栏,回答区域在问题描述的下方,最下边一栏是答题结果。

图5 HackerRank 的题目详情页

和 LeetCode 不同的是,当你运行代码的时候 HackerRank 直接告诉你答案是对还是错,并且不需要在 SELECT 子句中指定列名。

另外,HackerRank 是纯英文的网站,要看懂它的题目,得具备一定的英文阅读能力。话又说回来,作为一名 IT 人员,能够阅读英文材料本该就是必备的技能。

我去年就刷完了 HackerRank 上的 SQL 题目,拿到了 1130 分(「hjh520」 是本人的 ID)。

图6 成绩榜

本文分享自微信公众号 - SQL实现(gh_684ee9235a26),作者:zero

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 从100万条数据中找到极大值所在行

    先对表数据按照客户来源渠道分组,再对分组内的数据按照授信时间降序排序,序号排在第一位的记录就是我们要找的记录。

    白日梦想家
  • 推荐几款在线 SQL 模拟器

    SQL Fiddle 支持 MySQL、Oracle、MS SQL、PostgreSQL 等主流数据库,不需要注册即可使用。如图 1 所示,左边栏用于构建表结构...

    白日梦想家
  • SQL 的递归表达式

    MySQL 在 8.0 的版本引入了公共表表达式(Common Table Expressions),简称 CTE。CTE 在一些方面可以简化我们的 SQL 语...

    白日梦想家
  • 执行计划 - Oracle谓词越界与绑定变量窥探

    编辑手记:在SQL执行的过程中,选择不同的执行计划所产生的性能差异非常大,因此能够符合业务地选择正确的执行计划非常重要。但在真实环境中,总会受到一些因素的影响,...

    数据和云
  • SQL 运行时性能统计信息的获取

    打个招呼,这一篇可能不适合 CRUD Boy/Girl. 纯做增删改查的 SQL 编码师可能会觉得偏难。

    Lenis
  • Windows 10 IoT Core 17133 for Insider 版本更新

    今天,微软发布了Windows 10 IoT Core 17133 for Insider 版本更新,本次更新只修正了一些Bug,没有发布新的特性。用户可以登录...

    ShiJiong
  • Vertica:C-Store 七年之痒

    介绍论文《The Vertica Analytic Database: C-Store 7 Years Later》,配图是官网找的,这句话挺好:目标从第一行代...

    Apache IoTDB
  • java基础(六):数组

    静态初始化:除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配空间并赋值。

    Vincent-yuan
  • 【DB笔试面试857】在Oracle中,若一个主机上有多个Oracle实例,则如何确定哪些共享内存段属于想要清掉的实例的内存段?

    若一个主机上有多个Oracle实例,则该如何确定哪些共享内存段属于想要清掉的实例的内存段?

    小麦苗DBA宝典
  • InnoDB,5项最佳实践

    MySQL是目前互联网公司使用最广的数据库,InnoDB是MySQL使用最广的存储引擎,MyISAM和InnoDB的五项最佳实践,和大家聊聊,尽量多讲“为什么”...

    架构师之路

扫码关注云+社区

领取腾讯云代金券