SQLZOO 1.SELECT-name

209 阅读3分钟

SELECT name

world
namecontinent
AfghanistanAsia
AlbaniaEurope
AlgeriaAfrica
AndorraEurope
AngolaAfrica
....

1.

你可以用WHERE name LIKE 'B%'來找出以 B 为开头的国家。

%是一个通配符,它可以匹配任何字符

找出以 Y 为开头的国家。

SELECT name FROM world
  WHERE name LIKE 'Y%'

Correct answer

name
Yemen

2.

找出以y结尾的国家

SELECT name FROM world
  WHERE name LIKE '%y'

Correct answer

name
Turkey
Germany
Hungary
Italy
Norway
Vatican City
Paraguay
Uruguay

3.

Luxembourg 有一个 x ,其他国家也是如此。列出它们两者。

找到包含字母x的国家

SELECT name FROM world
  WHERE name LIKE '%x%'

Correct answer

name
Luxembourg
Mexico

4.

Iceland, Switzerland 以 land 结尾, 还有其他国家吗?

找出那些以 land 结尾的国家

SELECT name FROM world
  WHERE name LIKE '%land'

Correct answer

name
Swaziland
Thailand
Finland
Iceland
Ireland
Poland
Switzerland
New Zealand

5.

Columbia 以C开头,ia结尾,还有两个这样的。

找出以C开头以ia结尾的国家

SELECT name FROM world
  WHERE name LIKE 'C%ia'

Correct answer

name
Cambodia
Colombia
Croatia

6.

Greece 有两个e,谁有两个o?

找出名字中有oo的国家

SELECT name FROM world
  WHERE name LIKE '%oo%'

Correct answer

name
Cameroon

7.

Bahamas 有三个a,还有谁?

找出名字中有三个或三个以上a的国家

SELECT name FROM world
  WHERE name LIKE '%a%a%a%'

Correct answer

name
Central African Republic
Equatorial Guinea
Madagascar
Mauritania
Tanzania
Afghanistan
Azerbaijan
Malaysia
Saudi Arabia
United Arab Emirates
Antigua and Barbuda
Bahamas
Jamaica
Trinidad and Tobago
Albania
Bosnia and Herzegovina
Kazakhstan
Canada
Guatemala
Nicaragua
Panama
Australia
Marshall Islands
Micronesia, Federated States of
Papua New Guinea
Paraguay
Saint Vincent and the Grenadines

8.

India 和Angola 的第二个字母是n。您可以使用下划线_作为单个字符通配符。

找出第二个字符是“t”的国家。

SELECT name FROM world
 WHERE name LIKE '_t%'

Correct answer

name
Ethiopia
Italy

9.

Lesotho 和 Moldova 都有两个o字符,由另外两个字符分隔。

找出有两个“o”字符被另外两个字符隔开的国家。

SELECT name FROM world
 WHERE name LIKE '%o__o%'

Correct answer

name
Congo, Democratic Republic of
Congo, Republic of
Lesotho
Morocco
Sao Tomé and Príncipe
Mongolia
Moldova

10.

Cuba 和 Togo 都是四个字母。

找到只有四个字母的国家。

SELECT name FROM world
 WHERE name LIKE '____'

Correct answer

name
Chad
Mali
Togo
Iran
Iraq
Laos
Oman
Cuba
Fiji
Peru

更困難的問題

11.

Luxembourg ”的首都都同样叫“ Luxembourg ”。

显示所有国家名称,其首都和国家名称是相同的国家。

SELECT name
  FROM world
 WHERE name LIKE capital

Correct answer

name
Djibouti
Luxembourg
San Marino
Singapore

12.

“Mexico 墨西哥”的首都是“ Mexico City ”。

显示所有国家名字,其首都是国家名字加上“ City ”。

SELECT name
  FROM world
 WHERE capital LIKE '%city'

Correct answer

name
Guatemala
Kuwait
Mexico
Panama

13.

找到首都包含国家名称的国家

SELECT capital,name
  FROM world
 WHERE capital LIKE concat('%',name,'%')

Correct answer

capitalname
Andorra la VellaAndorra
DjiboutiDjibouti
Guatemala CityGuatemala
Kuwait CityKuwait
LuxembourgLuxembourg
Mexico CityMexico
Monaco-VilleMonaco
Panama CityPanama
San MarinoSan Marino
SingaporeSingapore

14.

找出首都是国家名称的延伸的名称的国家。

你应该把 Mexico City 包括在内,因为它比 Mexico 长。你不应该把 Luxembourg 包括在内,因为它首都和国家名称一样。

SELECT name,capital
  FROM world
 WHERE capital LIKE concat(name,'%') and capital not like name

Correct answer

namecapital
AndorraAndorra la Vella
GuatemalaGuatemala City
KuwaitKuwait City
MexicoMexico City
MonacoMonaco-Ville
PanamaPanama City

15.

显示首都包含国家名称并存在拓展名的国家,并单独显示拓展名

Monaco 的首都是 Monaco-Ville ,扩展名为**-Ville**。

SELECT name,replace(capital,name,'') as ext
  FROM world
 WHERE capital LIKE concat(name,'%') and capital not like name

Correct answer

nameext
Andorrala Vella
GuatemalaCity
KuwaitCity
MexicoCity
Monaco-Ville
PanamaCity