![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQL
xuwenzhong1994
若昼有不允,必夜以继之。
微信公众号:codinggogo
个人主页:wenzhongxu.github.io
展开
-
Oracle中ROWNUM伪列的使用
昨天小定同学突然问我一个分页问题,分页干嘛要这样分成两层查询,而不是对行号一层过滤就可以了呢?分页语句的语法类似是这样的:SELECT * FROM (SELECT ROWNUM AS RN, T.* FROM PA_LD_BASIC_DATA T WHERE ROWNUM <= 200)WHERE RN > 100;小定同学的想法是为什么不能是如下这种写法...原创 2019-11-30 12:40:57 · 238 阅读 · 0 评论 -
SQL表的自身关联
SQL表的自身关联有如下两个数据表:tprt表,组合基本信息表,每个组合有对应的投管人和托管人;tmanager表,管理人信息表,管理人类别由o_type区分;具体表信息如下所示:tprt表:tmanager表:现需查询出每个组合对应的托管人和投管人名称,可采用自身关联查询:SELECT X.O_CODE, X.O_NAME, X.O_FULLNAME...原创 2019-02-01 11:16:42 · 3593 阅读 · 0 评论 -
Oracle中connect by用法示例
在工作中常常会遇到一些数据表包含父子关系的数据,比如行业、地区等等,如果需要将其节点按父子关系一步一步列出来,就需要使用connect by了。如有由自身行业代码basecode和父行业代码parentcode构成父子关系的行业表tindustry:如果想获取“\申万明细行业\农林牧渔\林业”这样详细的行业树,就需要使用如下查询:SELECT BASECODE, SYS_CONN...原创 2019-02-01 11:34:39 · 243 阅读 · 0 评论 -
Oracle索引之Btree索引
索引介绍日常开发中,对于数据的查询如果需要优化,常听说要加个索引。但是为什么加了索引,数据的查询就快了呢?那是不是加了索引就一定会是有效或者有利的呢?Oracle中常见有BTREE索引,位图索引和函数索引。我们今天就先介绍一下这个BTREE索引吧。既然叫BTREE索引,那就从它的树结构说起:建BTREE索引其实是先拿出所有数据排序,将有序的索引列的值和rowid存进Oracle的各...原创 2019-03-31 11:21:05 · 1236 阅读 · 0 评论 -
Oracle基础体系浅析
不论是开发、管理、优化还是设计,对Oracle的基本原理的了解都是必不可少的,于是对自己最近关于Oracle的学习作出一点点的总结。庖丁解牛之所以能做到“合于桑林之舞,乃中经首之会”,是因为其“所好者道也”。那我们实际的Oracle使用中,了解Oracle的基本体系,也才能对一系列的操作知其然也知其所以然,才能在这个基础上进行相关的优化操作。开局一张图,内容全靠编。上图...原创 2019-03-27 19:34:44 · 410 阅读 · 1 评论 -
Oracle中的位图索引和函数索引
位图索引同样的,先说是什么,再说为什么。上篇我们说过BTREE索引是将数据表的索引列和行号排序后以树状形式存在磁盘中。那位图索引是什么样的呢?现有如下日志表,有操作类型字段op_type,该字段的取值只有“查看”、“查询”、“新增”、“修改”和“删除”。如下表,当在op_type列建位图索引,如果某数据行取值是“查看”则将该行的“查看”的单元格记为1,在其他取值上记0;如果取值...原创 2019-04-21 20:42:08 · 359 阅读 · 0 评论 -
关于SQL优化的一点建议
前段时间一直在做关于性能优化相关的工作,结合自己的实际工作经验,只针对SQL层面提一些优化的规范和建议。针对SQL编写1、单条SQL长度不宜超过100行;2、SQL子查询不宜嵌套3层:子查询嵌套过多,又可能会导致解析过于复杂,产生错误的执行计划;3、SQL表关联需要考虑连接和限制条件的索引;4、同一模块避免出现大量相似之处:这种SQL写法一般比较可疑,一般可以优化,比如...原创 2019-04-27 00:08:01 · 135 阅读 · 0 评论