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

From SQLZOO
Jump to navigation Jump to search
 
(22 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 39: Line 39:


<p><code>SELECT</code> 文を使用する。</p>
<p><code>SELECT</code> 文を使用する。</p>
==1950 年度からの受賞者==
==1950 年度の受賞者==
<div class='qu'>
<div class='qu'>
1950年度からのノーベル賞受賞者を表示するようにクエリーを修正する。
1950年度のノーベル賞受賞者を表示するようにクエリーを修正する。
<source lang='sql' class='def'>
<source lang='sql' class='def'>
SELECT yr, subject, winner
SELECT yr, subject, winner
Line 55: Line 55:
</div>
</div>


==1962 Literature==
==1962年の文学賞==
<div class='qu'>
<div class='qu'>
ノーベル文学賞(Literature)を1962年に受賞した人を表示  
ノーベル文学賞(Literature)を1962年に受賞した人を表示  
Line 73: 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 86: 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 100: 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 114: 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 139: 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 151: 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 165: 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 179: 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 194: 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 212: 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 226: 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 241: 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 05: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