SQL_ZOO刷题笔记

SQL ZOO是什么?

SQL ZOO是一个在线的SQL练习的网站,这里提供比较丰富的练习题目。和Leetcode相比,SQL ZOO练习材料更加丰富更加系统,而且免费。Leetcode上面免费的SQL练习题大概是20道左右;SQL ZOO上则有9个模块的练习题,每个模块有10-20个练习题。不足之处是讨论区不那么好用,且没有参考答案。

basics

例题部分

三道题例题分别考察 where, in, between的用法。

quiz

增加了like, 通配符%, 函数length的考察

world quiz

例题部分

  • 8题 考察了逻辑运算符号xor的用法,直接和and,or一样在where 字段中使用就好了。
  • 9题 考察了round函数 该函数控制小数位。需要注意在SQL里面 3/5 = 0
  • 12题 考察了left函数。

nobel quiz

例题部分

  • 12题目 考察单引号在字符串中的表示法。用转义字符\,比如'EUGENE O\'NEILL'
  • 例题增加了对order by的考察

select in selects quiz

  • 子查询直接出一个结果
  • 子查询中的条件依赖于父查询中的变量
  • 如果需要用到子查询,思考是不是可以用分组聚合函数解决问题

例题部分

  • 例题5 考察round(v1,v2) 第二个变量为0,则表示保留到整数位。
  • 子查询结果应用到父查询中 例题5中的一个例子
SELECT name
  FROM world
 WHERE population >= ALL(SELECT population
                           FROM world
                          WHERE population>0)

注意All的用法,第二个select语句直接出了字段结果。理论上只需要运行一次。

  • 例题9中 查找
select a.name, a.continent,a.population
from world a
where  25000000 >= all(select population from world b where a.continent = b.continent)

这里子表查询中字表查询是嵌套的,父查询有多少条记录,那么字表就需要运行多少次。

  • 例题10 第一次做时条件没有写对。

sum and count quiz

  • group by 同时存在字段和聚合函数的时候,一定记得加上。
  • having 条件写在group by 之后
  • group by 有组合的去除重复项目的功能

猜你喜欢

转载自blog.csdn.net/Minervar/article/details/88097743