SQL数据库学习之路(六)
发布日期:2021-06-30 16:33:43 浏览次数:2 分类:技术文章

本文共 1152 字,大约阅读时间需要 3 分钟。

一、连接查询:当需要的结果需要从多张表中取时

关键问题:哪些表、关系(学生表的Id联系到班级表的Id)

内连接:inner join,两表中完全匹配的数据。

左外连接:left out join,两表中完全匹配的数据,左表中特有的数据,右表补全。

右外连接:right out join,两表中完全匹配的数据,右表中特有的数据,左表补全。

完全外连接:full out join ,两表中完全匹配的数据,左表中特有的数据,右表中特有的数据。

select *from gg inner join TextInfo on gg.Id=TextInfo.Id   --将gg表中的Id列和ClassId表中的ClassId列对应

   二、聚合函数:对行数据进行合并

sum(综合)、avg(平均值)、count、max(最大值)、min(最小值)

一般是对数字类型的列进行操作

一条查询中可以同时写多个聚合函数,但不能与普通列混写。

聚合函数中的full问题:不参与运算。

select count(*) from TextInfo     --查询TextInfo中有多少行

select count(*) from TextInfo where Id=3    --查询TextInfo中Id为3的有多少行

select max(Id) from gg   --查询gg表中Id最大的行的Id

三、开窗函数:over()

将统计出来的数据分布到原表的每一行中。

结合聚合函数、排名函数使用。

select gg.*,avg(Id) over() from gg  --在gg表中新增一列平均值,加上over()

四、分组:group by 列名1,列名2.....

聚合函数一般结合分组使用,对分组内的数据进行统计。

根据指定列进行分组。

分组后条件筛选:having...

select sex,count(*) from TextInfo group by sex  --将数据按照sex(性别)来分组,再统计每组人数

 

 

 

select sex,pwd,count(*) from TextInfo group by sex,pwd  --将数据按照sex(性别)来分组,在进行pwd分组,最后统计每组人数

--统计Id大于3的姓名为玄武的人数

select count(*) from gg where [Name]='玄武' and Id>3 group by [Name] 

 

总结:完整select语句执行过程及执行顺序

select distinct top n *

from t1 join t2 on ...join t3 on ...

where ...

group by ...having....

order by...

 

转载地址:https://kongchengji.blog.csdn.net/article/details/83381920 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:JavaScript学习(一)——简介
下一篇:SQL数据库学习之路(五)

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月24日 04时31分10秒