数据分析应该掌握的知识及SQL技能

时间:2021-09-13 14:24:46   收藏:0   阅读:31

一、概念及常识

1、数据分析必备的统计学知识

2、数据分析的常用工具

3、从事数据科学需要掌握的技能

要从事数据科学,我们需要从数据知识、计算机知识、专业知识这三个维度考虑

  1. 具有分析思维
  2. 基本的大学数学知识,包括微积分和线性代数。
  3. 统计学知识,包括描述统计学和推导统计学
  4. 编程基础,如 Python 、R语言、SQL语句
  5. 算法知识,如回归、分类、聚类算法等。
  6. 数据可视化,将你的分析结果展示出来。
  7. 领域专业知识,如商业知识、生物知识等,视具体分析的问题而定。

3.1 数据科学的工作流程

虽然数据分析是一个不断迭代的过程,而且不同的步骤会有些交叉,但是我们依然可以将过程简化为以下七个步骤:

  1. 明确的问题
  2. 收集原始数据
  3. 数据清洗
  4. 数据探索
  5. 应用模型进行深度分析
  6. 传达分析结果
  7. 是分析过程可再现

在一个数据项目中,我们绝大部分的努力都将花在获取数据和清洗数据上(步骤2-3)以及展示分析结果和过程(6-7)上。

3.2 数据科学中的职业角色

二、MySQL必学必会

1、一般查询语句

需要掌握的关键词(包含顺序):

SELECT
FROM
JOIN
WHERE
GROUP BY
HAVING
ORDER BY
LIMIT

SELECT

指定需要先择的列,存在多个时用逗号分隔。如果想要查看全部列,则可以使用*号代替。如果需要对查询结果去重,可以添加DISTINCT关键词。另外可对选定的列使用AS关键词进行重命名。

示例代码:

SELECT name, age, occupation,season_contestant FROM bachelorette;
SELECT * FROM bachelorette;
SELECT DISTINCT season_contestant FROM bachelorette;
SELECT name, age, occupation,season_contestant as sc FROM bachelorette;

WHERE

可以用来对查询的项进行过滤。语法格式为:列名+过滤操作符+具体要求。常用的过滤操作符有:

示例代码:

SELECT * from Customers WHERE country = ‘USA‘;
SELECT * from Customers WHERE country = ‘USA‘ OR country = ‘Brazil‘;
SELECT * from Products WHERE Price BETWEEN 10 AND 20;
SELECT * from Customers WHERE CustomerName LIKE ‘%to%‘;
SELECT * FROM student WHERE dept_name IN (‘Comp. Sci.‘, ‘Physics‘, ‘Elec. Eng.‘);

GROUP BY与聚集函数

GROUP BY允许你对指定的一个或多个列进行分组统计。而分组统计中常会用到聚集函数。常用的聚集函数如下:

示例代码:

SELECT Country, COUNT(CustomerID) FROM Customers GROUP  BY Country;

HAVING

和WHERE一样也是一种数据过滤的方法,和WHERE条件不同的是它针对的是使用GROUP BY以后的聚合函数的值。

SELECT Country, COUNT(CustomerID) FROM Customers GROUP  BY Country HAVING  COUNT(CustomerID) > 3;

ORDER BY

指定要进行排序的以恶个或多个列,与ASC(正序)和DESC(倒序)一起使用。默认为ASC。

示例代码:

SELECT * from Customers WHERE country = ‘USA‘  OR country = ‘Brazil‘  ORDER BY CustomerName;
SELECT * from Customers WHERE country = ‘USA‘  OR country = ‘Brazil‘  ORDER BY CustomerName DESC;

JOIN

可以将多在表组合成一张表后进行查询。其中JOIN的常用操作主要有以下几类:

技术分享图片

JOIN的时候需要使用ON关键词指定两张表中关联的列。另外可以对表使用AS关键词进行重命名,避免出现两张表相同列名的问题。重命名后取对应列的方法为表名.列名。

示例代码:

SELECT Orders.OrderID, Customers.CustomerName FROM Orders INNER  JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
SELECT Customers.CustomerName, Orders.OrderID FROM Customers LEFT  JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
SELECT Orders.OrderID, Employees.LastName, Employees.FirstName FROM Orders RIGHT  JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID;
SELECT Customers.CustomerName, Orders.OrderID FROM Customers FULL  OUTER  JOIN Orders ON Customers.CustomerID=Orders.CustomerID;

其他的一些JOIN:

技术分享图片

另外还有一种JOIN是Cross Join,代表的是取2张表的笛卡尔积

LIMIT

限制需要返回的数据条目。比如LIMIT 100,则表示只返回100条数据。如果是LIMIT 10,100则表示返回从第10个开始,返回100条记录。

2、子查询

嵌套SELECT语句也叫子查询,一个 SELECT 语句的查询结果能够作为另一个语句的输入值。子查询不但能够出现在WHERE子句中,也能够出现在FROM子句中,作为一个临时表使用,也能够出现在SELECT LIST中,作为一个字段值来返回。

