第二关 select world
2.1 题目及答案
观察运行一个简单的sql命令结果
SELECT name, continent, population FROM world
显示具有至少2亿人口的国家
SELECT name FROM world WHERE population> 200000000
找出至少200百万(2亿)的国家名称及人均国内生产总值
select name, gdp/ population from world where population> 200000000
显示“South America”南美洲大陆的国家名字和以百万为单位人口数。将人口population除以一百万(1000000)可得到以百万为单位的人口数。
select name, population/ 1000000 from world where continent = 'south america'
显示法国,德国,意大利(France,Germany,Italy)的国家名称和人口。
select name, population from world where name in ( 'france' , 'germany' , 'italy' )
显示包含单词“United”为名称的国家。
select name from world where name like '%united%'
成为大国的两种方式:如果它有3百万平方公里以上的面积,或者拥有250百万(2.5亿)以上人口。 展示大国的名称,人口和面积。
select name, population, area
from world
where area> 3000000 or population> 250000000
美国,印度,和中国(USA,India,China)是人口又大,同时面积又大的国家,排除这些国家。 显示以人口或面积为大国的国家,但不能同时满足两者。展示国家名称,人口和面积。
select name, population, area
from world
where area> 3000000 xor population> 250000000
除以1000000(6个零)是以百万计。除以1000000000(9个零)是以十亿计。使用ROUND 函数来展示数值到小数点后两位。 对于南美展示以百万计人口,以十亿计GDP,并保留2位小数。
select name, round ( population/ 1000000 , 2 ) , round ( gdp/ 1000000000 , 2 )
from world
where continent = 'south america'
显示国家有至少一个万亿元国内生产总值(万亿,也就是12个零)的人均国内生产总值。四舍五入这个值到最接近1000。 显示万亿元国家的人均国内生产总值,四舍五入到最接近$1000。
select name, round ( gdp/ population/ 1000 ) * 1000
from world
where gdp> 1000000000000
CASE函数展示第三列的州份,用北美替换加勒比海。 显示国家名称,并用澳大拉西亚代替大洋洲,国家名称以N开头。
SELECT name,
CASE WHEN continent= 'Oceania' THEN 'Australasia'
ELSE continent
END
FROM world WHERE name LIKE 'N%'
显示名称和州份,但是用欧亚大陆代替欧洲和亚洲;用美洲代替北美、南美或加勒比的每个国家。显示以A或B开头的国家
select name,
case when continent in ( 'Europe' , 'Asia' ) then 'Eurasia'
when continent in ( 'North America' , 'South America' , 'Caribbean' ) then 'America'
else continent
end
from world where name like 'A%' or name like 'B%'
将州份归位 -大洋洲变成澳大利亚 -欧亚大陆和土耳其的国家变成欧洲/亚洲 -以“B”开头的加勒比海群岛变成北美,其他加勒比海群岛变成南美 显示所有国家的名称、原始州份和新州份。
SELECT name, continent
, CASE WHEN continent= 'Oceania'
THEN 'Australasia'
WHEN continent IN ( 'Eurasia' , 'Turkey' )
THEN 'Europe/Asia'
WHEN continent = 'Caribbean' AND name LIKE 'B%'
THEN 'North America'
WHEN continent = 'Caribbean'
THEN 'South America'
ELSE continent
END
FROM world
2.2总结
函数
用法说明
in
用作筛选多个值,每个值均是等于(=)的含义 ,not in 不包含
like
模糊匹配,可以用’%‘和’_'占位符,前者可表白空值或多个任意字符,后者代表一个字符且不代表空字符,以及not like()用法
xor
区别于or,or是指满足一个条件即可,包括同时满足条件的;xor是指只需满足一个条件即可,但不能同时满足
round
四舍五入将值保留指定n位数,n可以为负值,round(数值,保留的位数)
case when then else end
直接判断数据显示代表的含义时使用,Case具有两种格式。分为简单Case函数和Case搜索函数。