1、基于window10的MySQL5.7版安装教程
2、Navicat连接MySQL
3、数据库基础知识扫盲
- 《MySQL必知必会》笔记 – 数据查询语言DQL
- 《MySQL必知必会》笔记 – 数据操纵语言DML
- 视图:参考博客
- 存储过程:参考博客
4、SQL编程格式的优化建议
SQL Style Guide[有空翻译一下]
项目一:查找重复的电子邮箱(难度:简单)
创建 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(255) 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 Emai
FROM email
GROUP BY Email
HAVING count(Email) > 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,popilation,area
FROM World
WHERE area >3000000
OR (population >25000000 AND gdp > 20000000)