版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yanghuangsanguo/article/details/88932423
Datawhale-MySQL-Task1
一: 1.MySQL软件安装及服务器设置
可以在windows和linux上安装, 安装的步骤详见 菜鸟教程
2.使用图形界面软件 Navicat for SQL
- Navicat For SQL 下载地址 Navicat,
- 破解下载地址, [Navicat patch] (https://github.com/DoubleLabyrinth/navicat-keygen/releases)
- 破解操作步骤: 说明
注: 建议使用正版。
3.数据库基础知识
a.数据库定义
存储数据的存储仓库,以结构化形式存储的系统。
b.关系型数据库
- 关系型数据库, 是指采用关系模型来数组数据的数据库.
- 关系模型指的就是二维表。
- 关系型数据库的产品: Oracle、SQL Server、MySQL等
c.二维表
- 二维表就是由行和列组成.
d.行
- 表的行Row 是 一行的数据,别名叫记录Record.
e.列
- 表的列Column 是一列的数据, 别名叫字段 Filed.
f.主键
- 主建是为表中某个字段的值不能重复而设置的,一个数据表只能有一个主键,数据库底层使用该字段作为唯一索引,能快速检索数据。
g.外键
- 外键是用于关联两个字段元素的,或者是关联两个表的不同字段。 一般的,表B的字段b作为外键,关联表A的字段a.
4. MySQL数据库管理系统
a.数据库
- MySQL 是开源的关系型数据库管理系统
b.数据表
- 见上面的 【二维表】
c.视图
- 视图是基于 SQL 语句的结果集的可视化的表。
- 视图包含行和列, 不是真实存在的
d.存储过程
- 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。
- 存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。
v- 存储过程在创建时即在数据库服务器上- 例子:
具体的详见 MySQL官网文档
二: MySQL 基础 (一)查询语句
1. 查询语句 SELECT FROM
语法
select distinct * from email where name = {'value1'} limit {num} offset {bnum}
去重语句: distinct
前N个语句: limit {num}
limit 是限制返回行数的个数, offset是设置偏移量
2. 筛选语句 WHERE
语法
select distinct * from email where name = {'value1'} limit {num}
运算符 : name = {‘value1’}
还有其他运算符, >, <, =, in , not in 等等
3.分组语句 GROUP BY
语法
select distinct * from email group by name having by count(*) > 1
HAVING子句, 一般与group by 一起使用, 用于过滤使用
4. 排序语句 ORDER BY
语法
select * from email order by id asc| desc
正序为asc、逆序为desc
5. SQL注释
6. SQL代码规范
- [SQL编程格式的优化建议] https://zhuanlan.zhihu.com/p/27466166
- [SQL Style Guide]https://www.sqlstyle.guide/
作业
项目一:查找重复的电子邮箱(难度:简单)
创建 email表,并插入如下三行数据
Id | |
---|---|
1 | [email protected] |
2 | [email protected] |
3 | [email protected] |
编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。
根据以上输入,你的查询应返回以下结果:
[email protected] |
说明:所有电子邮箱都是小写字母。
简答:
结果:
项目二:查找大国(难度:简单)
创建如下 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 |
简答:
结果: