9

零基础必看!数据分析SQL刷题平台, 体验感一绝!

 2 years ago
source link: https://zhuanlan.zhihu.com/p/431064057
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

零基础必看!数据分析SQL刷题平台, 体验感一绝!

想要成为一名数据分析师,但不知道SQL要掌握到何种程度

这是大部分新手入门时必问的问题。

但市面上很多平台,只给初学者一场实战练习,入坑的同时不提供额外的学习环境,题库不更新。体验不好不说,知识体系也是非常稀碎。

v2-98a36546bb9cddc1dec9dec8596a9972_720w.png

为此,我提供一个全新的SQL刷题平台,属于语法和练习相结合,以阶段式“闯关”的形式来学习SQL编程,会比单独学语法/单独刷题要容易理解的多。

平台包括了函数、约束和多表连结、查询、运算符等内容,全部免费,忍不住想给自己先点个赞。

首先,你需要先了解学习SQL的三个层次:

1、熟悉基本的增删拆改语句及函数(select、where、group by...)

2、熟悉告诫语法(集合、分组聚合、子查询...)

3、清楚如何优化SQL语句,以达到最好的查询效率(了解事务、锁、索引、约束...)

满足这三点就可以称之为一个技术水平还不错的sqler了。

其次,初学小白应该如何上手

这里我将SQL刷题平台上的入门SQL的知识图谱整理成图表,感兴趣的朋友可以先保存下来,或者戳这里直达免费学习实战。

具体掌握哪些内容

一共分为7个阶段,分别是:

Level 1:简单的 select / insert / update / delete 语句

考察知识点:

1、简单的select语句

  • 使用 SELECT COLUMN 查询单个列
  • 使用 SELECT COLUMN, COLUMN 查询多个列
  • 使用 SELECT * 查询所有列
  • 使用 SELECT DISTINCT 查询不同行
  • 使用 SELECT WHERE 对行进行筛选过滤

2、简单的insert语句

  • 使用 INSERT INTO 在不指定列的情况下插入数据
  • 使用 INSERT INTO 在指定的列中插入数据

3、简单的update语句

  • 使用 UPDATE 更新数据

4、简单的delete语句

  • 使用 DELETE 删除数据

Level 1部分练习题:

Level 2:比较运算符 / 逻辑运算符 / 特殊条件 / ORDER BY 与 LIMIT

考察知识点:

1、比较运算符的用法

2、逻辑运算符

  • 使用 AND 连接多条件
  • 使用 OR 连接多个条件
  • 使用 NOT 过滤不满足条件的数据

3、特殊条件

  • 使用 IN 查询多条件
  • 使用 NOT IN 排除
  • 使用 BETWEEN AND 查询两值间的数据范围
  • 使用 IS NULL 查询空数据
  • 使用 LIKE 模糊查询

4、 ORDER BY 与 LIMIT

  • 使用 ORDER BY 对数据进行排序
  • 使用 LIMIT 限制输出行数

Level 2部分练习题:

LEVEL 3:算数函数 / 时间函数

考察知识点:

1、算法函数(一)

  • 使用 AVG() 函数求数值列的平均值
  • 使用 MAX() 函数返回指定列中的最大值
  • 使用 MIN() 函数返回指定列中的最小值
  • 使用 SUM() 函数统计数值列的总数

2、算法函数(二)

使用 ROUND() 函数将数值四舍五入

使用 NULL() 函数判断空值

使用 COUNT() 函数计数

3、时间函数(一)

  • 使用 NOW() 、 CURDATE()、CURTIME() 获取当前时间
  • 使用 DATE()、TIME() 函数提取日期和时间
  • 使用 EXTRACT() 函数提取指定的时间信息
  • 使用 DATE_FORMAT() 格式化输出日期

4、时间函数(二)

  • 使用 DATE_ADD() 增加时间
  • 使用 DATE_SUB() 减少时间
  • 使用时间函数 DATEDIFF() 和 TIMESTAMPDIFF() 计算日期差

