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 函數來顯示的數值到小數點後兩位。

對於南美顯示以百萬計人口,以十億計2位小數GDP。

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.

Show the name - but substitute Australasia for Oceania - for countries beginning with N.

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
Show the name, the original continent and the new continent of all countries.

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 人口. 在這些洲份中,列出國家名字namecontinent 洲份和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

arrow
arrow
    文章標籤
    SQL SQL ZOO
    全站熱搜
    創作者介紹
    創作者 Alyssa 的頭像
    Alyssa

    Hi~ I am the Alyssa

    Alyssa 發表在 痞客邦 留言(0) 人氣()