SQL虽然看似非常简单,但是当他复杂起来的时候就可以加入视图,子查询,标量子查询,关联子查询和各种函数。
鸭哥带着你通过题目来了解以下知识点。
还是SqlZoo
【1】
列出每个国家人口这些国家大于俄罗斯的人口,因为要查询出一条数据并且进行对应,所以是一个非常简单又典型的标量子查询。
【2】
考察比较运算符,逻辑运算符,标量子查询,因为还是和英国一个国家比所以要用标量子查询,容易忽略的是有欧洲这个条件,要把where放到外部。
【3】
考察知识点 运算符in,这里很容易犯的错误是写成 “where continent =” 一定要注意这里是考察的运算符in
【4】
这道题有两个易错点,一个是between而不是大于号和小于号一起用,第二个是因为人口是多所以要+1
【5】
这题考察的是字符串拼接和四舍五入函数,因为函数有点多所以标点符号要注意,最好在ide里面编辑不然脑壳会晕,特别要注意要用round不然小数点后面会有很多。
【6】
考察ALL知识点,可以表示所有查询的结果。这里指的注意的是gdp>0一定要写因为有些GDP是空值,空值无法比较
【7】
这道题鸭哥犯了一个错误,题目要找出每个州最大的国家,但是鸭哥这样写就是找出比地球当中所有国家面积都大的国家,是一个错误。
第一步分析,他要找的是每个周最大,拆解成他要找同一个州里面的国家,他要找最大。
【8】
找出大洲内排名首位的国家,并且只有一个,遇到只有一个的题目用all,因为是首位所以是最小的那个用小于等于号。
【9】
这道题翻译有点坑爹,这道题意思是找出国家,这个国家所在的大洲里面的所有国家人数都要小于25000000人,所以我们首先匹配大洲,然后找出该大洲所有的国家,然后找出小于的,之后作为where的条件,返回就可以了。
【10】
这道题要注意子查询里面要排除要选出的州,不然最终结果就空了。