一.数据分析基础
数据分析:利用合适的工具,在统计学理论的支撑下,对数据进行一定程度的预处理,然后结合具体业务分析数据,帮助公司相关部门监控、定位、分析、解决问题,从而提高业务部门的决策能力和经营效率,发现业务机会,让企业取得持续竞争优势。
数据分析三大作用:现状分析、原因分析、预测分析。
数据分析分析内容层面:
1.总体概览指标(日销售额、日订单量、购买人数……);
2.对比性指标(同比、环比、差指标);
3.集中趋势指标(平均数、众数、中位数);
4.离散程度指标(全距(极差)、方差、标准差);
5.相关性指标(相关系数r,范围[-1,1],正相关/负相关);
6.因果关系
数据分析一般流程:
1.熟悉工具;2.明确目的;3.获取数据;4.熟悉数据;5.处理数据;
6.分析数据;7.得出结论;8.验证结论;9.展现结论
二.数据库基础
数据库:用来存储数据的仓库,用户可以对存放在这个仓库中的数据进行新增、查询、更新、删除等操作。
数据库管理系统(DBMS):对数据库进行管理的一个系统,这个系统负责建立、使用和维护数据库,对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
结构化数据:有行有列的二维数据。——>【关系型数据库】
非结构化数据:不适合用行和列的形式来存储的数据(Word文档、HTML文档、图片等)。——>【非关系型数据库】
SQL: Structured Query Language,结构化查询语言。
SQL包括:
1.DDL(数据定义):create、drop、alter,主要作用于数据库、表、视图、索引。
2.DML(数据操纵):select、insert、update、delete,主要作用于表。
3.DCL(数据控制):grant、revoke,主要作用于表、列。
SQL查询处理步骤
1.查询分析:扫描全部SQL语句,进行词法和语法分析,判断查询语句是否符合SQL语法规则;
2.查询检查:进行语义检查,根据数据字典判断查询语句中涉及的数据库、数据表、列等信息是否存在;
3.查询优化:根据具体情况选择一个效率最高的执行策略;
4.查询执行:执行查询语句,返回查询结果。
主流数据库:
Mysql,受欢迎,比较主流,已被Oracle收购;
SQL Server,微软开发,与自己的产品交互比较好;
Oracle,甲骨文,数据库领域引领者;
DB2,IBM开发,主要目标用户是企业;
Hive SQL,大公司比较常见,Hive是基于Hadoop构建的一套数据仓库分析系统,与Mysql的语法基本一致。Hadoop是一种分布式处理架构,可大幅提高程序运行效率。
三.数据库工具准备
Mysql官网:www.mysql.com
DBeaver:一款免费的、开源的,开发人员和数据管理员通用的数据库管理工具。
DBeaver官网:DBeaver Community | Free Universal Database Tool
四.数据源
常规数据源:外部数据、公司现有数据、新建数据。
熟悉数据:
1.数据库是什么数据库;
2.数据库包含哪些表;
3.各表存储了什么信息,表中每列分别代表什么。
Mysql附属数据库information_schema:
show databases;
use information_schema;
show tables;
select * from information_schema.SCHEMATA;--查询Mysql中所有与库有关的信息
select * from information_schema.TABLES;--查询Mysql中与表相关的信息
select * from information_schema.COLUMNS;--查询Mysql每张表的列信息
五.数据的获取
select * from table;
select id,name,class,age,score from table;
select * from table limit 5;--前5行
select * from table limit 2,3;--第2行(不含第2行)以后的3行数据
select * from table where age = 18;
select * from table where age = 18 and/or class = “一班”;--where后面用逻辑符来连接多个条件,where后面的比较运算符可用等于、大于、小于、介于等。
select id,name,”age<20” as label from table where age < 20;--给查询结果插入一列固定值
JSON列解析:
有时数据库中的数据是按照JSON格式存储的,即字典这种数据结构{key,value},如score列{“语”:88, “数”:91, “外”:97} 。
select id,json_extract(score,’$.数’) as “数学成绩” from table;--获取JSON中key对应的value值
select id,json_keys(score) as “科目” from table;--查询JSON中都有哪些key
select * from table order by class asc,age desc;--排序默认升序asc可省略,降序desc
六.数据预处理
缺失值处理:
缺失值有空格、null和空值形式,前两种形式单元格是有值的,后一种单元格没有值。
1.删除,select * from table where profession != “”;--where后面!= “ ”/