表格的查询

表格的查询

一、内连接
现在所学的联表查询暂时分为内连接和外连接,其中外连接里也分左连接和右链接,一般情况下用的比较多的就是内连接,内连接的用法也是比较简单的和比较好理解的。先看一张内连接的查询方式的图,请看以下图片。
在这里插入图片描述
简单解释一下这张图的内连接语句描述:Linq使用join on对两张表进行连接查询。join后面接的是跟主表链接的表的新名称,这个新名称是自命名的(但是一旦自命名后,在之后的select查询中都用这个名字)。in后面接的就是需要跟主表链接的表。而on后面接的是连接两张表的关键字段。
所以内连接可以大概理解为:使用join on将主表和附表进行链接,查询这两张表公有的字段。
二、外连接(左连接)
外连接是在内连接的基础上的,想要外连接首先也需要至少有一张表和住表进行联表的。先看一张外连接(左连接)的查询方式的图,请看以下图片。
在这里插入图片描述
根据上图可以看出,这个做外连接前先做一个内连接,联表之后再into后面接的就是这张表的新名字,当然一旦重新自命名后,在之后的select查询中都用这个名字(在后面的select new查询中也可以看出来)。在select new查询中的红框里的内容就是左连接的查询方式。
其实这个左连接大概就是对附表的字段进行查询,也可以理解为就是不查询两张表得到公有字段,只查询附表的字段,并且也是可以根据附表的字段进行一些筛选和排序的操作。这个外连接也有可能会出现查询到的内容为0的情况,这个情况就是查询别的表的字段的时候有些数据为空或者数据不符合条件,所以会显示为0。
三、分组查询
分组查询跟内连接有一点点像,但是分组查询不需要联表,单表就可以了,至于其他的操作都是差不多的。先看一张分组查询的查询方式的图,请看以下图片。
在这里插入图片描述
简单解释一下上图的语句描述:Linq使用group by进行分组,上图是按UserID用户ID用倒序的方式来查询出用户最高的成绩信息。
上图中的group by分组语法:“group tbAchievement by tbAchievement.UserID into tbStudent” 表示对tbAchievement按UserID字段进行分组,into后面接的就是分组后的新名字,其结果命名为tbStuAchievement,这里注意一下,一旦重新命名,tbAchievement的作用域就结束了,所以,最后select查询时,只能select查询 tbStuAchievement。
在select查询中是可以对字段进行一些循序的筛选的。在查询时对字段的值的筛选的方法有以下几种:
OrderBy对值进行顺序的排序
OrderByDescending()对值进行倒序的排序
Max()求最大值
Min()求最小值
Sum()求和
Avg()求平均数
Count()统计数据条数
四、总结
在这里插入图片描述根据现在所学的内容查询数据可以有联表查询和分组查询,联表查询有内连接和外连接,外连接有左连接和右链接。此文档暂时简单的解释了一下内连接、外连接(左连接)和分组查询。
关于联表查询,其实就是顾名思义,就是将表用join in连接起来对表的查询,注意一下不是所有的表都可以做联表查询的。怎么样的表可以做联表查询呢?是其中一个表里要有另一个表的主键id才可以进行联表查询。对有另一个主键id的那个表来说,这些主键id在这张表上都叫外键id。其实联表查询就像上图中所看到的两个圆相交的“c”一样,联表查询其实查询的就是两张表的公共字段,当然联表查询也可理解为内连接。
关于外连接,就像上图中的两个圆“A”和“B”一样,当然“A”和“B”也代表着左连接和右链接的意思。外连接和内连接的区别就是外连接不是查询两张表的公共字段,而是联表后,主要查询另一张表的字段,并且可以对另一张表的字段进行一些筛选和排序的操作。这个外连接也有可能会出现查询到的内容为0的情况,这个情况就是查询联表后的另外一些表的字段数据的时候,有些数据为空或者数据不符合外连接的筛选条件,所以查询出来会显示为0。
关于分组查询,其实就是对表进行分组后查询。这里可以对表的所有字段为依据来分组,分组后需要给组起个名字,注意一下,一旦重新命名,之前给名字的作用域就结束了,所以,最后select查询时,只能select查询 分组后给的那个名字。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值