SQLZOO:SELECT from WORLD Tutorial
name | continent | area | population | gdp |
---|---|---|---|---|
Afghanistan | Asia | 652230 | 25500100 | 20343000000 |
Albania | Europe | 28748 | 2831741 | 12960000000 |
Algeria | Africa | 2381741 | 37100000 | 188681000000 |
Andorra | Europe | 468 | 78115 | 3712000000 |
Angola | Africa | 1246700 | 20609294 | 100990000000 |
... |
name:國家名稱
continent:洲份
area:面積
population:人口
gdp:國內生產總值
Country Profile
在這教程中,我們會使用SELECT語句,對World
表格進行查詢。
1.閱讀此表的注意事項 觀察運行一個簡單的SQL命令的結果。
SELECT name, continent, population FROM world
2.如何使用WHERE來篩選記錄。 顯示具有至少2億人口的國家名稱。 2億是200000000,有八個零。
SELECT name FROM world WHERE population>250000000
3.找出有至少200百萬(2億)人口的國家名稱,及人均國內生產總值。
SELECT name,gdp/population FROM world WHERE population >200000000
SELECT name,population/1000000 FROM world WHERE continent= 'South America'
5.顯示法國,德國,意大利(France, Germany, Italy)的國家名稱和人口。
SELECT name,population FROM world WHERE name in ('France','Germany','Italy')
6.顯示包含單詞“United”為名稱的國家。
SELECT name FROM world WHERE name LIKE '%United%'
7.
成為大國的兩種方式:如果它有3百萬平方公里以上的面積,或擁有250百萬(2.5億)以上人口。
展示大國的名稱,人口和面積。
SELECT name,population,area FROM world WHERE (area>3000000) OR (population>250000000)
8.
美國、印度和中國(USA, India, China)是人口又大,同時面積又大的國家。排除這些國家。
顯示以人口或面積為大國的國家,但不能同時兩者。顯示國家名稱,人口和面積。
SELECT name,population,area FROM world WHERE ((area>3000000) AND (population<250000000) ) OR ((area<3000000) AND (population>250000000) )
9.
除以為1000000(6個零)是以百萬計。除以1000000000(9個零)是以十億計。使用 ROUND 函數來顯示的數值到小數點後兩位。
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)*1- FROM world WHERE gdp > 1000000000000
11.
The CASE statement shown is used to substitute North America for Caribbean in the third column.
SELECT name, CASE WHEN continent='Oceania ' THEN 'Australasia' ELSE continent END FROM world WHERE name LIKE 'N%'
SELECT name ,CASE WHEN continent IN ('Asia' ,'Europe' ) 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%'
Put the continents right...
- Oceania becomes Australasia
- Countries in Eurasia and Turkey go to Europe/Asia
- Caribbean islands starting with 'B' go to North America, other Caribbean islands go to South America
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 ORDER BY NAME
备注:
在做11-13题的过程中,写地点名称一定要主要空格是否存在,
我就是因为在一些位置处加了空格,结果显示错误,却一直也找不到原因,最后发现是空格导致的,写代码时一定要注意了。