SQLZOO刷题笔记
[sqlzoo刷题官网](https://sqlzoo.net/wiki/SELECT_basics)
leetcode刷不动,太难了,SQLZOO找找自信。
QUQ sqlzoo中联系不需要加分号,所以下面的例程有些没加分号。
1、修改此例子,以顯示德國 Germany 的人口。
SELECT population FROM world
WHERE name = 'Germany '
2、修改此例子,查詢面積為 5,000,000 以上平方公里的國家,對每個國家顯示她的名字和人均國內生產總值(gdp/population)。
SELECT name, gdp/population FROM world
WHERE area > 5000000
3、顯示“Ireland 愛爾蘭”,“Iceland 冰島”,“Denmark 丹麥”的國家名稱和人口。
SELECT name, population FROM world
WHERE name IN ('Ireland ', 'Iceland ', 'Denmark ');
4、顯示面積為 200,000 及 250,000 之間的國家名稱和該國面積。
SELECT name, area FROM world
WHERE area BETWEEN 200000 AND 250000;
5、找出以 Y 為開首的國家。
SELECT name FROM world
WHERE name LIKE 'Y%';
6、找出以 Y 為結尾的國家
SELECT name FROM world
WHERE name LIKE '%Y'
7、找出所有國家,其名字包括字母x。
SELECT name FROM world
WHERE name LIKE '%x%'
8、找出所有國家,其名字以 land 作結尾。
SELECT name FROM world
WHERE name LIKE '%land'
9、找出所有國家,其名字以 C 作開始,ia 作結尾
SELECT name FROM world
WHERE name LIKE 'c%ia'
10、找出所有國家,其名字包括字母oo。
SELECT name FROM world
WHERE name LIKE '%oo%'
11、找出所有國家,其名字包括三個或以上的a。
SELECT name FROM world
WHERE name LIKE '%a%a%a%'
12、找出所有國家,其名字以t作第二個字母。
SELECT name FROM world
WHERE name LIKE '_t%'
ORDER BY name
13、找出所有國家,其名字都有兩個字母 o,被另外兩個字母相隔着。
SELECT name FROM world
WHERE name LIKE '%o__o%'
14、找出所有國家,其名字都是 4 個字母的。
SELECT name FROM world
WHERE name LIKE '____'
15、顯示所有國家名字,其首都和國家名字是相同的。
SELECT name
FROM world
WHERE name = capital;
16、顯示所有國家名字,其首都是國家名字加上”City”。
SELECT name
FROM world
WHERE capital LIKE concat(name, ' city');
17、找出所有首都和其國家名字,而首都要有國家名字中出現。
select capital,name
from world
where capital like concat('%',name,'%')
这里考察了如何将字段与通配符联系起来,concat的用法
18、找出所有首都和其國家名字,而首都是國家名字的延伸。
你應顯示 Mexico City,因它比其國家名字 Mexico 長。
你不應顯示 Luxembourg,因它的首都和國家名相是相同的。
select name,capital
from world
where capital != name
and capital like concat('%',name,'%')
19、顯示國家名字,及其延伸詞,如首都是國家名字的延伸。
select name,replace(capital,name,'') as ext
from world
where capital like concat('%',name,'%')
and capital != name;
这里有一个很重要的点,使用replace函数来清楚数据中的某些值,在这里capital的数据比name的数据丰富,要从capital中删除name,对于单个已知数据可以用substr()函数解决,但是感觉replace更好用,使用空来替代要删除的位置。体现了从原句删除,和用空替代删除的两种思想。