SQL练习


1.這個例子顯示’France法國’的人口。字串應該在'單引號'中。

修改此例子,以顯示德國 Germany 的人口。

SELECT population FROM world
  WHERE name = 'Germany '

2.查詢顯示面積為 5,000,000 以上平方公里的國家,該國家的人口密度(population/area)。人口密度並不是 WORLD 表格中的欄,但我們可用公式(population/area)計算出來。

修改此例子,查詢面積為 5,000,000 以上平方公里的國家,對每個國家顯示她的名字和人均國內生產總值(gdp/population)。

SELECT `name`,gdp / population  FROM world 
WHERE  area > 5000000

3.檢查列表:單詞“IN”可以讓我們檢查一個項目是否在列表中。

此示例顯示了“Luxembourg 盧森堡”,“Mauritius 毛里求斯”和“Samoa 薩摩亞”的國家名稱和人口。

顯示“Ireland 愛爾蘭”,“Iceland 冰島”,“Denmark 丹麥”的國家名稱和人口。

SELECT
    `name`,
    population 
FROM
    world 
WHERE
    NAME IN ( 'Ireland', 'Iceland', 'Denmark' );

4.哪些國家是不是太小,又不是太大?

BETWEEN 允許範圍檢查 - 注意,這是包含性的。 此例子顯示面積為 250,000 及 300,000 之間的國家名稱和該國面積。修改此例子,以顯示面積為 200,000 及 250,000 之間的國家名稱和該國面積。

SELECT
    `name`,
    area 
FROM
    world 
WHERE
    area BETWEEN 200000 
    AND 250000

 5.你可以用WHERE name LIKE 'B%'來找出以 B 為開首的國家。

%是萬用字元,可以用代表任何字完。

找出以 Y 為開首的國家。

SELECT
    `name` 
FROM
    world 
WHERE
    `name` LIKE 'Y%'

6.找出以 Y 為結尾的國家。

SELECT
    `name` 
FROM
    world 
WHERE
    `name` LIKE '%Y'

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

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

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

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

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

SELECT
    `name` 
FROM
    world 
WHERE
    `name` LIKE '%land'

9.“Columbia 哥倫比亞”是以 C 作開始,ia 作結尾的。還有兩個國家相同。
出所有國家,其名字以 C 作開始,ia 作結尾。

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

10.“Greece 希臘”中有雙 e 字。哪個國家有雙 o 字呢?

找出所有國家,其名字包括字母oo。

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

11.“Bahamas 巴哈馬”中有三個 a,還有嗎?

找出所有國家,其名字包括三個或以上的a。

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

12.“India 印度”和”Angola 安哥拉”的第二個字母都是 n。你可以用底線符_當作單一個字母的萬用字元。

找出所有國家,其名字以t作第二個字母。

SELECT
    `name` 
FROM
    world 
WHERE
    `name` LIKE '_t%'

13.“Lesotho 賴索托”和”Moldova 摩爾多瓦”都有兩個字母 o,被另外兩個字母相隔着。

找出所有國家,其名字都有兩個字母 o,被另外兩個字母相隔着。

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

14.Cuba古巴”和”Togo 多哥”都是 4 個字母。

找出所有國家,其名字都是 4 個字母的

SELECT
    `name` 
FROM
    world 
WHERE
    `name` LIKE '____'

15.“Luxembourg 盧森堡”的首都 capital 都同樣叫“Luxembourg”。

顯示所有國家名字,其首都和國家名字是相同的。

SELECT
    `name` 
FROM
    world 
WHERE
    `name` = capital

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

顯示所有國家名字,其首都是國家名字加上”City”。

concat函數

SELECT
    `name` 
FROM
    world 
WHERE
    capital = concat(
        `name`,
        ' City' 
    )

17.找出所有首都和其國家名字,而首都要有國家名字中出現。

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

18.找出所有首都和其國家名字,而首都是國家名字的延伸。
你應顯示 Mexico City,因它比其國家名字 Mexico 長,你不應顯示 Luxembourg,因它的首都和國家名相是相同的。

SELECT
    `name`,
    capital 
FROM
    world 
WHERE
    capital LIKE concat( `name`, '%' ) 
    AND (capital != `name`)

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

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

你可以使用SQL函數 REPLACE 或 MID.

SELECT
    `name`,
    REPLACE ( capital, `name`, '' ) AS ext 
FROM
    world 
WHERE
    capital LIKE concat( `name`, '%' ) 
    AND (capital != `name`)
posted @ 2020-04-28 20:38  林澈  阅读(191)  评论(0)    收藏  举报