Sql基础及优化
文章平均质量分 95
Master_Shifu_
这个作者很懒,什么都没留下…
展开
-
Oracle中多表关联批量插入,批量更新与批量删除
好久没有写文章了,前一阵子确实太忙了,当前已经空闲一段时间,是时候把之前用过的知识进行系统性的总结了。该文章会分为三部分,1.多表关联批量插入2.多表关联批量更新3.多表关联批量删除首先要明白一点,为什么会有批量这一个概念,无非就是数据太多了,在java端把数据查出来然后在按照100-300的批次进行更新太耗性能了,而且写出来的代码会非常的臃肿,所谓好的实现是用最少的,最精简的代码实现需...原创 2019-12-15 12:56:19 · 1406 阅读 · 0 评论 -
Oracle分支控制语句(函数)总结
1 前言:在显示业务中经常会有如果某一个值是 A的情况下执行A条件的查询sql,当这个值是B的时候执行B条件下的查询sql,这样的场景就不得不用到分支控制语句(函数),第一部分 : 三种分支函数基础方法介绍第二部分 : 使用分支函数进行行转列第三部分 : 使用分支函数减少统计时查询表消耗if-then-elsedecode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺...原创 2019-02-24 14:46:50 · 3744 阅读 · 0 评论 -
SQL With As 用法
1.WITH AS的含义WITH AS短语,也叫做子查询部分(subquery factoring),可以定义一个SQL片断,该SQL片断会被整个SQL语句用到。可以使SQL语句的可读性更高,也可以在UNION ALL的不同部分,作为提供数据的部分。对于UNION ALL,使用WITH AS定义了一个UNION ALL语句,当该片断被调用2次以上,优化器会自动将该WITH AS短语所获取的数据...转载 2019-02-23 22:45:05 · 1318 阅读 · 0 评论 -
Oracle各种连接函数总结
1.前言Oracle可用连接函数会介绍以下几个Oracle列转行函数 Listagg()strcat()wmsys.wm_concat()2.Oracle列转行函数 Listagg()2.1最基础的用法:LISTAGG(XXX,XXX) WITHIN GROUP( ORDER BY XXX)用法就像聚合函数一样,通过Group by语句,把每个Group的一个字段,拼接起来。...原创 2019-02-23 18:36:48 · 3355 阅读 · 0 评论 -
限定数据的关联条件放错位置导致Left Join关联连接被破坏成 Inner Join 连接结果
1.前言:当最终影响结果的过滤条件 [ t2.status=1 ] 紧跟where 而不是Left Join 后的ON后的限定条件时,会导致左外连接的查询条件变内连接结果,从而导致Left Join关联连接被破坏成 Inner Join 连接结果2.创建临时查询数据WITH t1 AS ( SELECT '001' AS code, 'aa' AS NAME FROM...原创 2019-02-23 14:35:53 · 1269 阅读 · 0 评论 -
批量更新,保存有效数据,返回有效数据
实例描述:假设 对于某人信息的采集来自于多个途径,有手机,网址,客户端,采集到的信息如下 , 其中,date_type相同代表是同一个人,date_from代表采集的数据来自不同的途径 ,假设后台数据系统管理员会做如下操作,1.查询到所有有效数据,对同属同一个人员的信息的 操作类型改为 "已修改" ,2. 改操作必须修改 该用户下的所有操作类型, 对于数据类型为1的客户,如果只修改了前...原创 2018-10-05 00:40:25 · 1435 阅读 · 0 评论 -
对时间处理的实际使用实例
上一篇讲到 在后端date 和 timestamp处理的区别 本篇来了解一下对时间处理的实际使用实例 (以下代码只是做演示使用,各位看官仅做参考作用 )实例一: 日历接口的前台适配 , 数据库已经查出10月 3,5,7,15有接待数据,没有接待数据默认不展示,但是给前端的数据必须是一个完整的日历格式,而且时间区间范围是 这个月的前15天前到下个月的15号,因此需要在Java中处理时,...原创 2018-10-04 15:34:55 · 317 阅读 · 0 评论 -
Oracle时间戳类型
Oracle时间戳类型 Oracle Databse 9i数据库引入了一种新特性,可以存储时间戳。时间戳可以存储世纪、4位年、月、日、时(以24小时格式)、分、秒。与DATE类型相比,时间戳具有以下优点: ● 时间戳可以存储秒的小数位。 ● 时间戳可以存储时区。 下面介绍时间戳类型。 使用时间戳类型 时间戳有3种类型,如表所示。 ...转载 2018-08-26 00:49:49 · 17687 阅读 · 0 评论 -
oracle存储时间类型 date 和 timestamp区别
一、数据库存储时间用什么类型好数据库存储时间的存储类型大概有3种,varchar2,date 和 timestamp,目前来说date最为普遍,使用varchar2,如果只做展示用,可以选择,但是长远来说,可能存在存储时间格式的差异,因为存储为varchar2,就不存在时间格式校验了,那对于以后维护是一件很可怕的事情,而date对于精度要求只要秒级别的时间是最友好的选择,对于时间精度要求时毫秒...原创 2018-09-01 21:15:59 · 32615 阅读 · 2 评论 -
ORA-12519: TNS:no appropriate service handler found 解决
项目启动报错ORA-12519: TNS:no appropriate service handler found 原因:项目中的有些算法把所有连接都占用了,可以增大数据的连接,或者泡杯茶稍等一会咯增大数据连接使用一下方法:--产看当前有哪些用户正在使用数据SELECT osuser, a.username,cpu_time/executions/1000000||'s', sql_fulltex...原创 2018-06-21 13:40:10 · 1102 阅读 · 0 评论 -
添加索引和序列的方式
一 . 添加索引的方式1.添加PRIMARY KEY(主键索引) mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2.添加UNIQUE(唯一索引) mysql>ALTER TABLE `table_name` ADD UNIQUE ( `column` ) 3.添加INDEX(普通索引) mys...原创 2018-06-06 00:45:07 · 2298 阅读 · 0 评论 -
Hibernate与Mybatis对比总结 两者相同点
两者相同点Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置文件生成SessionFactory,然后由SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。其中SessionFactoryBuider,SessionFactory,Session的生命周期都是差不多的。Hibernate和MyBatis都...原创 2018-06-06 00:43:04 · 1063 阅读 · 1 评论 -
sql多表关联查询使用JOIN..ON与where的优化场景
1.首先先建立两个表create table table1( mon varchar2(14), dep number(4), yj number(4))insert into table1 values ('一月份',1,10);insert into table1 values ('一月份',2,10);insert into table1 values ('一月份',3,5);inse...原创 2018-06-05 23:26:46 · 36840 阅读 · 6 评论 -
LEFT OUTER JOIN RIGHT OUTER JOIN FULL OUTER JOIN JOIN ...ON别傻傻分不清楚
.外连接外连接在关联查询时还可以将不满足的连接条件也查询出来,外连接分为:左外连接,右外连接,全外连接 LEFT OUTER JOIN RIGHT OUTER JOIN FULL OUTER JOIN左外连接:以 JOIN左侧表作为驱动表,驱动表中所有数据都要列出来,那么当该表某条记录不满足连接条件时,那么来自右侧表的字段值全部为NULL,右外连接就是以右侧表作为驱动表,...原创 2018-06-05 17:40:48 · 661 阅读 · 0 评论