SQLZOO Notes III - SELECT from Nobel Tutorial

一枝莉莉
2 min readSep 5, 2019

--

Photo by Caspar Camille Rubin on Unsplash

篇章 III - SELECT from Nobel Tutorial

讓我們繼續練習吧~有關諾貝爾獎得獎者表格的SQL查詢。

nobel(yr, subject, winner)
yr : 年份 , subject : 獎項 , winner : 獲獎者

題目:https://sqlzoo.net/wiki/SELECT_from_Nobel_Tutorial/zh

p.s. 前章節在這兒:SELECT from WORLD Tutorial

Q1. 更改查詢以顯示1950年諾貝爾獎的獎項資料。

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

Q2. 顯示誰贏得了1962年文學獎(Literature)。

SELECT winner FROM nobel
WHERE yr = 1962 AND subject = ‘Literature’;

Q3. 顯示“愛因斯坦”(‘Albert Einstein’) 的獲獎年份和獎項。

SELECT yr, subject FROM nobel
WHERE winner = ‘Albert Einstein’;

Q4. 顯示2000年及以後的和平獎(‘Peace’)得獎者。

SELECT winner FROM nobel
WHERE yr >= 2000 AND subject = ‘Peace’;

Q5. 顯示1980年至1989年(含首尾)的文學獎(Literature)獲獎者所有細節 : (yr, subject, winner)。

Notes : Use the expression subject BETWEEN x AND y

SELECT yr, subject, winner FROM nobel
WHERE subject = ‘Literature’
AND (yr BETWEEN 1980 AND 1989);

Q6. 顯示總統當選者的所有細節:

  • Theodore Roosevelt
  • Woodrow Wilson
  • Jimmy Carter

SELECT *FROM nobel
WHERE winner IN (‘Theodore Roosevelt’, ‘Woodrow Wilson’, ‘Jimmy Carter’);

Q7. 顯示名字為John 的得獎者。

Notes : 英文名字(First name)在前,姓氏(Last name)在後

SELECT winner FROM nobel
WHERE winner LIKE ‘John%’;

Q8. 顯示1980年物理學(Physics) & 1984年化學獎(Chemistry)的獲獎者。

SELECT *FROM nobel
WHERE (yr = 1980 AND subject = ‘Physics’)
OR (yr = 1984 AND subject = ‘Chemistry’)
ORDER BY yr;

Q9. 查看1980年獲獎者,但不包括化學獎(Chemistry)和醫學獎(Medicine)。

Notes : Use the expression subject NOT IN (‘Chemistry’,’Medicine’)

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

Q10. 顯示早期的醫學獎(Medicine)得獎者(1910以前, 不含1910),及近年文學獎(Literature)得獎者(2004年以後, 含2004年)。

SELECT *FROM nobel
WHERE (subject = ‘Medicine’ AND yr < 1910)
OR (subject = ‘Literature’ AND yr >= 2004);

More challenging Questions

Q11. 查找 PETER GRÜNBERG 得獎的所有詳情

SELECT *FROM nobel
WHERE winner LIKE ‘Peter Gr_nberg’;

Q12. 查找 EUGENE O’NEILL 得獎的所有細節

SELECT *FROM nobel
WHERE winner = ‘Eugene O’’neill’;

Q13. Knights in order。列出Knights的獲獎者、年份、獎項(Knights的名字以 Sir 開始)。先顯示最新獲獎者,同年再按名稱順序排列。

Notes : 以最新時間為優先排序,使用 ORDER by 時間 "DESC"

SELECT winner, yr, subject FROM nobel
WHERE winner LIKE ‘Sir%’
ORDER by yr DESC, winner;

Q14. 顯示1984年獲獎者和獎項,先按獎項排序,再按獲勝者名稱排; 但獎項:"化學"和"物理"最後列出。

Tips : The expression subject IN (‘Chemistry’,’Physics’) can be used as a value - it will be 0 or 1.

SELECT winner, subject FROM nobel
WHERE yr = 1984
ORDER BY subject IN (‘Chemistry’, ’Physics’), subject, winner;

心得

好像有那麼點的進步與成長,讓我們繼續加油吧。

希望有幫助到你

歡迎任何對文章的建議,如果喜歡也可以幫我拍手鼓勵!

--

--

一枝莉莉
一枝莉莉

Written by 一枝莉莉

Product Manager | 喜歡發現生活中的樂趣 | 左撇子 | 平時熱衷於觀察社會及研究 UI /UX 設計 | 愛上旅行 / 做甜點 / 影樂欣賞 / 瑜珈。

No responses yet