百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

产品经理学SQL(二)一天学会用SQL解决业务查询问题

toyiye 2024-06-21 12:35 8 浏览 0 评论

本篇文章意在帮助大家系统地入门SQL,教大家如何解决sql查询任务。

前言

回顾一下,上一篇文章我们已经知道了SQL语言的基本框架,并能完成简单的单表查询和双表连接查询。这篇文章希望能帮助你系统地入门SQL,从而解决产品经理80%的sql查询任务

和上篇的一个小时入门SQL一样,这篇文章的建议学习时间为一天。如果没看过上篇文章或想回顾的可以点击:产品经理学SQL(一)一个小时上手SQL

本文用到的数据库表

为方便学习,我们仍然使用上篇文章用到的学生表student和成绩表sc,为了模拟业务中复杂的查询任务,我们再引入课程表course和教师表teacher。

熟练使用SQL的前提一定是先了解你的数据库表,现在花点时间看看这四张表的字段信息(描述每个字段的意义)和数据样例(给出部分真实数据),关于业务中用到表的结构可以找数据小哥拿。

1. 字段信息

1.1 学生表

Student(SId,Sname,Sage,Ssex)

SId 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别

1.2 课程表

Course(CId,Cname,TId)

CId 课程编号,Cname 课程名称,TId 教师编号

1.3 教师表

Teacher(TId,Tname)

TId 教师编号,Tname 教师姓名

1.4 成绩表

SC(SId,CId,score)

SId 学生编号,CId 课程编号,score 分数

2. 数据样例

2.1 学生表

2.2 课程表

2.3 教师表

2.4 成绩表

SQL的执行顺序与语法顺序

本篇文章关于SQL语法的部分会讲到条件子句(where子句)、分组查询(group by子句和having子句)、结果呈现(order by和limit)和连接查询(left/right/inner join)。

看到这你可能会瞬间头大,但是由于SQL语言是有执行优先级的,这给了我们分块讲解的机会,私以为这也是SQL语言易学的重要原因。

为了解释清楚SQL语言的执行顺序和语法顺序,让我们先看看下面这个Hive单表查询的完整结构。

任何一个单表查询的SQL都可以分解成上述格式,实际上抽象化后的多表连接查询也可以分解成如上格式。从上到下是SQL的语法顺序(即你书写SQL的格式),而SQL真实的执行顺序如下:

举个简单的例子加深理解:SQL的语法顺序就像小说的插叙,而SQL真正的执行顺序就是小说的时间顺序。

通过一个实例复习SQL的执行顺序

上面的讲解可能让你一知半解,在正式介绍各部分SQL语法前我们先通过一个实例复习上面SQL的执行顺序。

例如,有这么一个业务查询任务:在限定学生表学号小于等于6的一批学生中,查询每门课的最高成绩(最高成绩低于70分的课程不显示),然后根据课程最高成绩降序排列取前两条记录。查询的SQL如下:

为方便阅读,下面列出被查询的成绩表sc和查询后的结果:

1. 条件子句——为被查询的表增加限制条件

where sid<=6#限制只查询学号小于等于6的学生成绩

2. 分组查询——实现聚合(group by&函数)限制聚合条件(having)

如果用过数据透视表的话应该比较容易理解分组查询的概念,分组查询一般和聚合函数一起实现,例如查看每个班的平均成绩、查看每个学生的最高成绩或者查看每个班的最低成绩等分组信息。

我们仍然用直观的数据变化来展示分组查询:

group by cid –按照课程分组查看每门课的聚合信息

max(score) –搭配group by子句使用的聚合函数,表示每门课的最高成绩

having max(score) >=70 –对分组后的结果筛选,选取最高成绩>=70的课程

3. 字段选择——select

在group by分组后紧跟着我们会选择需要呈现的字段,为了方便讲解,其实分组查询中呈现的图片已经是select的结果了。

4. 结果呈现——排序(order by )和限制条数(limit)

order by和limit都是为了修改最终呈现结果。order by首先执行,按照某个字段进行排序(desc 关键字表示降序),这部分和excel的排序很相似。最后我们使用limit来修改结果展示的条数。

后续学习

本篇文章的目的主要是帮助非技术人员在初步知晓SQL语句的情况下在一天之内系统入门SQL,从而解决80%的sql查询问题。

但是由于建议学习时间为一整天,全部内容置于一篇文章一方面过于冗长,另一方面影响读者趁热打铁(作者是上班族,更新比较慢哈望谅解~),因此我把一天学会用SQL解决业务查询问题分为上中下三篇

