常用sql语句总结

1、

case when else end
select name 姓名,case sex when boy then 男 else 女 end from student;
select name 姓名,case age when 20 then 青年 when 30 then 中年 when 60 then 老年 else 其它 end from age_tbl;

2、

if exists if not exists not exists
if not Exists(select * from Tab1 where name= '') insert into Tab1(ID,name)values ('','');

3、

select * from (select * from tab1);

4、左连接

select * from users as u left join user_account as b [i][b]on[/b][/i] u.user_id=b.user_id;

5、显示连接进程

show processlist;

6、SHOW TABLE STATUS
利用Mysql自带的一个函数语句 "SHOW TABLE STATUS",可以获取当前数据库里的所有表的属性等信息,通常用来做数据库的优化和维护。如果需要指定某一张表的话,可以通过两种方法指定。
一种是网上给出来的:
show table status like 'TableName'
另外就是常见的where语句
show table status where Name ='TableName'

得到的结果集里面有一列AUTO_INCREMENT,是一个Int值变量,获取之后就是下一个要插入的ID了。
7、select LAST_INSERT_ID()
得到最新插入的id值
8.删除一个表的全部内容
TRUNCATE TABLE 表名
9.如:表 test
名称, 时间, 数量
A 2011-8-11 13
A 2011-8-12 14
A 2011-8-12 16
A 2011-8-12 11
A 2011-8-12 16
A 2011-8-12 44
A 2011-8-12 11
B 2011-8-12 11
B 2011-8-13 235
B 2011-8-13 225
B 2011-8-13 245
B 2011-8-13 255
B 2011-8-13 275
B 2011-8-13 285
得到
这里取top 2

A 2011-8-12 44
A 2011-8-12 16
B 2011-8-13 285
B 2011-8-13 275

select 名称,时间, 数量
from
(select row_number() over(partition by 名称 order by 时间 asc) rn,名称,时间, 数量 from tb) a
where rn<3


10.删除表中重复记录,剩余一条

delete from RecommendFoundation
where wid=#value#
and rwid in
(select rwid from RecommendFoundation(nolock) group by wid,RWid having count(*) > 1 and Wid=#value#)
and id not in (select min(id) from RecommendFoundation(nolock) group by wid,RWid having count(*)>1 and Wid=#value#)



11.ibatis

<select id="getSkuList" parameterClass="java.util.ArrayList" resultClass="skuEntity">

select
s.id as id ,
s.pid as pid ,
s.name as name,
case when s.color is null then '' else s.color end as color,
case when s.sale is null then 0 else s.sale end as sale,
case when s.size is null then '' else s.size end as size,
case when s.yn is null then 0 else s.yn end as yn
from sku(nolock) s where s.id
<iterate prepend="in" open="(" close=")" conjunction=",">#[]#</iterate>

</select>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值