前言
本文章记录sqlzoo刷题过程以及解题思路,每个小节不仅包含练习,还有选择题(quiz)部分的实现思路
网址:sqlzoo_select from world
一、代码练习部分
world 表:
- 顯示具有至少2億人口的國家名稱。
查询结果列——name
条件——population:>200000000
查询逻辑——筛选人口>2亿的记录,再选择国家名称列显示
SELECT name
FROM world
WHERE population>200000000
- 找出有至少200百萬(2億)人口的國家名稱,及人均國內生產總值。
查询结果列——name,gdp_avg(新生成列)
条件——人口:>2亿
查询逻辑——查找出人口>2亿的记录,再选择显示国家名称,人均生产总值(总值/人口)
select name,gdp/population as gdp_avg
from world
where population>200000000
- 顯示’South America’南美洲大陸的國家名字和以百萬為單位人口數。 將人口population 除以一百萬(1000000)得可得到以百萬為單位人口數。
查询结果列——国家名称,人口数(百万为单位)
条件——洲份:南美洲大陆
查询逻辑——查找出continental=South America的记录,再选择显示国家名称,人口数(单位换算:原人口/100万)
select name,population/1000000 as pop_billion
from world
where continent='South America'
- 顯示法國,德國,意大利(France, Germany, Italy)的國家名稱和人口。
查询结果列——国家名称,人口
条件——国家名称=法國,德國,意大利(in关键字)
查询逻辑——选择国家名称为法國,德國,意大利的行,再选择显示name,population 列
select name,population
from world
where name in ('France','Germany','Germany')
- 顯示包含單詞“United”為名稱的國家
查询结果列——国家名称
条件——国家名称包含united(like ‘%’)
查询逻辑——查询国家名称包含united字符串的行,选择name列显示
select name