一、SQL zoo
SQL zoo链接地址: http://zh.sqlzoo.net/wiki/SELECT_basics/zh
SQL zoo答案链接地址:https://blog.csdn.net/q370835062/article/details/83025363
1. select basics:
name:国家名称、continent:洲份、area:面积、population:人口、gdp:国内生产总值
1.1 显示德国Germany的人口:
select population from world where name = 'germany';
1.2 查询面积为5000000以上平方公里的国家,对每个国家显示她的名字和人均国内生产总值:
select name, gdp/population from world where area>5000000;
1.3 显示“Ireland 爱尔兰”,“Iceland 冰岛”,“Denmark 丹麦”的国家名称和人口:
select name ,population from world where name in ('ireland', 'iceland', 'denmark');
1.4 显示面积为 200,000 及 250,000 之间的国家名称及国家面积:
select name, area from world where area>200000 and area<250000;
select names/zh
1.1 找出以Y为开头的国家
select name from world where name like 'Y%';
1.2 找出以Y为结尾的国家
select name from world where name like '%Y';
1.3 找出所有国家,其名字包括字母x:
select name from world where name like '%x%';
1.4 找出所有国家,其名字以land 作结尾:
select name from world where name like '%land';
1.5 找出所有国家,其名字以C作为开始,ia作结尾:
select name from world where name like 'c%ia';
select name from world where name rlike '^c.*ia$';
1.6 找出所有国家,其名字包括字母oo:
select name from world where name like '%oo%';
1.7 找出所有国家,其名字包括三个或以上的a:
select name from world where name like '%a%a%a%';
1.8 找出所有国家,其名字以t作为第二个字母:
select name from world where name like '_t%';
1.9 找出所有国家,其名字都有两个字母o,被另外两个字母相隔着
select name from world where name like '%o__o%';
2.0 找出所有国家,其名字都是4个字母的:
select name from world where name like '____';
2.1 显示所有国家名字,其首都和国家名字都是相同的:
select name from world where name = capital;
2.2 显示所有国家的名字,其首都都是国家名字加上‘city'
select name from world where capital = concat(name, ' city'); # city前有空格
2.3 找出所有首都和其国家名字,而首都要有国家名字中出现:
select capital, name from world where capital like concat ('%', name ,'%');
2.4 找出所有首都和其国家名字,而首都是国家名字的延伸。
你应显示 Mexico City,因它比其国家名字 Mexico 长。
你不应该显示 Luxembourg,因它的首都和国家名是相同的。
SELECT name, capital
FROM world
WHERE capital LIKE concat(name, '%') AND (capital != name);
2.5
"Monaco-Ville"是合併國家名字 "Monaco" 和延伸詞"-Ville".
顯示國家名字,及其延伸詞,如首都是國家名字的延伸。
你可以使用SQL函數 REPLACE 或 MID.
SELECT name, REPLACE(capital, name, '') as ext
FROM world
WHERE capital LIKE concat(name, '%') AND (capital != name);
2. select from world:
2.1 观察运行一行简单的SQL命令的结果
select name, continent, population from world;
2.2 显示具有至少2亿人口的国家名称:
select name from world where population >=200000000;
2.3 找出至少有200百万人口的国家名称及人均国内生产总值:
select name , gdp/population from world where population>200000000;
2.4 显示’South America' 南美洲大陆国家的名字和以百万为单位人口数。将人口population 除以一百万(1000000)可得到以百万为单位的人口数。
select name, population/1000000 from world where continent in ('South America');
2.5 显示法国、德国、意大利的国家名称和人口:
select name,population from world where name in ('France', 'Germany','Italy');
2.6 显示包含单词‘united'为名称的国家
select name from world where name like '%united%';
2.7 展示大国名称,人口和面积(3百万平方公里以上或2.5亿以上人口为大国)
select name,population,area from world where population >250000000 or area>3000000;
2.8 显示以人口或面积为大国的国家,但不两者不能同时并存。
SELECT name, population, area FROM world
WHERE (area > 3000000 AND population < 250000000) OR(area < 3000000 AND population > 250000000);
2.9
除以為1000000(6個零)是以百萬計。除以1000000000(9個零)是以十億計。使用 ROUND 函數來顯示的數值到小數點後兩位。
3. select from nobel:
4. select in select:
5. sum and count:
6. join:
7. more join:
8. using null:
9. self join: