##本投稿の目的
- 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 SELECT name
####問題1
#####Yで始まる国を探す
SELECT name
FROM world
WHERE name
LIKE 'Y%';
####問題2
#####yで終わる国を見つける
SELECT name
FROM world
WHERE name
LIKE '%y';
####問題3
#####文字xを含む国を見つける
SELECT name
FROM world
WHERE name
LIKE '%x%';
####問題4
#####Iceland, Switzerlandなど、最後がlandの国を見つける
SELECT name
FROM world
WHERE name
LIKE '%land';
####問題5
#####Cで始まりiaで終わる国を見つける
SELECT name
FROM world
WHERE name
LIKE 'C%ia';
####問題6
#####名前に2つoがある国を探す
SELECT name
FROM world
WHERE name
LIKE '%oo%';
####問題7
#####名前に3つ以上のaがある国を見つける
SELECT name
FROM world
WHERE name
LIKE '%a%a%a%';
####問題8
#####2番目の文字が「t」である国を検索する
SELECT name
FROM world
WHERE name LIKE '_t%'
ORDER BY name;
####問題9
#####2つの「o」が区切られている国を検索する。
SELECT name
FROM world
WHERE name LIKE '%o__o%'
ORDER BY name;
####問題10
#####4文字の国を見つける。
SELECT name
FROM world
WHERE name
LIKE '____';
####問題11
#####ルクセンブルクの首都はルクセンブルクである。首都が国の名前と同じすべての国を表示する
#####国名と首都が同じ国を探す。
SELECT name
FROM world
WHERE name = capital;
####問題12
#####首都名が「国+City」の国を探す
SELECT name
FROM world
WHERE capital=concat(name,' City');
####問題13
SELECT name
FROM world
WHERE name LIKE '_t%'
ORDER BY name;
####問題14
#####首都と国名を探す。(首都名が国名を拡張している場合)
- 検索結果にはMexico よりも長くなったMexico Cityを含める。
- Luxembourg は首都と国名が同じなので含めない。
#解答1
SELECT capital,name
FROM world
WHERE capital
LIKE concat('%',name,'%') AND name<>capital;
#解答2
SELECT capital,name
FROM world
WHERE capital
LIKE concat(name, '%') AND name<>capital;
####問題15
#####国名と首都の拡張部分を探す。例)Monaco-Ville の国名は Monaco で、拡張部分は -Ville
- SQL の関数 MIDとLENGTH を使う。
#解答1
SELECT name, REPLACE(capital, name, '') as ext
FROM world
WHERE capital
LIKE CONCAT(name, '_%');
#解答2
SELECT name,RIGHT(capital,LENGTH(capital)-LENGTH(name)) as ext
FROM world
WHERE capital
LIKE concat(name,'%') AND name<>capital
#解答3
SELECT name,SUBSTRING(capital,LENGTH(name)+1) as ext
FROM world
WHERE capital LIKE concat(name, '%')
AND capital <> name