示例代码:

SELECT ename,deptno,sal FROM emp WHERE deptno=(SELECT deptno FROM dept WHERE loc=‘NEW YORK‘);
SELECT ename,job,sal,rownum FROM (SELECT ename,job,sal FROM  EMP  ORDER BY sal);

3、CTE

CTE(Common Table Expressions)相当于生成一张临时表,与临时表不同的是生存周期的不同。不需要显式的创建或删除,也不需要创建表的权限。更准确的说,CTE更像是一个临时的VIEW。可同时定义多个CTE,但只能用一个with,多个CTE中间用逗号”,”分隔。

代码示例:

WITH t1 AS (
        SELECT CountryRegionCode
        FROM person.CountryRegion
        WHERE Name LIKE ‘C%‘
    )
SELECT *
FROM person.CountryRegion;
WITH t1 AS (
        SELECT *
        FROM table1
        WHERE name LIKE ‘abc%‘
    ), 
    t2 AS (
        SELECT *
        FROM table2
        WHERE id > 20
    ), 
    t3 AS (
        SELECT *
        FROM table3
        WHERE price < 100
    )
SELECT a.*
FROM t1 a LEFT JOIN t2 ON t1.id = t2.id
INNER JOIN t3 ON t1.id = t3.id;

和临时表有个重要的区别,就是生存周期,

CTE也就是common table expressions是sql标准里的语法,CTE与derived table最大的不同之处是:

4、UNION 与 UNION ALL

UNION和UNION ALL关键字都是将两个结果集合并为一个,主要区别:UNION在进行表链接后会筛选掉重复的记录,Union All不会去除重复记录。

代码示例:

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2;
SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2;

5、CASE WHEN

CASE WHEN是对列的数据进行判断,然后设定新的值,CASE WHEN通常使用在SELECT语句内,但有时也会用在WHERE语句内

示例代码:

SELECT
    STUDENT_NAME,
    (CASE WHEN score < 60 THEN ‘不及格‘
        WHEN score >= 60 AND score < 80 THEN ‘及格‘
        WHEN score >= 80 THEN ‘优秀‘
        ELSE ‘异常‘ END) AS REMARK
FROM
    TABLE

6、常用函数

上面讲过聚集函数,这里主要介绍的是除聚集函数以外的其他函数。

常用数值处理函数

常用字符串处理函数

日期时间处理函数

DATE_FORMAT(date, format)函数

DATE_FORMAT(date, format)函数可根据format字符串格式化日期或日期和时间值date,返回结果串。 也可用DATE_FORMAT()来格式化DATE 或DATETIME 值,以便得到所希望的格式。根据format字符串格式化date值:

NULL相关函数

7、窗口函数

窗口函数针对指定的行集合(分组)执行聚合运算。不同之处在于,窗口函数能够为每个分组返回多个值,而聚合函数只能返回单一值。聚合运算的对象其实是一组行记录,我们称之为“窗口”(因此才有了术语“窗口函数”)

窗口函数

分析函数

OVER从句

8、其他操作

1、查看当前有哪些数据库

SHOW  DATABASES;

2、创建一个数据库

CREATE  DATABASE <database_name>;

3、使用一个数据库

USE <database_name>;

4、数据.sql文件中导入指令

SOURCE <path_of_.sql_file>;

5、删除一个数据库

DROP  DATABASE <database_name>;

6、查看选定的库下有哪些表

SHOW  TABLES;

7、创建一张临时表

CREATE TABLE <table_name1> (
    <col_name1> <col_type1>,
    <col_name2> <col_type2>,
    <col_name3> <col_type3>
    PRIMARY KEY (<col_name1>),
    FOREIGN KEY (<col_name2>) REFERENCES <table_name2>(<col_name2>)
);

8、显示表字符描述

DESCRIBE <table_name>;

9、插入数据

INSERT INTO <table_name> (<col_name1>, <col_name2>, <col_name3>, …)
    VALUES (<value1>, <value2>, <value3>, …);

10、更新数据

UPDATE <table_name>
    SET <col_name1> = <value1>, <col_name2> = <value2>, ...
    WHERE <condition>;

11、删除表中内容,可以条件WHERE条件来限定要删除的内容

DELETE  FROM <table_name> WHERE <condition>;

12、清空表中所有数据

TRUNCATE <table_name>;

13、删除数据库表

DROP  TABLE <table_name>;

14、创建视图

数据库中的数据都是存储在表中的,而视图只是一个或多个表依照某个条件组合而成的结果集,一般来说你可以用update,insert,delete等sql语句修改表中的数据,而对视图只能进行select操作。

CREATE VIEW <view_name> AS
    SELECT <col_name1>, <col_name2>, …
    FROM <table_name>
    WHERE <condition>;

15、删除视图

DROP  VIEW <view_name>;

原文:https://www.cnblogs.com/zhaoshujie/p/15259387.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!