< SELECT names Language: English • 中文 namecontinent Afghanistan Asia Albania Europe Algeria Africa Andorra Europe Angola Africa .... name:國家名稱continen ...
< SELECT names
Language: | English • 中文 |
---|
name | continent |
---|---|
Afghanistan | Asia |
Albania | Europe |
Algeria | Africa |
Andorra | Europe |
Angola | Africa |
.... |
name:國家名稱
continent:洲份
Pattern Matching Strings
此教程使用LIKE
運運算元來檢查國家名字,我們會在world
表格中運用SELECT
語句:
1.
你可以用WHERE name LIKE 'B%'
來找出以B為開首的國家。
%是萬用字元,可以用代表任何字完。
找出以Y 為開首的國家。
select name from world where name like 'Y%';
2.
找出以Y 為結尾的國家。
select name from world where name like '%Y';
3.
“Luxembourg 盧森堡”中有一個x字母,還有一個國家的名字中有x。列出這兩個國家。
找出所有國家,其名字包括字母x。
select name from world where name like '%x%';
4.
“Iceland 冰島”和“Switzerland 瑞士”的名字都是以”land”作結束的。還有其他嗎?
找出所有國家,其名字以land 作結尾。
select name from world where name like '%land'
5.
“Columbia 哥倫比亞”是以C 作開始,ia 作結尾的。還有兩個國家相同。
找出所有國家,其名字以C 作開始,ia 作結尾。
select name from world where name like 'C%' and name like '%ia';
6.
“Greece 希臘”中有雙e 字。哪個國家有雙o 字呢?
找出所有國家,其名字包括字母oo。
select name from world where name like '%oo%';
7.
“Bahamas 巴哈馬”中有三個a,還有嗎?
找出所有國家,其名字包括三個或以上的a。
SELECT name FROM world WHERE name LIKE '%a%a%a%'
8.
“India印度”和”Angola安哥拉”的第二個字母都是n。
你可以用底線符_
當作單一個字母的萬用字元。
SELECT name FROM world
WHERE name LIKE '_n%'
ORDER BY name
找出所有國家,其名字以t作第二個字母。
SELECT name FROM world WHERE name LIKE '_t%'
9.
“Lesotho 賴索托”和”Moldova 摩爾多瓦”都有兩個字母o,被另外兩個字母相隔著。
找出所有國家,其名字都有兩個字母o,被另外兩個字母相隔著。
SELECT name FROM world WHERE name LIKE '%o__o%'
10.
“Cuba古巴”和”Togo 多哥”都是4 個字母。
找出所有國家,其名字都是4 個字母的。
SELECT name FROM world WHERE LENGTH(name)=4
更困難的問題
如你覺得以上題目太容易了,非常好。Well done for getting this far. 下麵的題目更困難,更有挑戰性!
11.“Luxembourg 盧森堡”的首都capital 都同樣叫“Luxembourg”。
顯示所有國家名字,其首都和國家名字是相同的。
SELECT name FROM world WHERE name=concat(capital,'');
12.
“Mexico 墨西哥”的首都是”Mexico City”。
顯示所有國家名字,其首都是國家名字加上”City”。
concat函數SELECT name FROM world WHERE capital=concat(name,' City');
13.
找出所有首都和其國家名字,而首都要有國家名字中出現。
SELECT capital,name FROM world WHERE capital like concat('%',name,'%');
14.
找出所有首都和其國家名字,而首都是國家名字的延伸。
你應顯示Mexico City,因它比其國家名字Mexico長。
你不應顯示Luxembourg,因它的首都和國家名相是相同的。
SELECT name,capital FROM world WHERE capital like concat('%',name,'%') and LENGTH(capital)<>LENGTH(name);
15.
"Monaco-Ville"是合併國家名字"Monaco" 和延伸詞"-Ville".
顯示國家名字,及其延伸詞,如首都是國家名字的延伸。
你可以使用SQL函數REPLACE或MID.
select name,replace(capital, name, '') from world where capital Like concat(name,'%_')