SELECT basics
1. 修改此例子,以顯示德國 Germany 的人口。
SELECT population FROM world
WHERE name = 'Germany'
2. 修改此例子,查詢面積為 5,000,000 以上平方公里的國家,對每個國家顯示她的名字和人均國內生產總值(gdp/population
)。
SELECT name, gdp/population FROM world
WHERE area > 5000000
3. 顯示“Ireland 愛爾蘭”,“Iceland 冰島”,“Denmark 丹麥”的國家名稱和人口。
SELECT name, population FROM world
WHERE name IN ('Ireland', 'Iceland', 'Denmark')
4. 修改此例子,以顯示面積為 200,000 及 250,000 之間的國家名稱和該國面積。
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 為結尾的國家。
SELECT name FROM world
WHERE name LIKE '%Y'
3. 找出所有國家,其名字包括字母x。
SELECT name FROM world
WHERE name LIKE '%x%'
4. 找出所有國家,其名字以 land 作結尾。
SELECT name FROM world
WHERE name LIKE '%land'
5. 找出所有國家,其名字以 C 作開始,ia 作結尾。
SELECT name FROM world
WHERE name LIKE 'C%ia'
6. 找出所有國家,其名字包括字母oo。
SELECT name FROM world
WHERE name LIKE '%oo%'
7. 找出所有國家,其名字包括三個或以上的a。
SELECT name FROM world
WHERE name LIKE '%a%a%a%'
8. 找出所有國家,其名字以t作第二個字母。
SELECT name FROM world
WHERE name LIKE '_t%'
ORDER BY name
9. 找出所有國家,其名字都有兩個字母 o,被另外兩個字母相隔着。
SELECT name FROM world
WHERE name LIKE '%o__o%'
10. 找出所有國家,其名字都是 4 個字母的。
SELECT name FROM world
WHERE name LIKE '____'
<or>
SELECT name FROM world
WHERE len(name)< 5
11. 顯示所有國家名字,其首都和國家名字是相同的。
SELECT name
FROM world
WHERE name = capital
12. 顯示所有國家名字,其首都是國家名字加上”City”。
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, '_%')
15. 顯示國家名字,及其延伸詞,如首都是國家名字的延伸。
Select name, replace(capital, name, '') as extend, capital
From world
Where capital like concat(name,'_%')
***replace的name(column)用空字串代替
SELECT Quiz
3 5 5 3 3 3 3
SELECT from WORLD Tutorial
1. 閱讀此表的注意事項觀察運行一個簡單的SQL命令的結果。
SELECT name, continent, population FROM world
2. 如何使用WHERE來篩選記錄。 顯示具有至少2億人口的國家名稱。 2億是200000000,有八個零。
SELECT name FROM world
WHERE population>200000000
3. 找出有至少200百萬(2億)人口的國家名稱,及人均國內生產總值。
Select name, gdp/population as GDP
From world
Where population > 200000000
4. 顯示'South America'南美洲大陸的國家名字和以百萬為單位人口數。 將人口population 除以一百萬(1000000)得可得到以百萬為單位人口數。
Select name, population/1000000 as 'popultion/ 1m'
From world
Where continent='South America'
5. 顯示法國,德國,意大利(France, Germany, Italy)的國家名稱和人口。
Select name, population
From world
Where name in ('France', 'Germany', 'Italy')
6. 顯示包含單詞“United”為名稱的國家。
Select name
From world
Where name like 'United%'
7. 成為大國的兩種方式:如果它有3百萬平方公里以上的面積,或擁有250百萬(2.5億)以上人口。
展示大國的名稱,人口和面積。
Select name, population, area
From world
Where area>3000000 or population >250000000
8. 美國、印度和中國(USA, India, China)是人口又大,同時面積又大的國家。排除這些國家。
顯示以人口或面積為大國的國家,但不能同時兩者。顯示國家名稱,人口和面積。
Select name, population, area
From world
Where (area>3000000 and population <250000000) or (area<3000000 and population >250000000)
9. 除以為1000000(6個零)是以百萬計。除以1000000000(9個零)是以十億計。使用 ROUND 函數來顯示的數值到小數點後兩位。
Select name, round(population/1000000,2) as population, round(gdp/1000000000,2) as GDP
From world where continent='South America'
10. 顯示國家有至少一個萬億元國內生產總值(萬億,也就是12個零)的人均國內生產總值。四捨五入這個值到最接近1000。
顯示萬億元國家的人均國內生產總值,四捨五入到最近的$ 1000。
Select name, round(gdp/population, -3)
From world
Where gdp>1000000000000
11. The CASE statement shown is used to substitute North America for Caribbean in the third column.
SELECT name,
CASE WHEN continent='Oceania' THEN 'Australasia'
ELSE continent END
FROM world
WHERE name LIKE 'N%'
12. Show the name and the continent - but substitute Eurasia for Europe and Asia; substitute America - for each country in North America or South America or Caribbean. Show countries beginning with A or B
Select name,
Case when continent in ('Europe', 'Asia') Then 'Eurasia'
When continent in ('North America', 'South America', 'Caribbean') Then 'America'
Else continent end
From world
Where name like 'A%' or name like 'B%'
13. Put the continents right...
- Oceania becomes Australasia
- Countries in Eurasia and Turkey go to Europe/Asia
- Caribbean islands starting with 'B' go to North America, other Caribbean islands go to South America
Select name, continent, case
When continent='Oceania' Then 'Australasia'
When continent in ('Eurasia', 'Trukey') Then 'Europe/Asia'
When continent='Caribbean' and name like ('B%') Then 'North America'
When continent='Caribbean' Then 'South America'
Else continent end
From world
測驗word表格:BBC Quiz
5 4 2 4 2 4 3
SELECT within SELECT Turtorial
1. 列出每個國家的名字 name,當中人口 population 是高於俄羅斯'Russia'的人口。
Select name From world
where population> (Select population from world where name='Russia')
2. 列出歐州每國家的人均GDP,當中人均GDP要高於英國'United Kingdom'的數值。
select name from world
where continent='Europe' and gdp/population >
(select gdp/population from world where name='United Kingdom')
3. 在阿根廷Argentina 及 澳大利亞 Australia所在的洲份中,列出當中的國家名字 name 及洲分 continent 。按國字名字順序排序
select name, continent from world
where continent in (select continent from world where name in ('Argentina', 'Australia'))
order by name
4. 哪一個國家的人口比加拿大Canada的多,但比波蘭Poland的少?列出國家名字name和人口population 。
select name, population from world
where population > (select population from world where name='Canada')
and population < (select population from world where name='Poland')
5. Germany德國(人口8000萬),在Europe歐洲國家的人口最多。Austria奧地利(人口850萬)擁有德國總人口的11%。
顯示歐洲的國家名稱name和每個國家的人口population。以德國的人口的百分比作人口顯示。
select name, concat(round((population/ (select population from world where name= 'Germany')*100),0),'%')
from world where continent='Europe'
6. 哪些國家的GDP比Europe歐洲的全部國家都要高呢? [只需列出 name 。] (有些國家的記錄中,GDP是NULL,沒有填入資料的。)
select name from world
where gdp> all(select gdp from world where continent='Europe' and gdp> 0)
7. 在每一個州中找出最大面積的國家,列出洲份 continent, 國家名字 name 及面積 area。 (有些國家的記錄中,AREA是NULL,沒有填入資料的。)
SELECT continent, name, area FROM world x
WHERE area>= ALL
(SELECT area FROM world y
WHERE y.continent=x.continent
AND area>0)
8. 列出洲份名稱,和每個洲份中國家名字按子母順序是排首位的國家名。(即每洲只有列一國)
select continent, name from world x
where name<=all (select name from world y where x.continent=y.continent)
order by name
9. 找出洲份,當中全部國家都有少於或等於 25000000 人口. 在這些洲份中,列出國家名字name,continent 洲份和population人口。
select name, continent, population from world x
where 25000000 >= all (select population from world y where x.continent=y.continent)
10. 有些國家的人口是同洲份的所有其他國的3倍或以上。列出 國家名字name 和 洲份 continent。
select name, continent from world x
where population/3 >= all(select population from world y where x.continent=y.continent and population >0 and x.name<>y.name)
Nested SELECT Quiz
3 2 1 4 2 2 2
SUM and COUNT
1. 展示世界的總人口。
SELECT sum(population)
FROM world
2. 列出所有的洲份, 每個只有一次。
select distinct continent
from world
3. 找出非洲(Africa)的GDP總和。
select sum(gdp)
from world
where continent='Africa'
4. 有多少個國家具有至少百萬(1000000)的面積。
select count(name)
from world
where area>=1000000
5. ('France','Germany','Spain')(“法國”,“德國”,“西班牙”)的總人口是多少?
select sum(population)
from world
where name in ('France', 'Germany', 'Spain')
6. 對於每一個洲份,顯示洲份和國家的數量。
select continent, count(name)
from world
group by continent
7. 對於每一個洲份,顯示洲份和至少有1000萬人(10,000,000)口國家的數目。
select continent, count(name)
from world
where population> 10000000
group by continent
8. 列出有至少100百萬(1億)(100,000,000)人口的洲份。
select continent
from world
group by continent
having sum(population)> 100000000
SUM and COUNT Quiz
3 1 4 5 2 5 4 4
留言列表