sql 常用小总结
闲来无事,自己总结了一下平时业务中常用的sql,网上有很多。但自己总结出来的才是真自己的
添加:insert into XXX values(XXX,XXX,XXX)
批量添加:insert into XXX values (XXX,XXX,XXX),(XXX,XXX,XXX),(XXX,XXX,XXX)
单个删除:delete from XXX where XXX = XXX
批量删除:delete from XXX where XXX in (XXX)
项目中的例子:delete from XXX where X.id in(:ids) 其中ids是List集合
int delete(@Param("ids") List<String> ids);
但更多时候,项目都是采用逻辑删除,即改变删除标志位。那就变成sql逻辑实际上批量修改了
int update XXX set X.status = :status where X.id in (:ids)
int delete(@Param("status") String status, @Param("ids") List<String> ids);
修改:update XXX set XXX where XXX =XXX
批量修改:update XXX set XXX = XXX where XXX in (XXX)
查询:
常用关键字:
多表: left join XXX on XXX
right join XXX on XXX
inner join XXX on XXX
分组:group by XXXX having XXXX
统计:count(XXX)
去重:distinct(XXX)
排序:order by XXX desc ,order by XXX asc
平均值:avg(XXX)
最值:max(XXX) min(XXX)
(pgsql )限制:offset 数值1 limit 数值2 (数值1表示从第几条开时,数值2表示显示几条)
约值:round(XXX)
if用法:if(表达式1,表达式2,表达式3):如果表达式1为true,取表达式2,否则取表达式3
when case用法:
case
when XXX then XXX
else XXX
end
当有多个选择结果,或者是只有一个选择结果。
建议使用when case