第1课:使用SQL探索产品数据

1、什么是SQL?

SQL,Structured Query Language结构化查询语言是目前对数据库进行查询和编辑的主流编程语言。

通常来说,一个数据库会包含一个或多个表,在SQL的数据表中,每一行也会被称为一个记录,而每一列也会被称为字段。

2、关键的数据处理环节

3、SQL学习的注意事项

  • 标点符号只可以使用英文
  • SQL语句以英文分号(;)结尾
  • 表名字段名一定不能写错
  • SQL语句对于大小写不敏感

第2课:我们获得的数据是什么样子的?

1、使用DESC语句 获取表中数据字典

数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑等进行定义和描述。DESC 语句

  • 作用:DESC 语句用于显示数据字典
  • 语法:DESC 表名
  • 举个栗子: 显示启动表的数据字典
    DESC run_info;

2、使用SELECT查询数据

select 语句用于从表中选取数据,结果被存储在一个结果表中。

SELECT 语句

  • 作用:SELECT 语句用于查询数据表中的数据
  • 语法:SELECT 字段名 FROM 表名
  • 举个例子:查询用户表中所有字段数据 select * from user_id_info;

3、使用LIMIT语句查询特定行数数据

在上述select 的语句结尾部分再加上SQL中的限制语句limit语句

LIMIT 语句

  • 作用:限制查询数据的行数。
  • 语法:SELECT 字段名 FROM 表名 LIMIT 行数;
  • 举个例子:查询用户表中前五行数据 select * from user_id_info limit 5;

第3课:如何用WHERE筛选产品功能?

1、使用WHERE筛选数据

WHERE 语句

  • 作用:WHERE 语句对数据按照特定的条件去进行筛选。
  • 语法:SELECT 字段名 FROM 表名 WHERE 条件
  • 语句思路

第一步:确定查询的表与查询的字段

第二步:撰写条件语句

确定筛选条件

撰写对应的条件语句

第三步:将查询语句补充完整


第4课:如何用ORDER BY进行排序 ?

RDER BY 语句

  • 定义:可以实现将显示结果按照特定字段进行排序的效果。
  • 语法:SELECT 字段名 FROM 表名 ORDER BY 字段名。
  • 补充知识:ORDER BY语句默认为升序排序,如要降序排序,则在字段名后加DESC。

第5课:如何用CASE WHEN分组?

CASE WHEN 语句

  • 作用:根据是否满足语句中的判断条件会落入不同的取值,是对数据进行重新分类整理和命名。
  • 语法:
    CASE
    WHEN 条件1 THEN 结果1
    WHEN 条件2 THEN 结果2
    END

    • CASE 为起点
    • WHEN...THEN... 成对出现
    • END 作为终点

AS 语句

  • 作用:对变量进行命名以及重命名
  • 语法:原变量名 AS 新变量名
  • 通常 CASE WHEN 语句后会通过 AS 给长长的语句起一个小名

今日份小任务:

答案1:

SELECT m_date,m_use_time,m_function,
CASE
WHEN m_function='install' THEN '安装'
WHEN m_function='uninstall' THEN '卸载'
ELSE '功能'
END AS a
FROM use_function_info
ORDER BY m_date,m_use_time desc;

答案2:

SELECT m_date,m_use_time,m_function,
CASE
WHEN m_function='install' THEN '安装'
WHEN m_function='uninstall' THEN '卸载'
WHEN m_function IN ('function_a','function_b','function_c') THEN '功能'
END AS a
FROM use_function_info
ORDER BY m_date,m_use_time desc;


第6课:如何进行数据清洗?

在数据清洗的环节,我们将会使用到 UPDATE 以及 DELETE 语句。

数据清洗环节

1、UPDATE语句

  • 作用:更新表中具体字段的信息
  • 语法:UPDATE 表名 SET 字段='更新内容' WHERE 条件

第一步:数据检查

使用SELECT语句检查gender是否存在异常值

使用DISTINCT对数据去重(DISTINCT在之后会详细讲解)

SELECT DISTINCT gender from user_id_info;

运行后,发现异常值:男人

第二步:查看异常数据

使用WHERE语句,筛选出异常数据

在这里,就是筛选出gender为男人的数据

SELECT * FROM user_id_info

WHERE gender='男人';

第三步:数据清洗

使用UPDATE语句进行字段更新

UPDATE 表名 SET 字段='更新内容' WHERE 条件

UPDATE user_id_info

SET gender='男'

WHERE gender='男人';

第四步:数据复查

再次使用SELECT语句,查看异常值是否被清洗

SELECT DISTINCT gender from user_id_info;

2、DELETE语句

  • 作用:删除表中具体字段的信息
  • 语法:DELETE FROM 表名 WHERE 条件

DELETE VS UPDATE

  • DELETE:当数据非常多,或我们不清楚正确的值时,就直接使用DELETE将异常值删除
  • UPDATE:当知道正确的值或者删除异常值对数据整体有影响时,就使用UPDATE进行更新

