聚合/旋转/游标

select b, group_concat(distinct c order by c asc separator ‘:’) result from test group by b;
pivoting 行转为列
primary key(id,attribute) ,同一id下有多条不同attribute数据,把这几条数据合为一条,用attribute1,attribute2…列来表示
unpivoting 列转为行
group by a,b with rollup: 普通group by 有四组,那么这个有7组,a1,null 和a2,null 和null,null,注意:可能有两个a1,null,一个是按a分组,一个是按a,b分组
相当于对a,b分组和对a分组和所有的作为一组合在一起,with rollup后不能用order by
with cube mysql不支持

游标:mysql的存储过程,函数,触发器,事件中使用,先定义游标,再定义handler,游标存储某几列数据
游标特性:可选择不复制结果集,不可更新,单向不可滚动逐行前进

delimiter //
create procedure curTest()
 begin
 declare done int default 0;
 declare b_tmp int ;
 declare c_tmp varchar(45) ;
 // 先游标,后handler定义当无法从游标取出数据如何退出
declare cur1 cursor for select b,c from test;
declare continue handler for not found set done = 1;
// 打开
open cur1; 
read_loop:LOOP
// 循环从游标中取数据
fetch cur1 into b_tmp,c_tmp;
... // 可使用b_tmp,c_tmp 做一些处理
if done 
then leave read_loop;
end if;
END LOOP;
//关闭
close cur1;
end;
//
delimiter ;

call curTest();

游标性能:O(N)的倍数,游标只扫描表一次
mysql-cursor:向前,对底层数据变更不敏感,不可更新

jdbc:满足条件才会用到mysql-cursor
ResultSet特性匹配(向前/滚动,敏感/不敏感,只读/可更新的), jdbcUrl里useCusorFetch(jdbc内解析),fetchSize
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值