【SQL ZOO 解答集】(2 SELECT from World)

##本投稿の目的
- sql学習サイト[**sqlzoo**](https://sqlzoo.net/wiki/SQL_Tutorial)を用いたsqlの学習と理解
- 学習のアウトプット
- 学習メモとして、かつ公式の解答ページがなかったので作成した。

[0 SELECT basics](https://sqlzoo.net/wiki/SELECT_basics)
[1 SELECT name](https://sqlzoo.net/wiki/SELECT_names)
[2 SELECT from World](https://sqlzoo.net/wiki/SELECT_from_WORLD_Tutorial)←いまここ
[3 SELECT from Nobel](https://sqlzoo.net/wiki/SELECT_from_Nobel_Tutorial)
[4 SELECT within SELECT](https://sqlzoo.net/wiki/SELECT_within_SELECT_Tutorial)
[5 SUM and COUNT](https://sqlzoo.net/wiki/SUM_and_COUNT)
[6 JOIN](https://sqlzoo.net/wiki/The_JOIN_operation)
[7 More JOIN operations](https://sqlzoo.net/wiki/More_JOIN_operations)
[8 Using Null](https://sqlzoo.net/wiki/Using_Null)
[8+ Numeric Examples](https://sqlzoo.net/wiki/NSS_Tutorial)
[9 Self join](https://sqlzoo.net/wiki/Self_join)

####[2 SELECT from World](https://sqlzoo.net/wiki/SELECT_from_WORLD_Tuto)

####問題1
#####全ての国の国名と大陸と人口を表示する SQL コマンドを実行する。
```sql
SELECT name, continent, population 
FROM world
```

####問題2
#####人口が２億人（200000000 ゼロが８個ある）以上の国の名前を表示する
```sql
SELECT name 
FROM world
WHERE population >= 200000000
```

####問題3
#####人口population２億人以上の国の国名nameと国民一人当たりの国内総生産を表示
```sql
SELECT name, GDP/population
FROM world
WHERE population >= 200000000
```

####問題4
#####大陸continentが South America の国のnameとpopulationを　百万人単位　に変換して表示する。
#####人口 population を 1000000 で割ると１００万人単位の人口になる。

```sql
SELECT name, population/1000000
FROM world
WHERE continent = 'South America'
```
####問題5
#####国名nameと人口population を France, Germany, Italy について表示する。
```sql
SELECT name, population
FROM world
WHERE name in ('France', 'Germany', 'Italy')
```

####問題6
#####国名に 'United'　を含む国の国名を特定する。
```sql
SELECT name
FROM world
WHERE name like '%United%'
```

####問題7
#####ビッグになる２つの道: ビッグな国とは、面積が 3000000 平方キロ以上　または　人口が 250000000 以上の国とする。
#####面積か人口がビッグな国を表示する。国名　人口　面積（name, population , area）を表示する。
```sql
SELECT name, population, area
FROM world
WHERE area >= 3000000 OR population >= 250000000
```
####問題8
######オーストラリアは面積は大きく人口は少ないので、含まれる。
######インドネシアは人口は大きく面積は狭いので、含まれる。
######中国は人口も面積も大きいので除かれる。
######イギリスは人口も面積も小さいので除かれる。
```sql
SELECT name, population, area
FROM world
WHERE (area > 3000000 AND population < 250000000)
  OR (area < 3000000 and population > 250000000)
```

####問題9
#####南アメリカ大陸にある国の、国名name、人口population（100万人単位）、GDP（10億ドル単位）を表示する。 ROUND ROUND 関数で小数点下２桁で表示。

```sql
SELECT name, ROUND(population/1000000,2), ROUND(gdp/1000000000, 2)
FROM world
WHERE continent = 'South America'
```

####問題10
#####国内総生産 GDP が１兆ドル以上（０が１２個）の国の国名と国民一人当たりのGDPを表示する。 GDPの単位は＄1000単位にまとめる。

```sql
SELECT name, ROUND(gdp/population, -3)
FROM world
WHERE gdp > 1000000000000
```

####問題11
######ギリシャ（Greece） の首都はアテネ（Athens）。 GreeceとAthensの綴りはどちらも同じ６文字。
######国名 name と首都 capital が同じ長さの国の、国名と首都を表示する。
######LENGTH 関数で文字列の文字数を求める。

```sql
SELECT name, capital
FROM world
WHERE LEN(name) = LEN(capital)
```

####問題12
#####国名と首都の先頭の文字が同じである国
#####国名と首都名を表示する。
#####ただし、国名と首都名が同じ場合は除く。


```sql
SELECT name, capital 
FROM world 
WHERE LEFT(name, 1) = LEFT(capital, 1) AND name <> capital;
```
####問題13
#####国名に全ての母音を含む国
#####空白を含まない単語１つの国名を検索する。

```sql
SELECT name
   FROM world
WHERE name LIKE '%a%'
AND name LIKE '%e%'
AND name LIKE '%i%'
AND name LIKE '%o%'
AND name LIKE '%u%'
AND name NOT LIKE '% %';
```
前回
[1 SELECT name](https://qiita.com/m_masashi/items/3dbab4e1b8742de4476b)