第7课:如何用COUNT计算

1、COUNT函数的定义

  • 作用:COUNT 函数是用来统计个数的函数,它的主要功能是查询满足条件的记录总数,也就是行数。
  • 语法:COUNT(字段名)。

2、COUNT函数的使用场景

  • COUNT 常见的使用场景有2个:

    • 场景一:统计数据的总行数—— COUNT(*)

      • COUNT(*)的作用和SUM(1)一致
    • 场景二:统计特定字段的个数——COUNT(DISTINCT 字段名)

今日份小任务:

答案1:

SELECT COUNT(DISTINCT user_id)
FROM use_function_info
WHERE m_function='install';

SELECT COUNT(DISTINCT user_id)
FROM use_function_info
WHERE m_function='uninstall';

答案2:

SELECT m_function,COUNT(DISTINCT user_id)
FROM use_function_info
WHERE m_function IN ('install','uninstall')
GROUP BY m_function;

3、SUM / AVG / COUNT 函数

  • SUM 与 AVG 的作用与语法

    • SUM——求和;AVG——平均值
    • 语法:SELECT SUM(字段名),AVG(字段名) FROM 表名;
  • SUM 与 COUNT 函数的区别
    • COUNT 函数:统计对应字段名符合条件的行数
    • SUM函数:对应字段数值求和

今日份小任务:

  • 从功能表中,计算功能C的人均耗时与平均耗时
  • 功能C和功能A、功能B在使用耗时上有什么不同?

答案1:

SELECT m_function,SUM(m_use_time)/COUNT(DISTINCT user_id),AVG(m_use_time),COUNT(*)/COUNT(DISTINCT user_id)
FROM use_function_info
WHERE m_function='function_A';

SELECT m_function,SUM(m_use_time)/COUNT(DISTINCT user_id),AVG(m_use_time),COUNT(*)/COUNT(DISTINCT user_id) FROM use_function_info WHERE m_function='function_B';

SELECT m_function,SUM(m_use_time)/COUNT(DISTINCT user_id),AVG(m_use_time),COUNT(*)/COUNT(DISTINCT user_id) FROM use_function_info WHERE m_function='function_C';

答案2:

SELECT m_function,SUM(m_use_time)/COUNT(DISTINCT user_id),AVG(m_use_time),COUNT(*)/COUNT(DISTINCT user_id)
FROM use_function_info
WHERE m_function IN ('function_a','function_b','function_c')
GROUP BY m_function;


第8课:如何用GROUP BY统计?

1、GROUP BY 语句

  • 作用:GROUP BY语句可以实现按照特定字段包含的分类进行汇总计算的效果(比如求最小值,最大值,平均值、求和等等)
  • 语法:SELECT 函数(字段名) FROM 表名 GROUP BY 字段名

拓展知识:

  • ORDER BY语句的书写顺序在GROUP BY语句之后

今日份小任务:

  • 从功能表中,计算不同日期、不同功能的使用次数以及使用用户数。
  • 代码思路:
    • 搭建代码框架
    • 找到功能表 use_function_info
    • 筛选出使用功能的数据 WHERE...IN
    • 按照日期、功能聚合数据 GROUP BY
    • 查询 日期,功能,使用次数,使用用户数

SELECT m_date,m_function,COUNT(*),COUNT(DISTINCT user_id)
FROM use_function_info
WHERE m_function IN ('function_a','function_b','function_c')
GROUP BY m_date,m_function;


第9课:如何用JOIN查询多个数据表?

1、JOIN 语句

  • 作用:JOIN语句的作用是将两张数据表进行拼接。
  • 语法:SELECT 字段1 FROM 表1 JOIN 表2 ON 表1.字段2 = 表2.字段2
    • JOIN的两边是需要进行链接的两张表
    • ON后面的部分则是通过哪个字段去进行表与表的连接
  • 比较常见的3种JOIN语句是JOIN/LEFT JOIN以及RIGHT JOIN。

a JOIN b

  • 同时匹配JOIN语句左边与右边的表的全部记录。
  • 生成的是两个表的交集。

a LEFT JOIN b

  • a表为主表
  • 产生a表的完全集
  • b表中匹配的则有值,没有匹配的则以null值取代

a RIGHT JOIN b

  • b表为主表
  • 产生b表的完全集
  • a表中匹配的则有值,没有匹配的则以null值取代。

到这里SQL部分的关键知识点就差不多了,想到学好还是要不断练习、练习、再练习的。

比较详细的SQL语句可以查看以下:

Venus:SQL初探:SQL基础与查询语句​zhuanlan.zhihu.com

Venus:SQL高级语句​zhuanlan.zhihu.com

