sql常用整理

sql执行顺序
其中有一个很重要的思想就是想group by 实现分组之后再分组的基础上进行having num 等操作进行聚合来达到想要的效果。
在这里插入图片描述
一、添加索引:
组合索引要都进行查询才有效,如果是两个索引拼成的组合索引仅仅使用一个是没有效果的。
1.添加PRIMARY KEY(主键索引):

ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 

2.添加UNIQUE(唯一索引) :

ALTER TABLE `table_name` ADD UNIQUE ( `column` ) 

3.添加INDEX(普通索引) :

写法一:ALTER TABLE `table_name` ADD INDEX index_name ( `column` )

写法二:CREATE INDEX index_name ON `table_name`(`column1`,`column2`,`column3`) 

4.添加FULLTEXT(全文索引) :

ALTER TABLE `table_name` ADD FULLTEXT ( `column`) 

5.添加多列索引:

写法一:ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )

写法二:CREATE INDEX index_name ON `table_name`(`column1`,`column2`,`column3`)

SHOW INDEX FROM `table_name`;-- 查询表索引

DROP INDEX index_name ON `table_name`;-- 删除索引

二、常用函数的整理
mysql的拼接和Oracle的字符串拼接方法

mysql:SELECT * FROM course WHERE c_name = CONCAT('语','文')
oracle:  select id_num||'--'||user_name from t_ssouser where user_name =('周'|| '亮')

或者直接使用都支持的函数:concat('周','亮')来进行拼接字符串

替换操作:

select replace('www.163.com','w','Ww')--->WwWwWw.163.com
大概意思就是将www.163.com这个字符串中的所有的w都替换成Ww

交叉表的查询方法

得到bgb_sync中的数据,如果==2则将内容变成1,否则变成0,最后统计计算的和数。
sum(case v.gb_sync 
         when 2 then
	           1
	         else
	           0
	     end) as waitSync 
 

 case v.status
     when '0' then
        '申报未受理'
     when '9' then
        '确认未通过' 
     end status,

三元表达式

AND IF('${开始时间}' !='',ym.time>='${开始时间}' AND ym.time<='${结束时间}',1=1) 
或者用likereplace进行替换拼接操作来实心三元表达式,但是有点麻烦。
举例:ureport2报表工具中的方法(Oracle)
(emptyparam("user_id") == false ? " and us.name Like REPLACE(:user_id,:user_id,\\'%\\'||:user_id||\\'%\\')" : "") 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值