2021-03-24

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更好用,使用空来替代要删除的位置。体现了从原句删除,和用空替代删除的两种思想。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值