处理字典值是把字典放内存还是用sql处理_第二周:MYSQL数据库入门,提升你的数据处理效率...相关推荐

  1. 处理字典值是把字典放内存还是用sql处理_python基础~元祖与字典原理

    生成器推导式创建元组:,生成器推导式与列表推导式类似,只是生成器推导式使用小括号.不管什么方式使用,元素访问结束后,如果需要重新访问其中的元素,必须重新创建该生成器对象. 元组特点:1.不可变序列 2 ...

  2. mysql创建数据库没有默认值报错_详解Mysql数据库date, datetime类型设置0000-00-00默认值(default)报错问题...

    现象:MySQL5.7版本之后,date, datetime类型设置默认值"0000-00-00",出现异常:Invalid default value for 'time' 原因 ...

  3. mysql爆内存_线上MySQL数据库机器内存爆掉原因分析与解决

    本文主要向大家介绍了线上MySQL数据库机器内存爆掉原因分析与解决,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 现象: 阿里金融某业务的MySQL机器的内存每隔几天就会增长,涨 ...

  4. 处理字典值是把字典放内存还是用sql处理_SQL索引及其底层实现

    准备 1.对关系型数据库有基本的了解     2.对树,平衡二叉树有了解. 目录 一.什么是索引以及为什么要用索引 二.索引的分类 三.实现原理 四.物理存储 五.索引的优化  在实际的面试中,遇到数 ...

  5. es 修改ik和同义词插件源码连接mysql实现字典值同义词热更新

    问题描述: 上周运营反馈商城搜索词搜不到 排查发现es ik分词器的ik_smart对搜索词的分词结果不是ik_max_word对索引文档字段值分词结果的子集 即细粒度分词结果不完全包含粗粒度分词结果 ...

  6. 第二周python作业——字符串、字典、列表

    第二周作业 字符串 基础 进阶 字典 列表 1. 基础题 2. 进阶题 3. 列表推导式 第二周作业 选择题 填空题 编程题 字符串 基础 输入一个字符串,打印所有奇数位上的字符(下标是1,3,5,7 ...

  7. python字典嵌套列表_Python 字典 列表 嵌套 复杂排序大全

    https://blog.csdn.net/ray_up/article/details/42084863 一: 字典排序 解析: 使用sorted 方法, 排序后的结果为一个元组. 可以字符串排序( ...

  8. 如何计算MySQL数据库占用内存

    简介 估计有很多开发,或者刚刚接触MySQL数据库的运维人员,不太清楚,如何去计算MySQL数据库占用内存总大小. 估计有时候,还会奇怪,明明设置的buffer pool size不大,数据库却因为操 ...

  9. python字典内存分析_(一)Python入门-3序列:18字典-核心底层原理-内存分析-查找值对象过程...

    一:根据键查找"键值对"的底层过程 明白一个键值对是如何存储到数组中的,根据键对象取到值对象,理解起来就 简单了. >>> a.get("name&qu ...

最新文章

  1. Android之Adapter用法总结
  2. getprivateprofilestring读不到数据_从零到千万用户,我是如何一步步优化MySQL数据库的?...
  3. C、C++中的逻辑运算符
  4. VTK:标签顶点和边用法实战
  5. 按功能而不是按层打包课程
  6. 比Java语言更好,为什么Java比其他解释语言具有更好的性能?
  7. 高考填报志愿计算机操作技巧,填报高考志愿技巧和方法有哪些
  8. leetcode 137[转]
  9. 不全屏放映ppt的方法
  10. Windows workflow foundation之旅(三)——指南2(创建状态机工作流)(上)
  11. 一个串口连接另外两个串口的设计
  12. 华为手机usb调试已打开,adb devices不显示设备
  13. Ubuntu Desktop LTS - 快速显示桌面
  14. html去除背景颜色怎么设置,word文档背景颜色怎么去掉,文档背景颜色怎么去掉
  15. qemu教程_QEMU实例教程
  16. USYD悉尼大学DATA 2002 【Module 1】: Categorical data 学习笔记(week1-week3)
  17. fragment android:onclick,Android Fragment的布局中使用android:onClick 属性时需要注意的问题...
  18. html5网页制作技巧,HTML5 网页制作技巧
  19. 微信小游戏 缓存目录
  20. ad中按钮开关的符号_电工新手必经之路:按钮开关结构原理及安装

热门文章

  1. WCF 第一章 基础 完成一个WCF服务客户端
  2. JarvisOJ Basic 熟悉的声音
  3. JDK源码分析:hashCode()方法
  4. spring相关资源
  5. AndroidStudio_安卓原生开发_获取系统S/N序列号_实现在springboot服务端_设备远程保活监控---Android原生开发工作笔记159
  6. AndroidStudio安卓原生开发_UI高级_StateListDrawable状态选择器_按钮按下和抬起显示不同颜色---Android原生开发工作笔记124
  7. Elasticsearch--高级-分词 安装ik分词---全文检索引擎ElasticSearch工作笔记020
  8. 基于Spring Security的认证方式_SpringBoot认识_Spring Security OAuth2.0认证授权---springcloud工作笔记121
  9. 数据库工作笔记002---新建mysql数据库的时候_对字符集和排序规则的选择
  10. Android学习笔记----18_在SQLite中使用事务