返回顶部 底部

sqlzoo练习系列(四)——SELECT from Nobel

 【Tips】

  • sqlzoo官网链接:https://sqlzoo.net/wiki/SQL_Tutorial/zh
  • 每个系列开头介绍所用表及其信息
  • 每道题均测试通过,含有题目描述、代码和结果
  • 题目为自己简写,最好在官网查看具体题目
  • 部分测试结果不完整,仅为一部分截图

SELECT from Nobel练习链接:https://sqlzoo.net/wiki/SELECT_from_Nobel_Tutorial/zh

所用的表nobel

  • yr:获奖年份
  • subject:获奖类别
  • winner:获奖者

 

1.查询显示1950年诺贝尔奖的奖项资料

SELECT *
  FROM nobel
 WHERE yr = 1950

2.显示谁得了1962文学奖

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

3.显示('Albert Einstein') 的获奖年份和奖项

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

4.显示2000年及以后的和平奖获得者

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

5.显示1980到1989(包含首尾)的文学奖获得者的全部信息

SELECT *
FROM nobel
WHERE subject ='Literature'
AND yr BETWEEN 1980 AND 1989')

6.显示三个获胜者的全部信息

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

7.显示名字为John的得奖者

SELECT winner FROM nobel
WHERE winner LIKE 'John%'

8.显示1980物理得奖者和1984化学得奖者

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

9.查看1980获奖者,不包括化学奖和医学奖

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

10.显示1910之前的医学奖获得者,2004以后的文学奖获得者

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

11.显示PETER GRÜNBERG获得奖

SELECT *
FROM nobel
WHERE winner='PETER GRÜNBERG'

12.显示EUGENE O'NEILL得奖的细节

SELECT *
FROM nobel
WHERE winner='EUGENE O''NEILL'
--使用两个单引号表示文本中的一个单引号

13.列出爵士(名字以Sir开始)的获奖者、年份、奖项,先显示最新获奖者,同年按名称顺序排

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

14.列出1984winner和subject按照subject和winner排序,但是Chemistry和Physics放最后

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

posted @ 2020-10-18 15:31  tuzinn  阅读(255)  评论(0编辑  收藏  举报