一张图了解数据库复杂查询

2020-10-26 14:41:52 浏览数 (3)

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】

这道题要注意子查询里面要排除要选出的州,不然最终结果就空了。

十道练习就到此为止了,鸭哥提醒大家要自己上Sqlzoo上去练习。

Practice make perfect!

0 人点赞