对于安装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))
结果如下: