• SQLZOO:SELECT from WORLD


    数据表:world

    namecontinentareapopulationgdp
    AfghanistanAsia6522302550010020343000000
    AlbaniaEurope28748283174112960000000
    AlgeriaAfrica238174137100000188681000000
    AndorraEurope468781153712000000
    AngolaAfrica124670020609294100990000000
    ...

    Q1 Introduction

    Read the notes about this table. Observe the result of running this SQL command to show the name, continent and population of all countries.

    SELECT name, continent, population FROM world


    Q2 Large Countries

    How to use WHERE to filter records. Show the name for the countries that have a population of at least 200 million. 

    1. SELECT name FROM world
    2. WHERE population >=200000000
    语法结构

    SELECT + FROM + WHERE + GROUP BY + HAVING + ORDER BY + LIMIT


    Q3 Per capita GDP

    Give the name and the per capita GDP for those countries with a population of at least 200 million

    1. SELECT name,gdp/population FROM world
    2. WHERE population >=200000000

    Q4 South America In millions

    Show the name and population in millions for the countries of the continent 'South America'. Divide the population by 1000000 to get population in millions

    1. SELECT name,population/1000000 FROM world
    2. WHERE continent = 'South America'

    Q5 France, Germany, Italy

    Show the name and population for France, Germany, Italy

    1. SELECT name,population FROM world
    2. WHERE name='France' OR name='Germany' OR name='Italy'
    AND OR

    AND:两条都符合才显示

    OR:任意符合一条就显示

    AND 优先级大于 OR ,可以使用括号来结合使用 AND OR 

    1. SELECT name,population FROM world
    2. WHERE name IN ('France','Germany','Italy')
    IN

    允许在 WHERE 子句中规定多个值

    SQL IN 语法:

    SELECT column1, column2, ...
    FROM table_name
    WHERE column IN (value1, value2, ...);

    Q6 United

    Show the countries which have a name that includes the word 'United'

    1. SELECT name FROM world
    2. WHERE name LIKE '%United%'
    模糊查询 LIKE

    % :表示任意 0 或多个字符。可匹配任意类型和长度的字符,若是中文使用%%表示

    _ : 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句

    Q7 Two ways to be big

    Two ways to be big: A country is big if it has an area of more than 3 million sq km or it has a population of more than 250 million.

    Show the countries that are big by area or big by population. Show name, population and area.

    1. SELECT name,population,area FROM world
    2. WHERE area >= 3000000 OR population >= 250000000

    Q8 One or the other (but not both)

    Exclusive OR (XOR). Show the countries that are big by area (more than 3 million) or big by population (more than 250 million) but not both. Show name, population and area.

    1. SELECT name,population,area FROM world
    2. WHERE area > 3000000 XOR population > 250000000

    相当于: 

    1. SELECT name,population,area FROM world WHERE
    2. area > 3000000 AND population <= 250000000
    3. OR
    4. population > 250000000 AND area <= 3000000
    XOR 异或

    获得仅满足一条的数据

    如果A为真,则查出不满足B条件数据;如果A为假,则查出满足B条件数据

    Q9 Rounding

    Show the name and population in millions and the GDP in billions for the countries of the continent 'South America'. Use the ROUND function to show the values to two decimal places.

    1. SELECT name,ROUND(population/1000000,2),ROUND(gdp/1000000000,2) FROM world
    2. WHERE continent = 'South America'
    ROUND(x,n)

    x保留n位小数,n可为负数

    Q10 Trillion dollar economies

    Show the name and per-capita GDP for those countries with a GDP of at least one trillion (1000000000000; that is 12 zeros). Round this value to the nearest 1000.

    1. SELECT name,ROUND(gdp/population/1000)*1000 FROM world
    2. WHERE gdp>=1000000000000
    1. SELECT name,ROUND(gdp/population,-3) FROM world
    2. WHERE gdp>=1000000000000;

    Q11 Name and capital have the same length

    Show the name and capital where the name and the capital have the same number of characters.

    1. SELECT name,capital FROM world
    2. WHERE LENGTH(name)=LENGTH(capital)
    LENGTH

    You can use the LENGTH function to find the number of characters in a string

    Q12 Matching name and capital

    Show the name and the capital where the first letters of each match. Don't include countries where the name and the capital are the same word.

    1. SELECT name,capital FROM world
    2. WHERE LEFT(name,1)=LEFT(capital,1)
    3. AND name<>capital
    LEFT(x,n)

    x保留前n位字符

    < >

    You can use <> as the NOT EQUALS operator

    Q13 All the vowels

    Find the country that has all the vowels (a e i o u) and no spaces in its name.

    1. SELECT name FROM world
    2. WHERE name LIKE '%a%'
    3. AND name LIKE '%e%'
    4. AND name LIKE '%i%'
    5. AND name LIKE '%o%'
    6. AND name LIKE '%u%'
    7. AND name NOT LIKE '% %'

  • 相关阅读:
    简单网页制作代码 HTML+CSS+JavaScript香港美食(8页)
    Java实验报告(三)
    c++拷贝对象时的优化问题
    【干货】RPA+AI入门必须知道的39个名词
    MySQL 一键安装 (支持8.0.16-8.0.30)
    算法训练营day46|动态规划 part08:完全背包 (LeetCode 139. 单词拆分、多重背包理论基础)
    移动WEB开发之rem布局--rem适配方案
    【Qt】modbus之串口模式写操作
    冷启动问题分析与解决办法
    软考高级软件架构师论文——论软件架构评估
  • 原文地址:https://blog.csdn.net/He_jinian/article/details/138484895