美文网首页大数据 爬虫Python AI Sql
数据分析一定要懂的SQL知识

数据分析一定要懂的SQL知识

作者: 程小舰 | 来源:发表于2020-04-21 12:37 被阅读0次

1.从理论上来讲

数据库操作可能包含以下几大类:

数据操纵语言:单表/多表查询就不用多说了,select查询;数据更新如

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

数据定义语言:主要是表/索引/视图的创建,索引的创建是比较重要的概念,索引应用的如何直接决定了你的任务处理时间或处理效率,这一块可以好好看一下,例如:

以下两种情况下,title创建了索引,那种情况会失效?(文末回答)

A:SELECT * FROM test_a WHERE title LIKE '5000%';

B:SELECT * FROM test_a WHERE title LIKE '%5000';

视图也同样很重要,视图的灵活运用也可以给你提高效率。例如将一些常用的业务需求创建为视图。

实体完整性和参照完整性:好像听起来比较抽象,这个说的意思主要是让你掌握创建表的主外键

数据控制语言:主要内容为授权与回收,真正的在公司里,你是不可能真的对某一个库或表拥有较大权利的,你的账号基本上就是授权了select的权限,或者你只能操作某些表或者库,这就是授权与回收的意思。一旦操作不当,全给你删了啥的,是不是很崩溃~

数据库编程:这个主要是存储过程和触发器。

触发器就是你设定好某个触发条件,一旦符合了该条件就会执行相应的操作。例如在学生表中每插入一个学生,就引发触发条件,将这个学生学号插入到学生成绩表,成绩默认为0.

CREATE

    [DEFINER = { user | CURRENT_USER }]

TRIGGER trigger_name

trigger_time trigger_event

ON tbl_name FOR EACH ROW

  [trigger_order]

trigger_body

存储过程更像是定义一个函数,你创建好了这个存储过程,然后调用就行。

以上算是对数据库操作的一个简单总结,可以从更宏观的角度大体有个认识;

2.实践上

如果真的工作,会发现平时做的更多的时候数据操纵语言,写各种SQL,简单的,复杂的,有的SQL长达好几页长,涉及到n多的中间表之类的,当然了,你如果没有一口气写出来的勇气,可以一步一步的来写,这都不是大问题。主要是,这里面有原子操作你会经常用到:

过滤和投影:也就是where条件选择和查找某几列的意思,这个一般数据库或者大数据引擎都做了查询下推的优化。

连接:自然连接大家都会,但是更多经常会用到一些左/右外连接等,这个可以看看区别,其实就是以谁为基准的区别,左外连接,以左表为基准,右表没有的填null;右连接也是这个道理;

分组聚合:分组和聚合本是分开的,但是一般分组都要做一些统计,这里很重要的点,也是面试经常会问到的,就是分组操作和条件过滤之间的先后顺序的问题。

select a,count(a) as ac from tbl1 where a > 3 group by a having ac>4;

文末回答

排序:这个没说什么好说的,就是排序。

哦对了,还有一个distinct,现实中的数据往往挺乱挺复杂,我们经常会用到distinct看看没有重复的到底有多少之类的。

好啦,基本上我感觉上面的这些,如果你有了一个大体的认识,再去有重点的看一些例如索引,having的执行次序这些东西就差不多了~希望有所帮助~

文末:

我就是文末,我来回答上面的两个小问题把,回答的不对大家可以指正:

1.如果LIKE是前缀匹配则会命中索引,否则不会命中。另外以上的查询结果为空,但是不影响说明索引的作用。

这要从索引的实现上来讲,索引一般用的是b+树来实现,如果你前缀匹配,可以从树的顶点往下匹配,至少可以匹配几回,但是如果前缀没有,查询引擎只想对着这棵树吊死~

2.tips:先where条件过滤,再分组,分完组统计完再通过having进行筛选

数据分析人员需要掌握sql到什么程度? - 小贱的回答 - 知乎

https://www.zhihu.com/question/379694223/answer/1167020779

相关文章

  • 数据分析一定要懂的SQL知识

    1.从理论上来讲 数据库操作可能包含以下几大类: 数据操纵语言:单表/多表查询就不用多说了,select查询;数据...

  • MySQL数据分析常用函数方法

    SQL 数据分析知识点 1 sql 语句的执行顺序 执行顺序: from xxx join xxx:获取数据源 w...

  • 浅谈:在数据分析中Pyhon和SQL是有多重要

    在学习数据分析的路上会遇到一个比较常见的问题。一定要会 Python 和SQL才能学习数据分析吗?从数据分析的角度...

  • 数据分析之SQL常问知识点

    数据分析之SQL常问知识点 一:Insert into select 语句 与 select into from ...

  • 数据分析2-SQL入门

    SQL是结构化查询语言,在数据分析工作中,可用于提取数据和查询数据。 1.预备知识 1.1什么是SQL 结构化查询...

  • 决胜B端学习笔记07-数据分析

    技能目录 数据埋点UML建模技术知识数据库与SQL数据分析产品文档 数据库与SQL 数据库表设计 从ER图到数据表...

  • 1数据分析基本问题

    学习内容 数据思维,业务知识,Excel,数据可视化,SQL,统计学,Python 数据分析的结构层次 1 底层数...

  • 决胜B端学习笔记06-技术知识

    技能目录 数据埋点UML建模技术知识数据库与SQL数据分析产品文档 技术知识 为什么 程序设计的MVC范式MVC:...

  • 数据分析师之SQL入门

    作为大数据分析师,使用的最多的莫过于SQL语句,这里拿几道典型的SQL面试题为例,学习一下数据库知识。自己搭建My...

  • 数据分析学习推荐书籍

    自己是一枚做数据平台的 Engineer,这里根据网上搜集整理列出数据分析学习书单list. 基础知识: SQL ...

网友评论

    本文标题:数据分析一定要懂的SQL知识

    本文链接:https://www.haomeiwen.com/subject/mjtpmttx.html