【MySQL基础打卡(一)】查询语句项目作业


对于安装MySQL比较恐惧,所以想在虚拟机上配置数据库,不过到现在也没有配置好。。。所以这次就先在线进行数据库操作了。下次一定配置完毕!

1.查找email表中重复的电子邮箱

1.1 创建email数据表

创建email数据表,并依次插入三条数据:

CREATE TABLE email (
ID INT NOT NULL PRIMARY KEY,
Email VARCHAR(255)
);

INSERT INTO email VALUES('1','a@b.com');
INSERT INTO email VALUES('2','c@d.com');
INSERT INTO email VALUES('3','a@b.com');

查看创建的email数据表:

SELECT * FROM email

结果如下图所示:
在这里插入图片描述

1.2 找出重复Email

解题思路:题目要求找出重复的Email字段。首先要将Email字段进行分组(GROUP BY),然后利用HAVING对分组后的数据进行筛选(Email计数>1),然后对于这个子表进行查询即可

解题关键:having与group by联合使用,用于分组后的筛选

语句如下:

SELECT * FROM email 
WHERE 
Email IN (SELECT Email FROM email GROUP BY Email HAVING COUNT(Email)>1)

结果如下:
在这里插入图片描述

2.查找大国家

2.1 创建数据表

创建World数据表,并依次插入数据:

CREATE TABLE World (
name VARCHAR(50) NOT NULL,
continent VARCHAR(50) NOT NULL,
area INT NOT NULL,
population INT NOT NULL,
gdp INT NOT NULL
);

INSERT INTO World
  VALUES('Afghanistan','Asia',652230,25500100,20343000);
INSERT INTO World 
  VALUES('Albania','Europe',28748,2831741,12960000);
INSERT INTO World 
  VALUES('Algeria','Africa',2381741,37100000,188681000);
INSERT INTO World
  VALUES('Andorra','Europe',468,78115,3712000);
INSERT INTO World
  VALUES('Angola','Africa',1246700,20609294,100990000);

查看创建的email数据表:

SELECT * FROM World

结果如下:
在这里插入图片描述

2.2 查找大国家

大国家的标准:
面积超过300万平方公里,或者
(人口超过2500万并且gdp超过2000万)

查询语句:

SELECT * FROM World 
WHERE 
(area>2000000 OR (population>25000000 AND gdp>20000000))

结果如下:
在这里插入图片描述

posted @ 2019-05-13 21:43  siplifyit  阅读(121)  评论(0编辑  收藏  举报