Level 3部分练习题:

LEVEL 4:约束/多表连结

考察知识点:

1、约束

  • 非空约束 NOT NULL
  • 唯一约束 UNIQUE
  • 主键约束 PRIMARY KEY
  • 外键约束 FOREIGN KEY
  • 检查约束 CHECK
  • 默认约束 DEFAULT

2、多表连结

  • 内连接 INNER JOIN
  • 外连接 OUTER JOIN
  • 交叉连接 CROSS JOIN

Level 4部分练习题:

LEVEL 5:分组查询/简单的子查询/子查询进阶

考察知识点:

1、分组查询

  • GROUP BY 子句
  • HAVING 子句

2、简单的子查询

  • SELECT 语句中的子查询
  • INSERT 语句中的子查询
  • UPDATE 语句中的子查询
  • DELETE 语句中的子查询

3、子查询进阶

  • 内联视图子查询
  • IN 操作符的多行子查询
  • ANY 操作符的多行子查询
  • ALL 操作符的多行子查询
  • 多列子查询
  • HAVING 子句中的子查询

Level 5部分练习题:

Level 6:MySQL 事务/ 锁的认识 / 锁的类型 / 如何上锁 / 如何排查锁 / 乐观锁与悲观锁 / 认识触发器 / 触发器基本操作(一) / 触发器基本操作(二)

考察知识点:

1、MySQL 事务

  • MySQL Transaction

2、锁的认识

3、锁的类型

  • InnoDB 锁的种类之自增锁
  • InnoDB 锁的种类之共享锁和排他锁
  • InnoDB 锁的种类之意向锁、记录锁和间隙锁
  • InnoDB 锁的种类之临键锁和插入意向锁

4、如何上锁

  • 如何加表锁
  • 如何加行锁

5、如何排查锁

  • 如何排查表锁
  • 如何排查行锁

6、乐观锁与悲观锁

  • MySQL 乐观锁与悲观锁

7、认识触发器

  • 认识触发器
  • MySQL 创建触发器
  • MySQL 删除触发器

8、触发器基本操作(一)

  • MySQL BEFORE INSERT Trigger
  • MySQL AFTER INSERT Trigger
  • MySQL BEFORE UPDATE Trigger
  • MySQL AFTER UPDATE Trigger
  • MySQL BEFORE DELETE Trigger
  • MySQL AFTER DELETE Trigger

9、触发器基本操作(二)

创建多个触发器

如何从 MySQL 的触发器中调用存储过程

MySQL 显示触发器

Level 6部分练习题:

Level 7:MySQL视图介绍 / 创建试图 / MySQL视图处理 / MySQL ALTER VIEW / 创建MySQL可更新视图 / MySQL视图和WITH CHECK OPTION 子句 / MySQL显示视图 / MySQL重命名视图 / MySQL删除视图 / MySQL视图本地和级联 / MySQL 视图管理

考察知识点:

1、MySQL视图介绍

  • MySQL 视图简介

2、创建试图

  • MySQL CREATE VIEW 语句(一)
  • MySQL CREATE VIEW 语句(二)

3、MySQL视图处理

  • MySQL 视图处理算法

4、MySQL ALTER VIEW

  • MySQL 的 ALTER VIEW 语句

5、创建MySQL可更新视图

  • MySQL 可更新视图介绍
  • MySQL 可更新视图操作

6、MySQL视图和WITH CHECK OPTION 子句

  • WITH CHECK OPTION 子句

7、MySQL显示视图

  • MySQL SHOW VERSION

8、MySQL重命名视图

  • MySQL RENAME VIEW

9、MySQL删除视图

  • MySQL DROP VIEW

10、MySQL视图本地和级联

  • MySQL WITH CASCADED CHECK OPTION
  • MySQL WITH LOCAL CHECK OPTION

11、MySQL 视图管理

  • Managing Views in MySQL

Level 7部分练习题:

有问题欢迎留言和我交流讨论。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK