Difference between revisions of "SELECT names/ja"

From SQLZOO
Jump to navigation Jump to search
(Created page with "{{Languages}} <div class="ref_section"> <table class='db_ref'> <tr><th>name</th><th>continent</th></tr> <tr><td>Afghanistan</td><td>Asia</td></tr> <tr><td>Albania</td><td>Euro...")
 
Line 12: Line 12:
 
</tr>
 
</tr>
 
</table>
 
</table>
 +
name:国名<BR>
 +
continent:大陸<BR>
 
</div>
 
</div>
  
  
 
----
 
----
==Pattern Matching Strings==
+
==文字列のパターンマッチ==
<p>This  tutorial uses the '''LIKE''' operator to check names. We will be using the SELECT command on the table '''world''':</p>
+
<p>このチュートリアルでは '''LIKE''' 演算子を用いて国名をチェックする。SELECT コマンドを '''world''' テーブルに使うとよい:</p>
  
 
<div class='extra_space' style='width:1em; height:6em;'></div>
 
<div class='extra_space' style='width:1em; height:6em;'></div>
  
 
<div class='qu'>
 
<div class='qu'>
You can use <code>WHERE name LIKE 'B%'</code> to find the countries that start with "B".
+
<code>WHERE name LIKE 'B%'</code> というコードで、"B" から始まる国名を検索できる。
*The % is a ''wild-card'' it can match any characters
+
* % 記号は''ワイルドカード'' といい、どんな文字列(複数の文字。0文字でも可)にもマッチする。
<p class='imper'>Find the country that start with Y</p>
+
<p class='imper'>Y で始まる国名を見つける</p>
  
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
Line 39: Line 41:
  
 
<div class='qu'>
 
<div class='qu'>
<p class='imper'>Find the countries that end with '''y'''</p>
+
<p class='imper'>'''y''' で終わる国名を見つける</p>
  
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
Line 53: Line 55:
  
 
<div class='qu'>
 
<div class='qu'>
Luxembourg has an '''x''' - so does one other country. List them both.
+
ルクセンブルグ Luxembourg には '''x''' が一文字あり、同様の国はこの他にもある。どちらもリストアップする。
<p class='imper'>Find the countries that contain the letter '''x'''</p>
+
<p class='imper'>'''x''' を含む国名を見つける</p>
  
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
Line 68: Line 70:
  
 
<div class='qu'>
 
<div class='qu'>
Iceland, Switzerland end with '''land''' - but are there others?
+
アイスランド Iceland とスイス Switzerland '''land''' で終わっている。他にもあるか?
<p class='imper'>Find the countries that end with '''land'''</p>
+
<p class='imper'>'''land''' で終わる国名を検索する。</p>
  
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
Line 83: Line 85:
  
 
<div class='qu'>
 
<div class='qu'>
Columbia starts with a '''C''' and ends with '''ia''' - there are two more like this.
+
コロンビア Columbia '''C''' で始まり、'''ia''' で終わる。このような国は2つ以上ある。
<p class='imper'>Find the countries that start with '''C''' and end with '''ia'''</p>
+
<p class='imper'>'''C''' で始まり '''ia''' で終わる国を見つける</p>
  
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
Line 98: Line 100:
  
 
<div class='qu'>
 
<div class='qu'>
Greece has a double '''e''' - who has a double '''o'''?
+
ギリシャ Greece '''e''' を続けて2つ含む。'''o''' を続けて2つ含む国は?
<p class='imper'>Find the country that has '''oo''' in the name</p>
+
<p class='imper'>'''oo''' を名前に含む国を見つける</p>
  
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
Line 113: Line 115:
  
 
<div class='qu'>
 
<div class='qu'>
Bahamas has three '''a''' - who else?
+
バハマ Bahamas には'''a''' が3つある。他にあるか?
<p class='imper'>Find the countries that have three or more '''a''' in the name</p>
+
<p class='imper'>'''a''' を3つ以上含む国名を見つける</p>
  
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
Line 127: Line 129:
  
 
<div class='qu'>
 
<div class='qu'>
India and Angola have an '''n''' as the second character. You can use the underscore as a single character wildcard.
+
インド India と アンゴラ Angola '''n''' が2文字目にある。ある一文字を表すワイルドカードにはアンダースコア'''_'''を使う。
 
<source lang='sql'>
 
<source lang='sql'>
 
SELECT name FROM world
 
SELECT name FROM world
Line 133: Line 135:
 
ORDER BY name
 
ORDER BY name
 
</source>
 
</source>
<p class='imper'>Find the countries that have "t" as the second character.</p>
+
<p class='imper'>"t" を第2文字目に持つ国名を見つける</p>
  
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
Line 149: Line 151:
  
 
<div class='qu'>
 
<div class='qu'>
Les'''o'''th'''o''' and M'''o'''ld'''o'''va both have two o characters separated by two other characters.
+
レソト Les'''o'''th'''o''' と モルドバ M'''o'''ld'''o'''va はどちらも2つの o が 2つの他の文字で隔てられている。
<p class='imper'>Find the countries that have two "o" characters separated by two others.</p>
+
<p class='imper'> 複数の"o"が他の2文字で隔てられている国名を見つける</p>
  
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
Line 164: Line 166:
  
 
<div class='qu'>
 
