mysql基本知识总结与Oracle的区分

一、mysql自动增长主键设置

1:创建表,设置表主键id自动增长,默认自动增长的起始值为1开始。

2:当表数据不为空的时候,重新去修改自动增长id开始值,mysql会主动去核对你设置的起始值是否是当前数据库已有id的最大值+1; 若是则修改成功,若不是则修改不成功 (默认还是id最大值+1)

3:要设置自动增长为1开始,需要清空表数据才行。alter table table_name AUTO_INCREMENT=1

4: 若每次直接在数据库里面插入数据,则会自动的去修改当前表的自动增长起始值(设置自动增长起始值为当前插入成功的数据的id)

 

二、SQL总结

1.1  update更新select结果集的数据  (update更新select容易导致锁表)

去掉重复的借据business_key

update plms_job_data set status='1' where task_id  in ( 
select task_id from (select task_id from plms_job_data where type='repayNotice' and `status`='-1' GROUP BY business_key HAVING count(business_key)>1 )as t  );
 

三、Oracle总结

2.1 oracle--分组后获取每组数据第一条数据

通过客户id批量查询合同编号( 按照bi.finishdate降序) 

SELECT contractserialno FROM(
       SELECT ROW_NUMBER()OVER(partition by bi.customerid order by bi.finishdate desc) rn , bi.contractserialno 
       from ph_balanceinfo bi 
       where bi.customerid in ('CT20141010000016') 
)WHERE rn = 1;

ROW_NUMBER() OVER(partition by col1 order by col2) --表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内是连续且唯一的)。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值