SQLzoo练习题
05:concat函数用法
用于连接多个字符串,形成一个字符串,如有任何一个参数为NULL ,则返回值为 NULL
06:子查询(自身连接)、limit函数
子查询里where a.continent = b.continent的作用是从a表中的每个大洲,找到b表中对应的每个大洲。依次遍历返回每个大洲。这相当于每次进行查询的时候是在相同的一小段数据(某个大洲的不同国家)里面做子查询得到结果,再返回结果; 如果where a.continent = b.continent and a.name=b.name 则大洲和国家一 一对应,就相当于复制连接了一个相同的表。
LIMIT n: 返回查询结果的前n条记录
LIMIT m, n: 返回从第m+1条记录开始的n条记录
这里使用了ALL
关键字,它要求外层查询中的国家或地区的人口必须大于或等于子查询返回的所有人口值。
WHERE a.continent = b.continent
是关键语句,它确保了子查询仅考虑与外层查询中的国家或地区相同大陆的其他国家或地区的人口数据
如果不加上限制条件a.name<>b.name,那么对比的国家永远都是相同的,即 population>population*3这个条件将永远不会成立。
07:NULL 值
判断表格是否存在空值。NULL 值不要用 '= , != ,<> ' 与具体值进行比较,要用 IS NULL/ IS NOT NULL
错误:
正确:
08:CASE WHEN函数
case when函数:允许您在不同条件下返回不同的值
09:group by函数
group by 函数使用技巧,作用是分组,进行分组后续的操作如不同组内的计数、不同组内的排序,重点在于组内。所以select 的对象与group by 的对象应该是一致的,为了展示不同分组才进行group by函数操作。 跟excel的数据透视表一样,分组后就是为了展示。
10: COALESCE 函数
coalesce函数 :接受任意数量的参数并返回第一个不为 null 的值。当您想要将 NULL 值替换为其他值时,COALESCE 可能很有用