天天看點

SQL練習一(Datawhale系列)SQL練習(一)

SQL練習(一)

說明:最近面試,深感sql方面需要強化訓練。恰巧,在機緣巧合的情況下(忘記是怎麼加入的),一個mysql訓練營,每天會釋出一定的任務,看起來還不錯的樣子。那,就一起參加一波呗。

任務與解答

項目一:查找重複的電子郵箱(難度:簡單)

建立 email表,并插入如下三行資料

+----+---------+
| Id | Email   |
+----+---------+
| 1  | [email protected] |
| 2  | [email protected] |
| 3  | [email protected] |
+----+---------+           

編寫一個 SQL 查詢,查找 email 表中所有重複的電子郵箱。

根據以上輸入,你的查詢應傳回以下結果:

+---------+
| Email   |
+---------+
| [email protected] |
+---------+           

說明:所有電子郵箱都是小寫字母。

答案:

建表:
CREATE TABLE email(id INT PRIMARY KEY,Email VARCHAR(20));
插入資料:
INSERT INTO email(id,Email) VALUES(1,'[email protected]'),(2,'[email protected]'),(3,'[email protected]'); 
查找:重複的電子郵箱
SELECT Email FROM email GROUP BY Email HAVING COUNT(id)>1;           

項目二:查找大國(難度:簡單)

建立如下 World 表

+------------+----------+---------+--------------+---------------+
| name       | continent| area    | population   | gdp           |
+------------+----------+---------+--------------+---------------+
| Afghanistan| Asia     | 652230  | 25500100     | 20343000      |
| Albania    | Europe   | 28748   | 2831741      | 12960000      |
| Algeria    | Africa   | 2381741 | 37100000     | 188681000     |
| Andorra    | Europe   | 468     | 78115        | 3712000       |
| Angola     | Africa   | 1246700 | 20609294     | 100990000     |
+------------+----------+---------+--------------+---------------+           

如果一個國家的面積超過300萬平方公裡,或者(人口超過2500萬并且gdp超過2000萬),那麼這個國家就是大國家。

編寫一個SQL查詢,輸出表中所有大國家的名稱、人口和面積。

例如,根據上表,我們應該輸出:

+--------------+-------------+--------------+
| name         | population  | area         |
+--------------+-------------+--------------+
| Afghanistan  | 25500100    | 652230       |
| Algeria      | 37100000    | 2381741      |
+--------------+-------------+--------------+           

解答

建表:
CREATE TABLE world(NAME VARCHAR(20),continent VARCHAR(20), AREA INT ,population INT,gdp INT );
插入資料:
INSERT INTO World
  VALUES('Afghanistan','Asia',652230,25500100,20343000),
        ('Albania','Europe',28748,2831741,12960000),
        ('Algeria','Africa',2381741,37100000,188681000),
        ('Andorra','Europe',468,78115,3712000),
        ('Angola','Africa',1246700,20609294,100990000);
查詢:
SELECT NAME,population,AREA FROM world WHERE AREA>3000000 OR (population>25000000 AND gdp>20000000);