数据库基础知识
SQL 代码规范,参考文档:https://zhuanlan.zhihu.com/p/27466166
项目一:查找重复的电子邮箱
创建 email 表,并插入如下三行数据
Id | |
---|---|
1 | a@b.com |
2 | c@d.com |
3 | a@b.com |
编写一个 SQL 查询,查找 email 表中所有重复的电子邮箱。
根据以上输入你的查询应返回以下结果:
a@b.com |
说明:所有电子邮箱都是小写字母。
-- 创建表
CREATE TABLE email(
Id INT NOT NULL PRIMARY KEY,
Email VARCHAR(225) NOT NULL);
--插入数据
INSERT INTO email VALUES('1','a@b.com');
INSERT INTO email VALUES('2','c@d.com');
INSERT INTO email VALUES('3','a@b.com');
--查询语句
SELECT Email from email group by email having count(*)>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(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);
--查询语句
SELECT name, population, area FROM World where area > 3000000 or population>25000000 and gdp>2000000;