上篇已经介绍了SQL的语法顺序和执行顺序的区别并仔细剖析了SQL的执行顺序;中篇会详细介绍条件子句、分组查询和排序的细节;下篇会介绍表的连接和其他常用关键字:if、case when和ditinct等。

希望学完这三篇后能助你系统地入门SQL~

作者:Tomocat,女朋友是产品经理的数据分析师。

本文由 @Tomocat 原创发布于人人都是产品经理,未经许可,禁止转载。

题图来自 Unsplash,基于CC0协议。

相关推荐

非程序员的其他从业者,三天可入门Python编程,附教程与相应工具

这是一种应用十分广泛的编程语言Python,它打破了只有程序员才能编程的“戒律”,尤其是近年来国家予以Python编程的支持,让这门语言几乎应用到各种工作中。那么对于并不是职业程序员的人,该如何才能快...

008 - 匿名函数lambda-python3-cookbook中文教程

有名函数通过def来定义有一个有名字的函数。defmyfun():return1,2,3...

花了3万多买的python教程全套,现在分享给大家(python全栈)

花了3万多买的Python教程全套,现在分享给大家(Python全栈)文末惊喜记得看完哦。...

花来3万多买的python教程全套,现在分享给大家(python全栈)

花了3万多买的Python教程全套,现在分享给大家(Python全栈)文末惊喜记得看完哦。...

Python3最新版安装教程(Windows)(python3.7.0安装教程win10)

接下来给大家讲解一下python最新安装包的安装教程。·首先大家可以去这里搜索一下我的笔记,大概讲了一下,然后找到它的官网,下载的是windows,可以看一下最新的版本。·选择64位,点击下载就即可了...

笨办法学python3》再笨的人都能学会python,附PDF,拿走不谢

《笨办法学python3》这本书的最终目标是让你起步python编程,虽然说是用“笨办法”学习写程序,但是其实并不是这样的。所谓的“笨办法”就是指这本书的教学方式,也就是“指令式”的教学,在这个过程中...

python3 (1)(python312)

Python3Introduction:LearnthebasicsofPython3programming,withitskeyfeatures,andprovideyo...

Python3 教程-- 3、解释器(python3菜鸟教程官网)

Python3解释器Python解释器Linux/Unix的系统上,Python解释器通常被安装在/usr/local/bin/python3.4这样的有效路径(目录)里。我们可以将路径/us...

《笨办法学python3》再笨的人都能学会python,附PDF,拿走不谢

《笨办法学python3》这本书的最终目标是让你起步python编程,虽然说是用“笨办法”学习写程序,但是其实并不是这样的。所谓的“笨办法”就是指这本书的教学方式,也就是“指令式”的教学,在这个过程中...

入门经典!《Python 3程序开发指南》python学习教程赠送!

《Python3程序开发指南》(????)??嗨!你们的小可爱又来辣,小编自学python时用到的视频学习教程分享给大家~都是非常系统性、非常详细的教程哦,希望能帮助到你!转发文章+私信小编“资料”...

Python3.7最新安装教程,一看就会

一、博主自言随着人工智能的快速发展,python语言越来越受大家的欢迎,博主前段时间先自学了一次,这次再次巩固,顺便分享给大家我遇到的坑。帮助大家学习的时候少走弯路。希望会对大家有所帮助,欢迎留言...

# Python 3 # Python 3 教程(#python3.10教程)

Python3教程Python的3.0版本,常被称为Python3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python3....

Python教父推荐:《Python基础教程》(第3版)

《Python基础教程第3版》包括Python程序设计的方方面面:首先,从Python的安装开始,随后介绍了Python的基础知识和基本概念,包括列表、元组、字符串、字典以及各种语句;然后循序渐进地...

今日精选5篇教程:用Python3带你从小白入门机器学习实战教程手册

正文1:教程标题:英伟达SuperSloMoGithub项目开放作者:英伟达教程摘要:今年6月份,英伟达发布了一份生成高质量慢动作视频的论文——《SuperSloMo:HighQual...

电子书 | 笨办法学 Python 3(笨办法学python3pdf)

本周更新了5本IT电子书资源,同时站内已经有12本Python入门方面的相关电子书,可供新手选择。1、笨办法学Python3本书是一本Python入门书,适合对计算机了解不多,没有...

取消回复欢迎 发表评论:

请填写验证码