SQLZOO I - SELECT basics

一枝莉莉
5 min readAug 26, 2019

--

SQLZOO 是個免費在線學習 SQL的網站資源,有提供繁體中文版本。

採互動式教學,可在上面運行 SQL執行查看,更快的掌握 SQL技能。

內文主要為記錄學習歷程、解答整理。第一次寫文,請多擔待囉( ͡⚆ ͜ʖ ͡⚆)

篇章I - SELECT basics

主要使用SELECT語句與 world Table。

world Table 內含 name:國家名, continent:洲, area:面積, population:人口, gdp:國內生產總值

Q1.顯示德國 Germany 的人口。

SELECT population FROM world
WHERE name = ‘Germany’;

Q2. 查詢面積為 5,000,000 以上平方公里的國家,對每個國家顯示其名字和人均國內生產總值(GDP/population)

SELECT name, gdp/population FROM world
WHERE area >= 5000000;

Q3. 顯示“Ireland愛爾蘭”,“Iceland冰島”,“Denmark丹麥”的國名和人口。

SELECT name, population FROM world
WHERE name IN (‘Ireland’, ‘Iceland’, ‘Denmark’);

Q4. 顯示面積為 200,000 及 250,000 之間的國家名稱和該國面積。

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

接著進入進階的 SELECT names 教程,一樣使用 world Table。

https://sqlzoo.net/wiki/SELECT_names/zh

Q1. 找出以 Y 為開首的國家。

SELECT name FROM world
WHERE name LIKE ‘Y%’;

Q2. 找出以 Y 為結尾的國家。

SELECT name FROM world
WHERE name LIKE ‘%y’;

Q3. 找出所有國家,其名字包括字母x。

SELECT name FROM world
WHERE name LIKE ‘%x%’;

Q4. 找出所有國家,其名字以 land 作結尾。

SELECT name FROM world
WHERE name LIKE ‘%land’;

Q5. 找出所有國家,其名字以 C 作開始,ia 作結尾。

SELECT name FROM world
WHERE name LIKE ‘C%ia’;

Q6. 找出所有國家,其名字包括字母oo。

SELECT name FROM world
WHERE name LIKE ‘%oo%’;

Q7. 找出所有國家,其名字包括三個或以上的a。

SELECT name FROM world
WHERE name LIKE ‘%a%a%a%’;

Q8. 找出所有國家,其名字以t作第二個字母。

SELECT name FROM world
WHERE name LIKE ‘_t%’
ORDER BY name;

Q9. 找出所有國家,其名字都有兩個字母 o,被另外兩個字母相隔着。

SELECT name FROM world
WHERE name LIKE ‘%o__o%’;

Q10. 找出所有國家,其名字都是 4 個字母的。

SELECT name FROM world
WHERE name LIKE ‘____’;

Harder Questions Below (More challenging)

Q11. 顯示所有國家名字,其首都和國家名字是相同的。

SELECT name FROM world
WHERE name = capital;

Q12. 顯示所有國家名字,其首都是國家名字加上”City”。

SELECT name FROM world
WHERE capital LIKE CONCAT(name, ‘ City’);

Q13. 找出所有首都和其國家名字,而首都要有國家名字中出現。

WAY1:

SELECT capital, name FROM world
WHERE capital LIKE CONCAT(name, ‘%’);

WAY2:

SELECT capital, name FROM world
WHERE LOCATE (name, capital);

Q14. 找出所有首都和其國家名字,而首都是國家名字的延伸。
應顯示 Mexico City, 因它比其國名 “Mexico” 長。
不應顯示 Luxembourg, 因它的首都和國名是相同的。

SELECT name, capital FROM world
WHERE capital LIKE CONCAT(name, ‘_%’);

Q15. 顯示國家名字, 及其延伸詞, 如首都是國家名字的延伸。 “Monaco-Ville”是合併國家名字 “Monaco” 和延伸詞 ”-Ville”.

SELECT name, REPLACE(capital, name, ‘’) FROM world
WHERE capital LIKE CONCAT(name, ‘_%’);

心得

正透過SQLZOO線上資源自學中。SQL比想像中更簡單有趣,把主要的基本語法釐清,多練習靈活運用,相信大家能成為資料庫高手。

希望有幫助到也正在學習路上的你

歡迎任何對文章的建議,如果喜歡也可以幫我拍手鼓勵!

--

--

一枝莉莉
一枝莉莉

Written by 一枝莉莉

Product Manager | 喜歡發現生活中的樂趣 | 左撇子 | 平時熱衷於觀察社會及研究 UI /UX 設計 | 愛上旅行 / 做甜點 / 影樂欣賞 / 瑜珈。

No responses yet