Difference between revisions of "SELECT from Nobel Tutorial/ja"

From SQLZOO
Jump to navigation Jump to search
(Created page with "{{Languages}} <div class='ref_section' style='float:right'> <table class='db_ref'> <caption>nobel</caption> <th>yr</th> <th>subject</th> <th>winner</th> <tr> <td>1960</td> <td...")
 
 
(23 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Languages}}
+
{{Languages|SELECT_from_Nobel_Tutorial}}
 
<div class='ref_section' style='float:right'>
 
<div class='ref_section' style='float:right'>
 
<table class='db_ref'>
 
<table class='db_ref'>
Line 31: Line 31:
 
</table>
 
</table>
 
</div>
 
</div>
   <h2><code>nobel</code> Nobel Laureates</h2>
+
   <h2><code>nobel</code> ノーベル賞 </h2>
   <p>We continue practicing simple SQL queries on a single table.</p>
+
   <p>簡単なテーブルへのクエリーで簡単なSQLの練習を続ける。</p>
   <p>This tutorial is concerned with a table of Nobel prize winners:
+
   <p>このチュートリアルはノーベル賞受賞者に関するテーブルを扱う:
 
   </p>
 
   </p>
 
   <pre style='width:20em;'>nobel(yr, subject, winner)</pre>
 
   <pre style='width:20em;'>nobel(yr, subject, winner)</pre>
 +
  <pre style='width:20em;'>ノーベル(年度, 分野, 受賞者)</pre>
  
<p>Using the <code>SELECT</code> statement.</p>
+
<p><code>SELECT</code> 文を使用する。</p>
==Winners from 1950==
+
==1950 年度の受賞者==
 
<div class='qu'>
 
<div class='qu'>
Change the query shown so that it displays Nobel prizes for 1950.
+
1950年度のノーベル賞受賞者を表示するようにクエリーを修正する。
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
 
SELECT yr, subject, winner
 
SELECT yr, subject, winner
Line 54: Line 55:
 
</div>
 
</div>
  
==1962 Literature==
+
==1962年の文学賞==
 
<div class='qu'>
 
<div class='qu'>
Show who won the 1962 prize for Literature.
+
ノーベル文学賞(Literature)を1962年に受賞した人を表示
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
 
SELECT winner
 
SELECT winner
Line 72: Line 73:
 
</div>
 
</div>
  
==Albert Einstein==
+
==アルバート・アインシュタイン==
 
<div class='qu'>
 
<div class='qu'>
Show the year and subject that won 'Albert Einstein' his prize. 
+
アルバート・アインシュタイン(Albert Einstein)がノーベル賞を受賞した年と分野を表示
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
 
</source>
 
</source>
Line 85: Line 86:
 
</div>
 
</div>
  
==Recent Peace Prizes==
+
==近年の平和賞==
 
<div class='qu'>
 
<div class='qu'>
Give the name of the 'Peace' winners since the year 2000, including 2000.  
+
ノーベル平和賞( subject が Peace )の 2000年以降(2000を含む)の受賞者名を表示  
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
 
</source>
 
</source>
Line 99: Line 100:
 
</div>
 
</div>
  
==Literature in the 1980's==
+
==1980年代の文学賞==
 
<div class='qu'>
 
<div class='qu'>
Show all details ('''yr''', '''subject''', '''winner''') of the Literature prize winners for 1980 to 1989 inclusive. 
+
1980から1989年の間のノーベル文学賞について、年度、分野、受賞者の全ての詳細を表示する。
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
 
</source>
 
</source>
Line 113: Line 114:
 
</div>
 
</div>
  
==Only Presidents==
+
==大統領のみ==
 
<div class='qu'>
 
<div class='qu'>
Show all details of the presidential winners:
+
次の大統領の受賞内容の詳細を表示する。
*Theodore Roosevelt
+
*テオドール=ルーズベルト Theodore Roosevelt
*Woodrow Wilson
+
*ウッドロウ=ウィルソン Woodrow Wilson
*Jimmy Carter
+
*ジミー=カーター Jimmy Carter
*Barack Obama
+
*バラク=オバマ Barack Obama
  
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
Line 138: Line 139:
 
</div>
 
</div>
  
==John==
+
==ジョン==
 
<div class='qu'>
 
<div class='qu'>
Show the winners with first name John  
+
ファーストネームが John の受賞者を表示
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
 
</source>
 
</source>
Line 150: Line 151:
 
</div>
 
</div>
  
==Chemistry and Physics from different years==
+
==異なる年度の化学賞と物理学賞==
 
<div class='qu'>
 
<div class='qu'>
<p class=imper>Show the year, subject, and name of Physics winners for 1980 together with the Chemistry winners for 1984.</p>
+
<p class=imper>1980年のノーベル物理賞 physics の受賞者 と 1984年の化学賞 chemistry の受賞者を共に表示する
 +
