SQLZOO I - SELECT basics

Originally published on Medium

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

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

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

SELECT basics/zh

篇章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比想像中更簡單有趣,把主要的基本語法釐清,多練習靈活運用,相信大家能成為資料庫高手。

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

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

Site d'Outils propose une collection d'outils en ligne gratuits et faciles à utiliser, incluant calculatrice, convertisseur d'unités, liste de tâches, générateur de mots de passe, générateur de QR code, minuteur, chronomètre, minuteur pomodoro et horloge. Améliorez votre productivité et simplifiez vos tâches quotidiennes.

site d'outils · outils en ligne · outils gratuits · productivité · application web · utilitaire · outils numériques · multi-outil · outils internet