这里有新鲜出炉的 Mysql 教程, 程序狗速度看过来!
Mysql 关系型数据库管理系统
MySQL 是一个开放源码的小型关联式数据库管理系统, 开发者为瑞典 MySQL AB 公司 MySQL 被广泛地应用在 Internet 上的中小型网站中由于其体积小速度快总体拥有成本低, 尤其是开放源码这一特点, 许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库
这篇文章主要介绍了如何使用 mysql 完成 excel 中的数据生成的相关资料, 需要的朋友可以参考下
Excel 是数据分析中最常用的工具, 本篇文章通过 mysql 与 excel 的功能对比介绍如何使用 mysql 完成 excel 中的数据生成, 数据清洗, 预处理, 以及最常见的数据分类, 数据筛选, 分类汇总, 以及数据透视等操作本篇文章我们介绍第 5,6,7 部分内容, 数据提取, 数据筛选以及数据汇总及透视
5, 数据提取
第五部分是数据提取, 也是数据分析中最常见的一个工作下面介绍每一种函数的使用方法
按列提取数据
# 按列提取 SELECT city FROM data1;
按行提取数据
- # 按行提取
- SELECT * FROM data1 WHERE city='beijing';
按位置提取数据
- # 按位置提取
- SELECT * FROM data1 LIMIT 2,5;
按条件提取数据
- # 按条件提取并计算
- SELECT AVG(price) FROM data1 WHERE city='beijing' AND age<25;
6, 数据筛选
第六部分为数据筛选, 使用与, 或, 非三个条件配合大于, 小于和等于对数据进行筛选, 并进行计数和求和与 excel 中的筛选功能和 countifs 和 sumifs 功能相似
按条件筛选 (与, 或, 非)
Excel 数据目录下提供了筛选功能, 用于对数据表按不同的条件进行筛选 mysql 中使用 WHERE 完成筛选操作, 配合 sum 和 count 函数还能实现 excel 中 sumif 和 countif 函数的功能
- # 数据筛选 AND
- SELECT * FROM data1 WHERE city='shanghai' AND age>30;
- # 数据筛选 IN
- SELECT * FROM data1 WHERE city IN ('shanghai','beijing');
- # 数据筛选 OR
- SELECT * FROM data1 WHERE city='shanghai' OR age>30;
- # 数据筛选 (不等于)
- SELECT * FROM data1 WHERE city !='beijing';
- # 数据筛选 like(模糊筛选)
- SELECT * FROM data1 WHERE city LIKE 'bei%';
- # 筛选后计数 countif
- SELECT COUNT(id) AS id_count FROM data1 WHERE city='shanghai'AND age>30;
- # 筛选后求和 sumtif
- SELECT SUM(price) AS price FROM data1 WHERE city='beijing' AND age<30;
- # 筛选后求均值 averageif
- SELECT AVG(price) AS avg_price FROM data1 WHERE city !='beijing';
7, 数据分类汇总及透视
第七部分是对数据进行分类汇总, Excel 中使用分类汇总和数据透视可以按特定维度对数据进行汇总, mysql 中使用的主要函数是 GROUP BY 和 CASE WHEN 下面分别介绍这两个函数的使用方法
分类汇总
Excel 的数据目录下提供了分类汇总功能, 可以按指定的字段和汇总方式对数据表进行汇总 mysql 中通过 GROUP BY 完成相应的操作, 并可以支持多级分类汇总
GROUP BY 是进行分类汇总的函数, 使用方法很简单, 制定要分组的列名称就可以, 也可以同时制定多个列名称, GROUP BY 按列名称出现的顺序进行分组同时要制定分组后的汇总方式, 常见的是计数和求和两种
- # 单列分类汇总
- SELECT city,COUNT(id) AS id_count FROM data1 GROUP BY city ORDER BY id_count;
- # 多列分类汇总
- SELECT city,colour,ROUND(SUM(price),2) AS id_count FROM data1 GROUP BY city,colour;
数据透视
Excel 中的插入目录下提供数据透视表功能对数据表按特定维度进行汇总 mysql 中没有直接提供数据透视表功能但通过 CASE WHEN 函数实现同样的效果
数据透视表也是常用的一种数据分类汇总方式, 并且功能上比 GROUP BY 要强大一些下面的代码中设定 city 为行字段, colour 为列字段, price 为值字段, 计算 price 金额
- # 查看原始数据表
- SELECT * FROM data1;
- # 使用 CASE WHEN 进行数据透视
- CREATE VIEW data_Items AS (
- SELECT
- data1.city,
- CASE WHEN colour = "A" THEN price END AS A,
- CASE WHEN colour = "B" THEN price END AS B,
- CASE WHEN colour = "C" THEN price END AS C,
- CASE WHEN colour = "F" THEN price END AS F
- FROM data1
- );
- # 查看结果
- SELECT * FROM data_Items;
- # 对字段进行求和汇总
- CREATE VIEW data1_Extended_Pivot AS (
- SELECT
- city,
- SUM(A) AS A,
- SUM(B) AS B,
- SUM(C) AS C,
- SUM(F) AS F
- FROM data_Items
- GROUP BY city
- );
- # 查看结果
- SELECT * FROM data1_Extended_Pivot;
- # 对空值进行处理
- CREATE VIEW data1_Extended_Pivot_Pretty AS (
- SELECT
- city,
- COALESCE(A, 0) AS A,
- COALESCE(B, 0) AS B,
- COALESCE(C, 0) AS C,
- COALESCE(F, 0) AS F
- FROM data1_Extended_Pivot
- );
- # 查看数据透视结果
- SELECT * FROM data1_Extended_Pivot_Pretty;
来源: http://www.phperz.com/article/18/0225/360727.html