</p>
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
 
</source>
 
</source>
Line 164: Line 166:
 
</div>
 
</div>
  
==Exclude Chemists and Medics==
+
==化学と医学を除く==
 
<div class='qu'>
 
<div class='qu'>
<p class=imper>Show the year, subject, and name of winners for 1980 excluding Chemistry and Medicine</p>
+
<p class=imper>1980年の 化学 Chemistry と医学 Medicine 以外で、賞の年度、分野、名前を表示</p>
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
 
</source>
 
</source>
Line 178: Line 180:
 
</div>
 
</div>
  
==Early Medicine, Late Literature==
+
==初期の医学と最近の文学==
 
<div class='qu'>
 
<div class='qu'>
Show year, subject, and name of people who won a 'Medicine' prize in an early year (before 1910, not including 1910) together with winners of a 'Literature' prize in a later year (after 2004, including 2004)
+
1910年以前(1910は含まず)の 初期の医学 Medicine の受賞者 と
 +
2004年以降(2004は含む)の 最近の文学 Literature の受賞者 を共に表示する。
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
 
</source>
 
</source>
Line 193: Line 196:
  
 
<div>
 
<div>
<p><div class="quizlink">[[Nobel Quiz]]</div></p>
+
<p><div class="quizlink">[[Nobel Quiz/ja|ノーベル賞クイズ]]</div></p>
 
</div>
 
</div>
  
==Harder Questions==
+
==より難しい問題==
==Umlaut==
+
 
 +
==ウムラウト==
 
<div class='qu'>
 
<div class='qu'>
Find all details of the prize won by PETER GRÜNBERG
+
PETER GRÜNBERG の受賞内容詳細を検索する。
<div class=hint title='Non-ASCII characters'>The u in his name has an '''umlaut'''. You may find this link useful https://en.wikipedia.org/wiki/%C3%9C#Keyboarding</div>
+
ウムラウトの入力方法(Ü の入力方法)を調べ検索キーワードで機能させる方法を調べる。
 +
<div class=hint title='非アスキー文字'>彼の名前の u には ウムラウト がある。このリンクが便利かも https://en.wikipedia.org/wiki/%C3%9C#Keyboarding</div>
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
 
</source>
 
</source>
Line 211: Line 216:
 
</div>
 
</div>
  
==Apostrophe==
+
==アポストロフィー==
 
<div class='qu'>
 
<div class='qu'>
Find all details of the prize won by EUGENE O'NEILL
+
EUGENE O'NEILL の全ての受賞内容詳細を検索する。
<div class=hint title='Escaping single quotes'>You can't put a single quote in a quote string directly. You can use two single quotes within a quoted string.</div>
+
<div class=hint title='シングルクォートのエスケープ'>シングルクォートをクォート文字列中にそのまま置くことはできない。2つのシングルクォートを続けて2つ書くとシングルクォートになる。</div>
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
 
</source>
 
</source>
Line 225: Line 230:
 
</div>
 
</div>
  
==Knights of the realm==
+
==騎士の領土==
 
<div class='qu'><span class='param respectorder'></span>
 
<div class='qu'><span class='param respectorder'></span>
Knights in order
+
騎士の順序
<p class=imper>List the winners, year and subject where the winner starts with '''Sir'''. Show the the most recent first, then by name order.</p>
+
<p class=imper>騎士の受賞者リストを表示する。
 +
Sir. で始まる受賞者の 受賞者、年、分野 を表示する。 年が新しい順に、同年内では名前順に表示する。</p>
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
 
</source>
 
</source>
Line 240: Line 246:
 
</div>
 
</div>
  
==Chemistry and Physics last==
+
==化学賞と物理賞は末尾に==
 
<div class='qu'><span class='param respectorder'></span>
 
