系列文章導(dǎo)航:
本系列文章的主要目的在于記錄本人的刷題過程,盡量在文章中展示本人所想到的答案,或者是別人的參考答案神得。
題目來源:SQLZoo
SELECT basics
查詢表格:
表格說明:
1.顯示德國 Germany 的人口
SELECT population FROM world
WHERE name = 'Germany'
2.Per Capita GDP
查詢面積為 5,000,000 以上平方公里的國家,對每個國家顯示她的名字和人均國內(nèi)生產(chǎn)總(gdp/population)吭服。
SELECT name, gdp/population FROM world
WHERE area > 5000000
3.Scandinavia
顯示“Ireland 愛爾蘭”,“Iceland 冰島”,“Denmark 丹麥”的國家名稱和人口嘶卧。
【知識點】檢查列表:
IN
可以讓我們檢查一個項目是否在列表中假勿。
SELECT name, population FROM world
WHERE name IN ('Ireland', 'Iceland', 'Denmark');
4.Just the right size
顯示面積為 200,000 及 250,000 之間的國家名稱和該國面積忌愚。
【知識點】范圍檢查:
BETWEEN
可以進(jìn)行范圍檢查筛婉,注意其范圍是閉區(qū)間藻懒,比如BETWEEN 20 AND 25
=[20,25]剔猿。
SELECT name, area FROM world
WHERE area BETWEEN 200000 AND 250000
SELECT names
查詢表格:
表格說明:
1.找出以 Y 為開首的國家
SELECT name FROM world
WHERE name LIKE 'Y%'
2.找出以 Y 為結(jié)尾的國家
SELECT name FROM world
WHERE name LIKE '%Y'
3.找出所有國家,其名字包括字母x
“Luxembourg 盧森堡”中有一個x字母,還有一個國家的名字中有x。列出這兩個國家嬉荆。
SELECT name FROM world
WHERE name LIKE '%x%'
4.找出所有國家,其名字以 land 作結(jié)尾
“Iceland 冰島”和“Switzerland 瑞士”的名字都是以”land”作結(jié)束的归敬。還有其他嗎?
SELECT name FROM world
WHERE name LIKE '%land'
5.找出所有國家,其名字以 C 作開始,ia 作結(jié)尾
“Columbia 哥倫比亞”是以 C 作開始,ia 作結(jié)尾的。還有兩個國家相同鄙早。
SELECT name FROM world
WHERE name LIKE 'C%ia'
6.找出所有國家,其名字包括字母oo
“Greece 希臘”中有雙 e 字汪茧。哪個國家有雙 o 字呢?
SELECT name FROM world
WHERE name LIKE '%oo%'
7.找出所有國家,其名字包括三個或以上的a
“Bahamas 巴哈馬”中有三個 a,還有嗎?
SELECT name FROM world
WHERE name LIKE '%a%a%a%'
8.找出所有國家,其名字以t作第二個字母
“India 印度”和”Angola 安哥拉”的第二個字母都是 n。
你可以用底線符_當(dāng)作單一個字母的萬用字元限番。
SELECT name FROM world
WHERE name LIKE '_t%'
ORDER BY name
9.找出所有國家,其名字都有兩個字母 o,被另外兩個字母相隔著
“Lesotho 賴索托”和”Moldova 摩爾多瓦”都有兩個字母 o,被另外兩個字母相隔著舱污。
SELECT name FROM world
WHERE name LIKE '%o__o%'
10.找出所有國家,其名字都是 4 個字母的
“Cuba古巴”和”Togo 多哥”都是 4 個字母。
SELECT name FROM world
WHERE name LIKE '____'
11.顯示所有國家名字,其首都和國家名字是相同的
“Luxembourg 盧森堡”的首都 capital 都同樣叫“Luxembourg”弥虐。
SELECT name
FROM world
WHERE name = capital
12.顯示所有國家名字,其首都是國家名字加上”City”
“Mexico 墨西哥”的首都是”Mexico City”扩灯。
【知識點】
concat()
函數(shù)concat
可以用來合并兩個或以上的字符串。
SELECT name
FROM world
WHERE capital = concat(name, ' City')
13.找出所有首都和其國家名字,而首都要有國家名字中出現(xiàn)
SELECT capital, name
FROM world
WHERE capital LIKE concat('%', name, '%')
14.找出所有首都和其國家名字,而首都是國家名字的延伸
你應(yīng)顯示 Mexico City,因它比其國家名字 Mexico 長躯舔。
你不應(yīng)顯示 Luxembourg,因它的首都和國家名相是相同的驴剔。
SELECT name, capital
FROM world
WHERE capital LIKE concat('%', name, '_%')
15.顯示國家名字,及其延伸詞粥庄,如首都是國家名字的延伸
"Monaco-Ville"是合併國家名字 "Monaco" 和延伸詞"-Ville".
【知識點】
replace()
REPLACE(f, s1, s2)
將字符串f中的s1字符替換成s2字符,最后返回替換后的結(jié)果f豺妓。
如惜互,REPLACE('vessel','e','a')
-> 'vassal'.
SELECT name, replace(capital, name, '')
FROM world
WHERE capital LIKE concat(name, '_%')