【SQLZOO答え】1.SELECT name
SQL入門を勉強するため、友人にSQLの練習問題ないかと聞いたら、
【SQLZOO】というサイトを教えてもらいました。
ただし、問題を解いてるうちに、わからない問題に関して、クエリの答えがおらず、結果しか教えてくれないので、答えをアウトプットしようと思い、noteを始めました。
0.SQLZOO練習問題
1.Y で始まる国名を見つける
WHERE name LIKE 'B%' というコードで、"B" から始まる国名を検索できる。% 記号はワイルドカード といい、どんな文字列(複数の文字。0文字でも可)にもマッチする。
select
name
from
world
where
name LIKE 'y%'
2.y で終わる国名を見つける
select
name
from
world
where
name LIKE '%y'
3.x を含む国名を見つける
ルクセンブルグ Luxembourg には x が一文字あり、同様の国はこの他にもある。どちらもリストアップする。
select
name
from
world
where
name LIKE '%X%'
4.land で終わる国名を検索する
アイスランド Iceland とスイス Switzerland は land で終わっている。他にもあるか?
select
name
from
world
where
name LIKE '%land'
5.C で始まり ia で終わる国を見つける
コロンビア Columbia は C で始まり、ia で終わる。このような国は2つ以上ある。
select
name
from
world
where
name LIKE 'C%ia'
6.oo を名前に含む国を見つける
ギリシャ Greece は e を続けて2つ含む。o を続けて2つ含む国は?
select
name
from
world
where
name LIKE '%oo%'
7.a を3つ以上含む国名を見つける
バハマ Bahamas にはa が3つある。他にあるか?
select
name
from
world
where
name LIKE '%a%a%a%'
8."t" を第2文字目に持つ国名を見つける
インド India と アンゴラ Angola は n が2文字目にある。ある一文字を表すワイルドカードにはアンダースコア_を使う。
SELECT name FROM world
WHERE name LIKE '_n%'
ORDER BY name
select
name
from
world
where
name LIKE '_t%'
order by
name
9.複数の"o"が他の2文字で隔てられている国名を見つける
レソト Lesotho と モルドバ Moldova はどちらも2つの o が 2つの他の文字で隔てられている。
select
name
from
world
where
name LIKE '%o__o%'
10.ちょうど4文字の国名を見つける
キューバ Cuba と トーゴ Togo の国名は4文字。
select
name
from
world
where
name LIKE '____'
11.首都と国名が同じ国を見つける
ルクセンブルグ Luxembourg の首都は Luxembourg です。首都と国名が同じ国名をすべて表示する。
select
name
from
world
where
name = capital
12.国名 + "City" が首都の国を見つける。
Mexico の首都は Mexico City です。首都が国名に続けて "City" という国をすべて表示する。
concat 関数(結合関数):concat 関数は結合(concatenate)を短縮した関数名です。この関数で2個以上の文字列を結合できます。
select
name
from
world
where
capital = concat(name,' city')
13.国名を首都名に含む国の、首都と国名を表示する
select
capital,name
from
world
where
capital
like
concat('%',name,'%')
14.国名を拡張した首都名を持つ国の、首都と国名を見つける
検索結果にはMexico よりも長くなったMexico Cityを含めること。Luxembourg は首都と国名が同じなので含めないこと。
select
capital,name
from
world
where
capital
like
concat('%',name,'%')
and name <> capital
15.国名と首都の拡張部分を見つける
Monaco-Ville の国名は Monaco で、拡張部分は -Ville です。
SQL の関数 MIDとLENGTH を使う。
select
name, mid(capital,length(name)+1) as ext
from
world
where
capital
like
concat('%',name,'%')
and name <> capital
その他の答えへ
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
10.Tutorial Quizzes
11.Tutorial Student Records
12.Tutorial DDL
※問題を攻略でき次第、随時更新いたします。
この記事が気に入ったらサポートをしてみませんか?