SQLZOO翻译及其代码答案(2021/1/17更)

SQL入门小白的练习作业整理(●’◡’●)

0 SELECT basics

表:
world(name,continent.area,population,gdp,capital)

#1(考察where) 列出德国的人口

SELECT population FROM world 
  WHERE name = 'Germany';

#2(考察in) 列出’Sweden’, ‘Norway’ 和 'Denmark’地区的名字和人口

SELECT name, population FROM world
  WHERE name IN ( 'Sweden', 'Norway', 'Denmark');

#3(考察between) 列出面积为200000-250000之间的国家名和面积

SELECT name, area FROM world
  WHERE area BETWEEN 200000 AND 250000;

1 SELECT names

表:
world(name,continent.area,population,gdp,capital)

#1 列出Y开头的国家名

SELECT name FROM world
  WHERE name LIKE 'Y%';

#2 列出Y结尾的国家名

SELECT name FROM world
  WHERE name LIKE '%Y';

#3 列出含有字母x的国家名

SELECT name FROM world
  WHERE name LIKE '%x%';

#4 列出land结尾的国家名

SELECT name FROM world
  WHERE name LIKE '%land';

#5 列出开头是C,结尾是ia的国家名

SELECT name FROM world
  WHERE name LIKE 'C%ia';

#6 列出名字里含有oo的国家名

SELECT name FROM world
  WHERE name LIKE '%oo%';

#7 列出名字里含有3个以上a的国家名

SELECT name FROM world
  WHERE name LIKE '%a%a%a%';

#8 列出名字里第二个字母是t的国家名,按照国家名排序

SELECT name FROM world
  WHERE name LIKE '_t%'
  ORDER BY name;

#9 列出名字里有两个字母o中间相隔2个字符的国家名

SELECT name FROM world
  WHERE name LIKE '%o__o%'

#10 列出名字为四个字母的国家名

SELECT name FROM world
  WHERE name LIKE '____';

#11 列出国家名和首都名称一致的国家名

SELECT name FROM world
  WHERE name = capital;

#12 列出首都名是国家名加上’City’的国家名(City前要加空格)

SELECT name FROM world
  WHERE concat(name,' City') = capital;

#13 列出首都名和国家名,其中首都名包含有国家名

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

#14 列出首都名和国家名,其中首都名是国家名的延申

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

#15(新增REPLACE函数)在14T的筛选基础上,列出国家名,国家名的延申部分(extension)

SELECT name,REPLACE(capital,name,'') AS extension
  FROM world
  WHERE capital LIKE concat(name,'_','%');

2 SELECT from World

表:
world(name,continent.area,population,gdp,capital)

#1 略

#2 列出人口数至少200000000的国家

SELECT name FROM world
  WHERE population >= 200000000;

#3 列出人口数至少200000000的国家名以及人均GDP

SELECT name,gdp/population AS 'per capita GDP'
  FROM world
  WHERE population >= 200000000;

#4 列出南美大陆的国家名和人口数(以百万为单位)

SELECT name,population/1000000 AS 'population in millions'
  FROM world
  WHERE continent = 'South America';

#5 列出rance, Germany, Italy及其人口数

SELECT name, population From world
  WHERE name IN ('France','Germany','Italy');

#6 列出名字含有’United’的国家名

SELECT name FROM world
  WHERE name LIKE '%United%';

#7 列出面积超过3百万或者人口超过250百万的国家名,人口数和面积

SELECT name, population, area FROM world
  WHERE area > 3000000
    OR population > 250000000;

#8 列出面积超过3百万或者人口超过250百万(不能两者同时满足)的国家名,人口数和面积

SELECT name, population, area FROM world
  WHERE (area > 3000000
    AND population <= 250000000)
    OR(area <= 3000000
    AND population > 250000000);

#9(新增ROUND函数)列出南美地区的国家名,人口数(单位为百万),GDP(单位为十亿),并保留两位小数

SELECT name, ROUND(population/1000000,2), ROUND(gdp/1000000000,2)
  FROM world
  WHERE continent = 'South America';

#10 列出GDP至少1000000000000的国家名和人均GDP(保留到千位数)

SELECT name, ROUND(gdp/population,-3) AS 'per-capta GDP'
  FROM world
  WHERE gdp >= 1000000000000;

#11(新增LENGTH函数) 列出国家名和首都名长度一致的国家名和首都名

SELECT name, capital FROM world
  WHERE LENGTH(name) = LENGTH(capital);

#12(新增LEFT函数)列出国家名和首都名首字母一致且两者不完全相等的国家名和首都名

SELECT name, capital FROM world
  WHERE LEFT(name,1) = LEFT(capital,1)
    AND name <> capital;

#13 列出含有所有元音字母‘aeiou’且不含空格的国家名

SELECT name FROM world
  WHERE name LIKE '%a%'
    AND name LIKE '%e%'
    AND name LIKE '%i%'
    AND name LIKE '%o%'
    AND name LIKE '%u%'
    AND name NOT LIKE '% %';

3 SELECT from Nobel

表:
nobel(yr,subject,winner)

#1 列出1950年的诺贝尔奖奖项和得主

SELECT yr, subject, winner 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', 
                  'Barack Obama'
                  );

#7 列出First name是John的获奖者

SELECT winner FROM nobel
  WHERE winner LIKE 'John %';

#8 列出1980年获得物理学奖或者1984年获得化学奖的所有信息

SELECT * FROM no
  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sweetapocalypse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值