美文网首页
SELECT basics | SQLZOO刷题

SELECT basics | SQLZOO刷题

作者: 活用数据 | 来源:发表于2019-05-12 15:36 被阅读0次

    系列文章导航:

    本系列文章的主要目的在于记录本人的刷题过程,尽量在文章中展示本人所想到的答案,或者是别人的参考答案。

    题目来源:SQLZoo

    SELECT basics

    查询表格:



    表格说明:


    1.顯示德國 Germany 的人口

    SELECT population FROM world
      WHERE name = 'Germany'
    

    2.Per Capita GDP

    查詢面積為 5,000,000 以上平方公里的國家,對每個國家顯示她的名字和人均國內生產總(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可以进行范围检查,注意其范围是闭区间,比如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 為結尾的國家

    SELECT name FROM world
      WHERE name LIKE '%Y'
    

    3.找出所有國家,其名字包括字母x

    “Luxembourg 盧森堡”中有一個x字母,還有一個國家的名字中有x。列出這兩個國家。

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

    4.找出所有國家,其名字以 land 作結尾

    “Iceland 冰島”和“Switzerland 瑞士”的名字都是以”land”作結束的。還有其他嗎?

    SELECT name FROM world
      WHERE name LIKE '%land'
    

    5.找出所有國家,其名字以 C 作開始,ia 作結尾

    “Columbia 哥倫比亞”是以 C 作開始,ia 作結尾的。還有兩個國家相同。

    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。
    你可以用底線符_當作單一個字母的萬用字元。

    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()
    函数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, '_%')
    

    15.顯示國家名字,及其延伸詞,如首都是國家名字的延伸

    "Monaco-Ville"是合併國家名字 "Monaco" 和延伸詞"-Ville".

    【知识点】replace()
    REPLACE(f, s1, s2)将字符串f中的s1字符替换成s2字符,最后返回替换后的结果f。
    如, REPLACE('vessel','e','a') -> 'vassal'.

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

    相关文章

      网友评论

          本文标题:SELECT basics | SQLZOO刷题

          本文链接:https://www.haomeiwen.com/subject/rypcaqtx.html