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