介绍两个刷 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 成绩榜
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- VerticalBannerView仿淘宝头条实现垂直轮播广告
- ViewFlipper实现文字轮播效果
- Android自定义ViewFlipper实现滚动效果
- ViewFlipper实现上下翻滚轮播效果
- android实现长图加载效果
- 使用Thumbnails实现图片指定大小压缩
- Flutter中如何加载并预览本地的html文件的方法
- Android在自定义类中实现自定义监听器方式
- 解决WebView通过URL加载H5界面出现空白的问题
- kotlin 定义接口并实现回调的例子
- STL 总结与常见面试题
- kotlin中EditText赋值Type mismatch方式
- Kotlin 创建接口或者抽象类的匿名对象实例
- kotlin Context使用详解
- Android-ViewModel和LiveData使用详解