1.基础语句
sql的执行顺序
手写顺序
实际执行的顺序
理解清楚实际执行的顺序,我们取数的逻辑会更加清晰,取数效果也会更加高效和真实。
sql的关键字使用
常使用的关键字有,group by, order by ,where, join,having, like,distinct,聚合等等,每个关键字都有其独特的用处,下面结合上图的sql执行顺序进行介绍。
join(多表连接)
业务场景一: 两张表,订单表存放着用户的购买信息,用户信息表存放着用户的个人信息,两张表里用户ID是主键,现在想对一定时期内的平台销售情况进行用户层面的分析,则需要将两张表连接起来。
连接类型有内连接,左连接,右连接等,on关键字后接连接条件,条件可以是单字段,多字段,函数等,匹配类型可以是一对一匹配,一对多匹配。
where(条件筛选)
业务场景一ing,要分析在11月份下单,且用户所在的城市是北京、上海、深圳、广州其中之一的销售情况,就要用where 进行筛选,对订单表进行时间筛选,对用户表进行所在地筛选。
group by (分组聚合分析)
业务场景一ing,在上面的基础上对不同城市,男女的月花销做统计分析,就要用分组函数了,即group by 城市,性别
group by 常和聚合函数如 sum,avg,max,count等搭配使用,呈现出的是分组区间聚合后的统计值,有时需要对分组区间进行细节性统计,这个时候就要用到功能强大的窗口函数了(见后文)。
having(筛选)
having筛选与where筛选的不同是,having是对新的字段进行筛选,where是对原有的字段进行筛选。
业务场景一:基础之上,想查看月花销在10000元之上的用户,则需要用having进行筛选一下,即having 月花销>10000
order by (排序)
对查询出的结果基于某种顺序进行展示,如业务场景一:按月花销从大到小降序排序,即order by 月花销 desc,sql默认是按照升序排序。排序依据可以有多个,即主次。如order by A desc,B
limit (取有限行)
有时,我们不需要查看所有的行,比如业务场景一,我们想查看月花销排在前三的群体是哪些,即limit 3,如果单独查看第三位的群体,语句为limit 2,1 ,指从第二位往后数一位。
其他关键字
like
模糊查询,用来查含有某个特征的信息,如查询姓名中带有磊字的用户,语句是 where name like(’%磊%‘)
distinct,去重
is null 判断null值
未完,待续