数据库优化的论文中出现的五种属性JOIN连接,EQUAL,RANGE,GROUP BY,ORDER BY

• J: attributes that appear in JOIN conditions.
• EQ: attributes that appear in EQUAL conditions.
• RANGE: attributes that appear in RANGE conditions.
• O: attributes that appear in GROUP BY, ORDER BY clauses.
• USED: attributes that appear in this query.

JOIN:JOIN子句用语将来自两个或者多个表的行结合起来,在实际的数据库的应用中经常需要从多个数据表中进行数据的读取,这时候就可以使用SQL语句中的连接(JOIN)子句进行操作,在多个数据表中进行数据的查询。

JOIN有三种连接,

        (1)内连接,等值连接:INNER JOIN

        (2)左连接:LEFT JOIN

        (3)右连接:RIGHT JOIN

Equal:

实例:

 

Range:

(1)range分区,根据分区键值的范围对数据行存储到表的不同分区中,多个分区的范围要连续但是不能重叠,默认情况下使用values less than的属性,即每个分区不包含设置的哪个值,上限是取不到的。

(2)使用场景:分区键是日期或者时间

(3)分区注意的事项:

        具有主键或者唯一索引的表,主键或者唯一索引必须是分区键的一部分

        对分区表进行查询,最好在where从句中包含分区键

        结合业务场景选择分区键,避免分区查询。

partition by RANGE(YEAR(login_time))
(
partition p0 values  less than(2014),
partition p1 values  less than(2015),
partition p2 values  less than(2017)
)

GROUP BY:

        groupby,也就是根据by指定的规则对数据进行分组,而所谓的分组就是将一个数据集划分成若干个小区域,然后对这若干个小区域进行数据处理。

实例:

 简单的GROUP BY:

        select 类别,sum(数量)as 数量之和

        from A

        group by 类别

返回的结果如下:(也就是根据group by 将数据分成了小块,然后进行求和)

select 类别, sum(数量) AS 数量之和
from A
group by 类别
order by sum(数量) desc

结果如下,order by就是对by的这个属性进行了排序。

select 类别, sum(数量) as 数量之和, 摘要
from A
group by 类别
order by 类别 desc

上述的操作是不行的,因为select指定的字段

        (1)要么包含在Group by语句的后面,作为分组的依据。

        (2)要么被包含在聚合函数中。

也就是说group by语句中select指定的字段必须是“分组依据字段”,其他的字段如果想出现在select中则必须包含在聚合函数中。

select 类别, 摘要, sum(数量) as 数量之和
from A
group by all 类别, 摘要

会将这两个进行合并,求和数量。

 

 以上转自:SQL中Group By的使用 - 静风铃 - 博客园 (cnblogs.com)

ORDER BY:

                ORDER BY 语句用于根据指定的列对结果集进行排序。

                ORDER BY 语句默认按照升序对记录进行排序。

                如果希望按照降序对记录进行排序,可以使用 DESC 关键字。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值