MySQL 学习笔记

写在前面

即使是非科班出身的笔者也听过数据库的鼎鼎大名了,2020年尾有幸乘上datawhale社区的学习车,希望经过半个月的学习能够一窥洞天,以下学习内容和心得来自datawhale社区第20期 学习者手册(SQL)

Task00:环境搭建

指南针对的版本是8.0.21,2020-12-15下载的版本是8.0.22,安装过程大同小异,区别在于新版本没有询问是否以集群方式安装 MySQL,忽略就好。

Task01:初识数据库

讲义讲解的知识点见网页

要点

  1. 区别了概念数据库(Database,DB)数据库管理系统(Database Management System,DBMS),简单介绍了五种类型的DBMS。本次学习SQL 语言的数据库管理系统,也就是关系数据库管理系统 (RDBMS)的操作方法。
  2. 数据库储存的表结构:行=记录,列=字段,行列交汇=单元格(一条记录)。
  3. SQL语句分为三类:DDL(Data Definition Language,数据定义语言),DML(Data Manipulation Language,数据操纵语言),DCL(Data Control Language,数据控制语言)。
  4. SQL基本书写规则(记住“以分号结尾”和“不区分大小写”,书写规范见附录1 - SQL 语法规范

Task02:基础排序与查询

讲义讲解的知识点见网页

要点

  1. SELECT语句:两个子句(clause)-SELECT, FROM;WHERE
  2. 算术运算符
  3. 比较运算符
  4. 逻辑运算符:NOT, AND, OR, 括号优先
  5. 真值表

Task03:复杂一点的查询

讲义讲解的知识点见网页

要点

  1. 视图和表的区别“视图不是表,视图是虚表,视图依赖于表”
  2. 视图的用法:创建(CREAT VIEW … AS…)、修改(ALTER VIEW … AS …)、更新(UPDATE)、删除(DROP VIEW …)
  3. 子查询——一个查询语句嵌套在另一个查询语句内部的查询:嵌套子查询、标量子查询、关联子查询

Task04:集合运算

讲义讲解的知识点见网页

要点

  1. 表的加法:UNION
  2. UNION 与 OR 的联系与区别
  3. UNION ALL:包含重复行
  4. 差集:NOT IN
  5. 连结(JOIN):内连结(INNER JOIN),自然连结(NATURAL JOIN),外连结(OUTER JOIN)
  6. 多表连结
  7. 交叉连结—— CROSS JOIN(笛卡尔积)

Task05:SQL高级处理

讲义讲解的知识点见网页

要点

一、窗口函数OLAP(= OnLine AnalyticalProcessing)

  1. PARTITON BY
  2. ORDER BY
  3. 聚合函数:UM、MAX、MIN等
  4. 排序用的专用窗口函数:RANK、DENSE_RANK等
  5. 应用:计算移动平均

二、GROUPING运算符
6. ROLLUP - 计算合计及小计

Task06:综合练习

练习一:各部门工资最高的员工(难度:中等)

题目
解答要点:MAX()

练习二: 换座位(难度:中等)

题目
解决思路:观察结果,交换座位即是原来id为奇数的同学,新id=旧id+1;原来id为偶数的同学,新id=旧id-1;如果最后一个同学的id为奇数,新id=旧id

练习三: 分数排名(难度:中等)

题目
考察点:窗口函数

练习四:连续出现的数字(难度:中等)

题目
解决思路:连续3次出现,可通过id连续判断,且num都相等

练习五:树节点 (难度:中等)

题目1
在这里插入图片描述
解决思路:子查询,JOIN

练习六:至少有五名直接下属的经理 (难度:中等)

题目

练习七: 分数排名 (难度:中等)

题目
解决要点:窗口函数

练习八:查询回答率最高的问题 (难度:中等)

题目

练习九:各部门前3高工资的员工(难度:中等)

题目
解决思路:利用窗口函数对各部门工资排名

练习十:平面上最近距离 (难度: 困难)

题目

练习十一:行程和用户(难度:困难)

题目
题目2
解决思路:要计算非禁止用户的取消率,首先要的到订单对应的乘客和司机是否是禁止用户,所以用两次JOIN分别得到非禁止乘客和非禁止司机的订单,然后计算取消率

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值