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...")
 
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Languages}}
+
{{Languages|SELECT names}}
 
<div class="ref_section">
 
<div class="ref_section">
 
<table class='db_ref'>
 
<table class='db_ref'>
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.
+
ここまでよく頑張りました。
  
The next questions are optional and only for students who are finding the basic questions too easy.
+
以下は選択問題で基本問題が簡単すぎると感じた学生専用です。
  
 
<div class='qu'>
 
<div class='qu'>
The capital of '''Luxembourg''' is '''Luxembourg'''. Show all the countries where the capital is the same as the name of the country
+
ルクセンブルグ '''Luxembourg''' の首都は '''Luxembourg''' です。首都と国名が同じ国名をすべて表示する。
<p class='imper'>Find the country where the name is the capital city.</p>
+
<p class='imper'>首都と国名が同じ国を見つける</p>
  
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
Line 200: Line 202:
  
 
<div class='qu'>
 
<div class='qu'>
The capital of '''Mexico''' is '''Mexico City'''. Show all the countries where the capital has the country together with the word "City".
+
'''Mexico''' の首都は '''Mexico City''' です。首都が国名に続けて "City" という国をすべて表示する。
<p class='imper'>Find the country where the capital is the country plus "City".</p>
+
<p class='imper'>国名 + "City" が首都の国を見つける。</p>
<div class=hint title='The concat function'>
+
<div class=hint title='concat 関数(結合関数)'>
The function concat is short for concatenate - you can use it to combine two or more strings.
+
concat 関数は結合(concatenate)を短縮した関数名です。この関数で2個以上の文字列を結合できます。
 
</div>
 
</div>
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
Line 218: Line 220:
  
 
<div class='qu'>
 
<div class='qu'>
<p class='imper'>Find the capital and the name where the capital includes the name of the country.</p>
+
<p class='imper'>国名を首都名に含む国の、首都と国名を表示する</p>
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
 
</source>
 
</source>
Line 229: Line 231:
  
 
<div class='qu'>
 
<div class='qu'>
<p class='imper'>Find the capital and the name where the capital is an extension of name of the country.</p>
+
<p class='imper'>国名を拡張した首都名を持つ国の、首都と国名を見つける</p>
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.
+
検索結果には'''Mexico''' よりも長くなった'''Mexico City'''を含めること。'''Luxembourg ''' は首都と国名が同じなので含めないこと。
 
<source lang='sql' class='def'></source>
 
<source lang='sql' class='def'></source>
  
Line 240: Line 242:
  
 
<div class='qu'>
 
<div class='qu'>
For '''Monaco-Ville''' the name is '''Monaco''' and the extension is '''-Ville'''.
+
'''Monaco-Ville''' の国名は '''Monaco''' で、拡張部分は '''-Ville''' です。
<p class='imper'>Show the name and the extension where the capital is an extension of name of the country.</p>
+
<p class='imper'>国名と首都の拡張部分を見つける</p>
You can use the SQL function [[REPLACE]].
+
SQL の関数 <code>MID</code>と[[LENGTH]] を使う。
 
<source lang='sql' class='def'></source>
 
<source lang='sql' class='def'></source>
  
Line 252: Line 254:
 
</div>
 
</div>
  
Play [https://sqlzoo.net/brain/bt.htm Find the Duplicates]
+
プレイしよう [https://sqlzoo.net/brain/bt.htm 重複発見ゲーム Find Duplicates game]

Latest revision as of 05:27, 24 March 2020

Language:Project:Language policy 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 '____'

より難しい問題

ここまでよく頑張りました。

以下は選択問題で基本問題が簡単すぎると感じた学生専用です。

ルクセンブルグ Luxembourg の首都は Luxembourg です。首都と国名が同じ国名をすべて表示する。

首都と国名が同じ国を見つける

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

Mexico の首都は Mexico City です。首都が国名に続けて "City" という国をすべて表示する。

国名 + "City" が首都の国を見つける。

concat 関数は結合(concatenate)を短縮した関数名です。この関数で2個以上の文字列を結合できます。

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

国名を首都名に含む国の、首都と国名を表示する

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

国名を拡張した首都名を持つ国の、首都と国名を見つける

検索結果にはMexico よりも長くなったMexico Cityを含めること。Luxembourg は首都と国名が同じなので含めないこと。

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

Monaco-Ville の国名は Monaco で、拡張部分は -Ville です。

国名と首都の拡張部分を見つける

SQL の関数 MIDLENGTH を使う。

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

プレイしよう 重複発見ゲーム Find Duplicates game