LoginSignup
1
0

More than 3 years have passed since last update.

【SQL ZOO 解答集】(1 SELECT name)

Last updated at Posted at 2019-08-25

本投稿の目的

  • 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

前回
0 SELECT basics
次回
2 SELECT from World

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0