##本投稿の目的
- sql学習サイトsqlzooを用いたsqlの学習と理解
- 学習のアウトプット
- 学習メモとして、かつ公式の解答ページがなかったので作成した。
0 SELECT basics
1 SELECT name
2 SELECT from World←いまここ
3 SELECT from Nobel
4 SELECT within SELECT
5 SUM and COUNT
6 JOIN
7 More JOIN operations
8 Using Null
8+ Numeric Examples
9 Self join
####問題1
#####全ての国の国名と大陸と人口を表示する SQL コマンドを実行する。
SELECT name, continent, population
FROM world
####問題2
#####人口が2億人(200000000 ゼロが8個ある)以上の国の名前を表示する
SELECT name
FROM world
WHERE population >= 200000000
####問題3
#####人口population2億人以上の国の国名nameと国民一人当たりの国内総生産を表示
SELECT name, GDP/population
FROM world
WHERE population >= 200000000
####問題4
#####大陸continentが South America の国のnameとpopulationを 百万人単位 に変換して表示する。
#####人口 population を 1000000 で割ると100万人単位の人口になる。
SELECT name, population/1000000
FROM world
WHERE continent = 'South America'
####問題5
#####国名nameと人口population を 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
#####ビッグになる2つの道: ビッグな国とは、面積が 3000000 平方キロ以上 または 人口が 250000000 以上の国とする。
#####面積か人口がビッグな国を表示する。国名 人口 面積(name, population , area)を表示する。
SELECT name, population, area
FROM world
WHERE area >= 3000000 OR population >= 250000000
####問題8
######オーストラリアは面積は大きく人口は少ないので、含まれる。
######インドネシアは人口は大きく面積は狭いので、含まれる。
######中国は人口も面積も大きいので除かれる。
######イギリスは人口も面積も小さいので除かれる。
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 関数で小数点下2桁で表示。
SELECT name, ROUND(population/1000000,2), ROUND(gdp/1000000000, 2)
FROM world
WHERE continent = 'South America'
####問題10
#####国内総生産 GDP が1兆ドル以上(0が12個)の国の国名と国民一人当たりのGDPを表示する。 GDPの単位は$1000単位にまとめる。
SELECT name, ROUND(gdp/population, -3)
FROM world
WHERE gdp > 1000000000000
####問題11
######ギリシャ(Greece) の首都はアテネ(Athens)。 GreeceとAthensの綴りはどちらも同じ6文字。
######国名 name と首都 capital が同じ長さの国の、国名と首都を表示する。
######LENGTH 関数で文字列の文字数を求める。
SELECT name, capital
FROM world
WHERE LEN(name) = LEN(capital)
####問題12
#####国名と首都の先頭の文字が同じである国
#####国名と首都名を表示する。
#####ただし、国名と首都名が同じ場合は除く。
SELECT name, capital
FROM world
WHERE LEFT(name, 1) = LEFT(capital, 1) AND name <> capital;
####問題13
#####国名に全ての母音を含む国
#####空白を含まない単語1つの国名を検索する。
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 '% %';