前面二部分零散的记录了一些学习日记,这部分主要记录一点之前了解甚少的sql语句技巧,以备查阅。古人曰:好记性不如烂笔头,所以看到的sq语句则用这种方式记录下,以便举一反三,真正在工作中能用上。
今日早上看了一篇反思,从中学到了很多!觉得很多观点很有道理,学习在于积累,坚持,计划相结合,没有什么能一触而就的,只能不断学习,不断积累,才能突破自己,所以相对于任何事情来说,学习的成本是最小的,因为我们每时每刻都可以学,而且学习的资源很多,最重要的是我们要把学习的内容记载在心里。学习不是为了炫耀和挣钱,是为了增加自己的充实度,增加自己的内涵,所以希望我们每个人在学习的过程中一定要坚持,而且有所突破,有所进步,致我们一起失去的青春,大龄青年们一起加油。
关于sql的学习记录,还有很多需要学习的部分!一、查询语句
1、case 的用法
( 1)示例(case和聚合函数一起使用): select county, sum ( case when sex = ' 1 ' then pp else 0 end ), sum ( case when sex = ' 2 ' then pp else 0 end ), from a group by county -- ------查询一个表中,按国家汇总,男人数占多少,女人数占多少的示例,本来用union也可以完成,但是这样会消耗2个select,对性能不太好! ( 2) 示例2:查询充值表中,每天每种充值方式的总金额,如下所示: select paytime as ' 支付时间 ', sum( case when paytype = 0 then money else 0 end ) as ' 支付宝 ', sum ( case when paytype = 1 then money else 0 end ) as ' 手机短信 ' sum( case when paytype = 2 then money else 0 end ) as ‘银行卡’ sum ( case when paytype = 3 then money else 0 end ) as ' 电话卡 ' from 充值表 group by paytime
2、TOP的用户,在oracle不支持 TOP的查询,刚试了下,竟然报错,所以只能用其他语句了
1、select * from A where rownum<10 order by rownum asc //asc是升序 ASCE 是降序
3、 distinct查询重复的数据只显示一条,此sql语句很实用。
4、Union和Union all的用法
- Union,对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
- Union All,对两个结果集进行并集操作,包括重复行,不进行排序;
- 可以在最后一个结果集中指定Order by子句改变排序方式。