<div class='qu'>
Cuba and Togo have four characters names.
+
キューバ Cuba と トーゴ Togo の国名は4文字。
<p class='imper'>Find the countries that have exactly four characters.</p>
+
<p class='imper'>ちょうど4文字の国名を見つける</p>
  
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
Line 178: Line 180:
 
</div>
 
</div>
  
==Harder Questions==
+
==より難しい問題==
 
Well done for getting this far.
 
Well done for getting this far.
  

Revision as of 10:54, 18 April 2018

Language:Project:Language policy [[:{{#invoke:String|sub|SELECT names/ja
 |1
 |Expression error: Unrecognized punctuation character "{".
}}|English]]
namecontinent
AfghanistanAsia
AlbaniaEurope
AlgeriaAfrica
AndorraEurope
AngolaAfrica
....

name:国名
continent:大陸



文字列のパターンマッチ

このチュートリアルでは LIKE 演算子を用いて国名をチェックする。SELECT コマンドを world テーブルに使うとよい:

WHERE name LIKE 'B%' というコードで、"B" から始まる国名を検索できる。

  •  % 記号はワイルドカード といい、どんな文字列(複数の文字。0文字でも可)にもマッチする。

Y で始まる国名を見つける

SELECT name FROM world
  WHERE name LIKE 'F%'
SELECT name FROM world
  WHERE name LIKE 'Y%'


y で終わる国名を見つける

SELECT name FROM world
  WHERE name LIKE 'T%'
SELECT name FROM world
  WHERE name LIKE '%y'

ルクセンブルグ Luxembourg には x が一文字あり、同様の国はこの他にもある。どちらもリストアップする。

x を含む国名を見つける

SELECT name FROM world
  WHERE name LIKE 'T%'
SELECT name FROM world
  WHERE name LIKE '%x%'

アイスランド Iceland とスイス Switzerland は land で終わっている。他にもあるか?

land で終わる国名を検索する。

SELECT name FROM world
  WHERE name LIKE 'T%'
SELECT name FROM world
  WHERE name LIKE '%land'

コロンビア Columbia は C で始まり、ia で終わる。このような国は2つ以上ある。

C で始まり ia で終わる国を見つける

SELECT name FROM world
  WHERE name LIKE 'T%'
SELECT name FROM world
  WHERE name LIKE 'C%ia'

ギリシャ Greece は e を続けて2つ含む。o を続けて2つ含む国は?

oo を名前に含む国を見つける

SELECT name FROM world
  WHERE name LIKE '%ee%'
SELECT name FROM world
  WHERE name LIKE '%oo%'

バハマ Bahamas にはa が3つある。他にあるか?

a を3つ以上含む国名を見つける

SELECT name FROM world
  WHERE name LIKE 'T%'
SELECT name FROM world
  WHERE name LIKE '%a%a%a%'

インド India と アンゴラ Angola は n が2文字目にある。ある一文字を表すワイルドカードにはアンダースコア_を使う。

SELECT name FROM world
 WHERE name LIKE '_n%'
ORDER BY name

"t" を第2文字目に持つ国名を見つける

SELECT name FROM world
 WHERE name LIKE '_n%'
ORDER BY name
SELECT name FROM world
 WHERE name LIKE '_t%'
ORDER BY name

レソト Lesotho と モルドバ Moldova はどちらも2つの o が 2つの他の文字で隔てられている。

複数の"o"が他の2文字で隔てられている国名を見つける

SELECT name FROM world
 WHERE name LIKE '_n%'
SELECT name FROM world
 WHERE name LIKE '%o__o%'

キューバ Cuba と トーゴ Togo の国名は4文字。

ちょうど4文字の国名を見つける

SELECT name FROM world
 WHERE name LIKE 'Cu%'
SELECT name FROM world
 WHERE name LIKE '____'

より難しい問題

Well done for getting this far.

The next questions are optional and only for students who are finding the basic questions too easy.

The capital of Luxembourg is Luxembourg. Show all the countries where the capital is the same as the name of the country

Find the country where the name is the capital city.

SELECT name, capital, continent
  FROM world
 WHERE name LIKE '%x%'
SELECT name FROM world
 WHERE name = capital

The capital of Mexico is Mexico City. Show all the countries where the capital has the country together with the word "City".

Find the country where the capital is the country plus "City".

The function concat is short for concatenate - you can use it to combine two or more strings.

SELECT name, concat(name, 'town')
  FROM world
 WHERE name LIKE '%ina%'
SELECT name FROM world
 WHERE capital = concat(name, ' City')

Find the capital and the name where the capital includes the name of the country.

SELECT capital, name FROM world
 WHERE capital LIKE concat('%', name, '%')

Find the capital and the name where the capital is an extension of name of the country.

You should include Mexico City as it is longer than Mexico. You should not include Luxembourg as the capital is the same as the country.

SELECT capital,name FROM world
 WHERE capital LIKE concat(name, '_%')

For Monaco-Ville the name is Monaco and the extension is -Ville.

Show the name and the extension where the capital is an extension of name of the country.

You can use the SQL function REPLACE.

select name,mid(capital,length(name)+1) ext
from world
where capital like concat(name,'_%')

Play Find the Duplicates