SQL练习一(Datawhale系列)

简介: datawhale mysql练习系列

SQL练习(一)

说明:最近面试,深感sql方面需要强化训练。恰巧,在机缘巧合的情况下(忘记是怎么加入的),一个mysql训练营,每天会发布一定的任务,看起来还不错的样子。那,就一起参加一波呗。

任务与解答

项目一:查找重复的电子邮箱(难度:简单)

创建 email表,并插入如下三行数据

+----+---------+
| Id | Email   |
+----+---------+
| 1  | a@b.com |
| 2  | c@d.com |
| 3  | a@b.com |
+----+---------+

编写一个 SQL 查询,查找 email 表中所有重复的电子邮箱。
根据以上输入,你的查询应返回以下结果:

+---------+
| Email   |
+---------+
| a@b.com |
+---------+

说明:所有电子邮箱都是小写字母。

答案:

建表:
CREATE TABLE email(id INT PRIMARY KEY,Email VARCHAR(20));
插入数据:
INSERT INTO email(id,Email) VALUES(1,'a@b.com'),(2,'c@d.com'),(3,'a@b.com'); 
查找:重复的电子邮箱
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);
目录
相关文章
|
22天前
|
SQL Perl
PL/SQL经典练习
PL/SQL经典练习
13 0
|
4月前
|
SQL 分布式计算 数据挖掘
Hive SQL初级练习(30题)
Hive SQL初级练习(30题)
|
6月前
|
SQL 存储 Java
Mybatis实战练习四【单个条件(动态SQL)&添加数据】(下)
Mybatis实战练习四【单个条件(动态SQL)&添加数据】
|
6月前
|
SQL 存储 关系型数据库
【MYSQL高级】Mysql 表的七种连接方式【附带练习sql】
【MYSQL高级】Mysql 表的七种连接方式【附带练习sql】
91 0
|
6月前
|
SQL Java 数据库连接
Mybatis实战练习四【单个条件(动态SQL)&添加数据】(上)
Mybatis实战练习四【单个条件(动态SQL)&添加数据】
|
3月前
|
SQL
SQL语句多表查询练习
SQL语句多表查询练习
11 0
|
3月前
|
SQL 关系型数据库 MySQL
mysql查询语句练习总结(涵盖所有sql语法)
mysql查询语句练习总结(涵盖所有sql语法)
|
5月前
|
SQL 算法 JavaScript
在线就能用的 SQL 练习平台(附SQL学习文档)
在线就能用的 SQL 练习平台(附SQL学习文档)
131 0
|
9月前
|
SQL 数据挖掘 数据库
牛客网之SQL刷题练习——一个实用的网站
牛客网之SQL刷题练习——一个实用的网站
247 0
|
10月前
|
SQL 数据库
学通4中数据库SQL教程练习和答案
编写一个SQL语句,输出下面的结果