MySQL
Task 1(3天)
第一次任务打卡
1.1 - MySQL 软件安装及数据库基础
软件安装及服务器设置
数据库基础知识
- 数据库定义
- 关系型数据库
- 二维表
- 行
- 列
- 主键
- 外键
MySQL数据库管理系统
- 数据库
- 数据表
- 视图
- 存储过程
参考资料
-
[SQL必知必会]
下载链接:https://u18036366.pipipan.com/fs/18036366-300877816 -
[MySQL教程]
连接: http://www.runoob.com/mysql/mysql-tutorial.html
1.2 - MySQL 基础 (一)- 查询语句
-
导入示例数据库,教程
https://www.yiibai.com/mysql/how-to-load-sample-database-into-mysql-database-server.html -
SQL是什么?MySQL是什么?
-
查询语句 SELECT FROM
语句解释
去重语句
前N个语句 -
筛选语句 WHERE
语句解释
运算符 -
分组语句 GROUP BY
语句解释
HAVING子句 -
排序语句 ORDER BY
语句解释
正序、逆序 -
SQL注释
-
SQL代码规范
[SQL编程格式的优化建议] https://zhuanlan.zhihu.com/p/27466166
[SQL Style Guide]https://www.sqlstyle.guide/
项目一:查找重复的电子邮箱(难度:简单)
创建 email 表,并插入如下三行数据
+----+---------+
| Id | Email |
+----+---------+
| 1 | a@b.com |
| 2 | c@d.com |
| 3 | a@b.com |
+----+---------+
编写一个 SQL 查询,查找 email 表中所有重复的电子邮箱。
根据以上输入你的查询应返回以下结果:
+---------+
| Email |
+---------+
| a@b.com |
+---------+
说明:所有电子邮箱都是小写字母。
项目二:查找大国(难度:简单)
创建如下 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 |
+--------------+-------------+--------------+
【任务说明】
1.1 是软件安装和配置,以及一些数据库理论知识储备。
学习内容是指需要在博客文章中总结的知识点,包括但不仅限于这些知识点。比如一些安装过程中的报错及解决办法也可以写。
1.2 是最最基础的查询语句,可以说学完其中内容,SQL 语句就掌握了 30% 了。
语言规范非常重要,请大家认真仔细阅读。请记住,你写 SQL 需要考虑别人 review 时的心情。写的过于杂乱会分分钟造成暴力事件。
【 解 】
解项目一
- 第一步:ubuntu16.04 安装MySQL
参考博客:
1)下载安装Mysql
sudo apt-get update
sudo apt-get install mysql-server
2)配置MySql
sudo mysql_secure_installation
3) 检验是否安装成功
systemctl status mysql.service
连接数据库:
- 第二步:创建数据库:firstDB
- 进入mysql:
sudo mysql –u root –p
- 创建数据库:
create database firstDB;
3)查看是否创建成功:
show databases;
- 第三步:创建表格:email
1)进入数据库firstDB:
use firstDB;
2)创建表格:
CREATE TABLE email (
ID INT NOT NULL PRIMARY KEY,
Email VARCHAR(255) NOT NULL
);
3)检查是否创建成功:
show tables;
- 第四步:插入数据
1)插入数据:
INSERT INTO email VALUES('1','a@b.com');
INSERT INTO email VALUES('2','c@d.com');
INSERT INTO email VALUES('3','a@b.com');
2)查看表格全部数据:
select * from email;
4)查询email表中重复的电子邮箱:
select Email from email group by Email having count(Email)> 1;
解项目二
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
);
2)插入数据:
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);
3)输出特定的区域:
如果一个国家的面积超过300万平方公里,或者(人口超过2500万并且gdp超过2000万),那么这个国家就是大国家。编写一个SQL查询,输出表中所有大国家的名称、人口和面积:
select name,population,area from world
where (population > 25000000 and gdp > 20000000)
or area >3000000;