达梦数据库SQL学习

数据来源于达梦数据库安装实例时的示例库DMHR

一 分组函数

分组函数做用于一组数据、并对于一组数据返回一个值

常见的分组函数:(聚合函数)

AYG、COUNT、MAX、MIN、SUM...

select column from table group by column

例如:

使用||连接字段

二 过滤分组

使用HAVING过来分组:

1、行已经被分组

2、使用了组函数

3、满足HAVING子句中条件的分组将被显示

 having 相当于where  但where是针对某个列,而HAVING针对的是分组后某个值,并且需要配合group by   聚合函数使用

cube 和roolup

cube常用于统计分析,主要用于对分组列以及分区列的所有子集进行分组,输出所有分组结果。

通常配合group by使用,having也可以

举例:

rollup

只对左侧第一个列分组进行合计

 连接查询

 内连接/外连接

在内连接中只返回满足连接条件的数据

语法:cross join/nature join/join table2 using(column_name)/join table2 on (table1.column_name=table2.column_name)

常见用法:
select a.EMPLOYEE_ID, a.EMPLOYEE_NAME, a.DEPARTMENT_ID, b.DEPARTMENT_NAME
from dmhr.employee a join dmhr.department b 
on a.DEPARTMENT_ID = b.DEPARTMENT_ID;

 

外连接:两个表在连接过程中除了返回满足连接条件的行以外还返回左或者右表中不满足条件的行,这种连接称为左连接或者右链接

设置值,便于后面进行操作

左外连接:

select a.EMPLOYEE_ID, a.EMPLOYEE_NAME, a.DEPARTMENT_ID, b.DEPARTMENT_NAME

from dmhr.employee a left join dmhr.department b 

on a.DEPARTMENT_ID = b.DEPARTMENT_ID;

 右外连接

insert into dmhr.DEPARTMENT(DEPARTMENT_ID, DEPARTMENT_NAME)
values(999999, 'TEST');
commit;

插入数据,方便操作

上图是插入数据后的左连接,但是没有显示

 

右连接后,就有数据。如果是左关联会显示左关联表的全部信息,如果是右关联则是右表的全部信息 

count

上图中是count(a.employee_id)显示的是0

如果count(*):

全外连接:

两个表在连接过程中除了返回满足连接条件的行以外还返回两个左或者右表中不满足条件的行

全部信息都显示了

更多信息前往达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值