<div class='qu'><span class='param respectorder'></span>
The expression '''subject IN ('Chemistry','Physics')''' can be used as a value - it will be '''0''' or '''1'''.
+
subject IN ('Physics' , Chemistry') の値は 0 または 1 として扱われる。
<p class=imper>Show the 1984 winners and subject ordered by subject and winner name; but list Chemistry and Physics last.</p>
+
<p class=imper>1984年の賞の 受賞者 winner と分野 subject を分野と受賞者の名前順で表示する。ただし化学 Chemistry
 +
と物理学 Physics は最後の方に表示する。</p>
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
 
SELECT winner, subject, subject IN ('Physics','Chemistry')
 
SELECT winner, subject, subject IN ('Physics','Chemistry')

Latest revision as of 06:21, 24 March 2020

Language:Project:Language policy English  • 日本語 • 中文
nobel
yr subject winner
1960 Chemistry Willard F. Libby
1960 Literature Saint-John Perse
1960 Medicine Sir Frank Macfarlane Burnet
1960 Medicine Peter Madawar
...

nobel ノーベル賞

簡単なテーブルへのクエリーで簡単なSQLの練習を続ける。

このチュートリアルはノーベル賞受賞者に関するテーブルを扱う:

nobel(yr, subject, winner)
ノーベル(年度, 分野, 受賞者)

SELECT 文を使用する。

1950 年度の受賞者

1950年度のノーベル賞受賞者を表示するようにクエリーを修正する。

SELECT yr, subject, winner
  FROM nobel
 WHERE yr = 1960
SELECT yr, subject, winner
  FROM nobel
 WHERE yr = 1950

1962年の文学賞

ノーベル文学賞(Literature)を1962年に受賞した人を表示

SELECT winner
  FROM nobel
 WHERE yr = 1960
   AND subject = 'Physics'
SELECT winner
  FROM nobel
 WHERE yr = 1962
   AND subject = 'Literature'

アルバート・アインシュタイン

アルバート・アインシュタイン(Albert Einstein)がノーベル賞を受賞した年と分野を表示

SELECT yr, subject
FROM nobel
WHERE winner = 'Albert Einstein'

近年の平和賞

ノーベル平和賞( subject が Peace )の 2000年以降(2000を含む)の受賞者名を表示

SELECT winner
FROM nobel
WHERE subject = 'Peace'
AND yr >= 2000

1980年代の文学賞

1980から1989年の間のノーベル文学賞について、年度、分野、受賞者の全ての詳細を表示する。

SELECT yr,subject,winner
FROM nobel
WHERE subject = 'Literature'
AND yr BETWEEN 1980 AND 1989

大統領のみ

次の大統領の受賞内容の詳細を表示する。

  • テオドール=ルーズベルト Theodore Roosevelt
  • ウッドロウ=ウィルソン Woodrow Wilson
  • ジミー=カーター Jimmy Carter
  • バラク=オバマ Barack Obama
SELECT * FROM nobel
 WHERE yr = 1970
  AND subject IN ('Cookery',
                  'Chemistry',
                  'Literature')
SELECT * FROM nobel
 WHERE  winner IN ('Theodore Roosevelt',
  'Woodrow Wilson',
  'Jimmy Carter',
  'Barack Obama')

ジョン

ファーストネームが John の受賞者を表示

SELECT winner FROM nobel
  WHERE winner LIKE 'John %'

異なる年度の化学賞と物理学賞

1980年のノーベル物理賞 physics の受賞者 と 1984年の化学賞 chemistry の受賞者を共に表示する

SELECT *
FROM nobel
WHERE (subject='physics' AND yr=1980) OR
      (subject='chemistry' AND yr=1984)

化学と医学を除く

1980年の 化学 Chemistry と医学 Medicine 以外で、賞の年度、分野、名前を表示

SELECT *
FROM nobel
WHERE yr=1980 AND
  subject NOT IN ('Chemistry','Medicine')

初期の医学と最近の文学

1910年以前(1910は含まず)の 初期の医学 Medicine の受賞者 と 2004年以降(2004は含む)の 最近の文学 Literature の受賞者 を共に表示する。

SELECT *
FROM nobel 
WHERE (subject='Medicine' and yr <1910) OR
      (subject='Literature' AND yr>=2004)

より難しい問題

ウムラウト

PETER GRÜNBERG の受賞内容詳細を検索する。 ウムラウトの入力方法(Ü の入力方法)を調べ検索キーワードで機能させる方法を調べる。

彼の名前の u には ウムラウト がある。このリンクが便利かも https://en.wikipedia.org/wiki/%C3%9C#Keyboarding
SELECT *
FROM nobel 
WHERE winner in ('Peter Grünberg')

アポストロフィー

EUGENE O'NEILL の全ての受賞内容詳細を検索する。

シングルクォートをクォート文字列中にそのまま置くことはできない。2つのシングルクォートを続けて2つ書くとシングルクォートになる。
SELECT *
FROM nobel 
WHERE winner in ('Eugene O''Neill')

騎士の領土

騎士の順序

騎士の受賞者リストを表示する。 Sir. で始まる受賞者の 受賞者、年、分野 を表示する。 年が新しい順に、同年内では名前順に表示する。

SELECT winner, yr, subject
FROM nobel 
WHERE winner LIKE 'Sir%'
ORDER BY yr DESC, winner

化学賞と物理賞は末尾に

式 subject IN ('Physics' , Chemistry') の値は 0 または 1 として扱われる。

1984年の賞の 受賞者 winner と分野 subject を分野と受賞者の名前順で表示する。ただし化学 Chemistry と物理学 Physics は最後の方に表示する。

SELECT winner, subject, subject IN ('Physics','Chemistry')
  FROM nobel
 WHERE yr=1984
 ORDER BY subject,winner
select winner, subject
from nobel
where yr=1984
order by subject in ('Physics','Chemistry'),subject,winner