首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Oracle学习笔记整理手册

PS:本博客收录自己工作中遇到学到的一些Oracle技能,有时间就更新整理一下 (1)Oracle正则匹配使用 PS:这条SQL可以通过正则匹对查询一下,表A的字段a是否有非数字的数据,有时候数据表的一些字段是...,=只有一条记录 =性能更好,因为使用=符合能更好地使用索引 (12)NVL函数和NVL2函数 NVL函数的格式如下:NVL(expr1,expr2) 含义是:如果oracle第一个参数为空那么显示第二个参数的值...oracle开窗函数使用的话一般是和order、partition by、row_number()、rank()、dense_rank()几个函数一起使用 例子:成绩表的例子, 学号 姓名 班级 成绩...: 开窗函数和row_number函数一起使用的话,就是返回一行,不过这里其实不适合用来统计,因为统计成绩的话,可以存在分数一样的两条数据,而row_number只返回一条数据。...by classId order by score desc) mm from t_score over函数和dense_rank一起使用: dense_rank函数是rank函数的补充,假如有分数一样的两条数据

1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    oracle 层次化查询(生成菜单树等)

    2、层次化查询主要包含两个子句,一个start with另一个是connect by。...start with:这个子句一般用于指定层次化查询的开始节点(也就是树的最顶级节点),找到最顶级节点,然后按照一定的规则开始查找其剩余的子节点 connect by:这个子句就是上面所说的规则,用于查找剩余子节点的规则...下面开始执行层次化查询,从PId为null的节点(该节点为根节点)开始递归查找,查找出所有的更节点下的子节点,构建出一个完整的树 select ID,DATA,nvl(TO_CHAR(PID),'NULL...代码解析: (1)、start with PID is NULL  指定层次化查询的根节点, ? 红框内的两个节点为根节点,并开始遍历其余的节点。...(3)、CONNECT_BY_ROOT 查询操作符可以加在 connect by 之后的某个字段之前,表示获得这一行的根节点的该字段的值。

    1.5K80

    将SQL优化做到极致 - 子查询优化

    今天一起来学习最常见的几种优化子查询到方式。 作者简介: 韩锋 ? 精通包括Oracle、MySQL、informix等多种关系型数据库,有丰富的数据库架构设计开发经验。就职于宜信。.../*示例中的子查询引用表DEPT,最终转换为两个表的哈希半连接。也就是说,exists子句中的子查询被展开,其中的对象与主查询中的对象直接进行半关联操作*/ // IN的情况类似,如下: ?...这里使用了嵌套循环,每一个EMP表的记录,都对应一次子查询的查询,获得MAX值*/ 5.子查询分解 所谓子查询分解,是指由WITH创建的复杂查询语句存储在临时表中,按照与一般表相同的方式使用该临时表的功能.../*从上面可以看出,在WITH中有两个子查询语句,但只创建了一个临时表,这是因为WITH中的第二个子查询使用的是第一个子查询的执行结果。在这种情况下,逻辑上只允许创建一个临时表,没有必要再次创建。...在处理WITH临时表时,如果临时表可以被优先执行而且可以缩减连接之前的数据量,就可以采用嵌套循环连接,否则必须使用哈希连接*/ 6.子查询缓存 针对某些子查询操作,优化器可以将子查询的结果进行缓存,避免重复读取

    4.5K91

    性能优化之查询转换 - 子查询类

    1 子查询推进 子查询推进(又称子查询推入)是指优化器将子查询提前进行评估,使得优化器可以更早地介入优化以获得更优质的执行计划。这个技术可以通过提示PUSH_SUBQ/NO_PUSH_SUBQ控制。...3 子查询分解 子查询分解是由WITH创建的复杂查询语句并存储在临时表中,可按照与一般表相同的方式使用该临时表的功能。...4 子查询合并 在语义等价的前提下,如果多个子查询产生的结果集相同,则优化器可以使用这种技术将多个子查询合并为一个子查询。这样的好处在于减少多次扫描产生的开销。...,外部对T_TABLES表的查询要同时满足SUB1和SUB2两个子查询,而SUB1在语义上又是SUB2的子集,因此优化器将两个子查询进行了合并(只进行一次对T_TABLESPACES表的扫描),然后与外部表...,外部查询要满足两个子查询—SUB1和SUB2,但两者条件不同,不能简单合并。

    1.5K61

    【Oracle小技巧】手把手教你玩转SQL*Plus命令行,工作效率提升200%

    那么问题来了,这些都可以解决吗?当然,我写这篇就是为了介绍如何优化SQL*Plus命令行嘛!...首先介绍下,主要分两个部分: 上下文切换:rlwrap + readline 优化输出格式:glogin.sql SQL*Plus优化 1 上下文切换 rlwrap 相信大家在Linux主机使用SQL...通过 rlwrap + readline 一起使用,可以完美解决这个问题,接下来,我就来演示一下如何配置使用。...可以看到,查询结果格式很乱,而且连进去之后也看不到当前实例名和用户名。...具体配置可根据个人常用进行配置,比如可以将查询表空间使用率配置进去,每次打开都可以看到表空间使用率,防止数据文件撑爆。

    91320

    学习python第三天数据库day2

    列名n 数据类型(长度) ); 建完表格之后我们可以使用desc关键字去查看表结构, desc关键字的使用如下: desc 表名; DML:数据层面的操作:不会自动提交,可以回滚比较柔和 包括的常用的操作如下...DCL: 两个关键字:commit(提交)、rollback(回滚) day02(上午): 出题思考如何实现? 1).查询公司员工的编号,姓名,薪资,奖金率以及月收入?...:使用别名的思想,可以让显示变得更加的优雅、简洁!...如果想要控制显示的大小写(效果),我们可以使用方式三来完成;我们可以认为方式三才是最实用的方式 where子句: 在查询数据的时候,很多情况下我们需要过滤掉一些不需要的内容,所以需要用到where...,一般我们按照各个子句(关键字)适当的进行换行 思考2:查询1994/06/07入职的员工的信息 实现代码如下: select employee_id,last_name,salary,hire_date

    38130

    IBM 把 Informix 数据库“卖给”南大通用 南大通用“卖给”浪潮 这玩的什么猫腻

    难道预示浪潮要憋一个大招,一举将南大通用收入囊中?还是准备借用南大通用的研发实力,帮助浪潮实现软硬一体化的战略目标呢?...融合Informix技术的GBase 8t可以在90%以上的事务处理领域替代Oracle。 在剥离了非核心的硬件业务之后,IBM可以轻装上阵,在高端软硬件一体化、服务与咨询方面更加专注。...从技术角度看,IBMInformix是可与Oracle媲美的数据库产品。但因为种种原因,IBM Informix在中国的销售情况并不尽如人意。...而在事务型数据库方面,南大通用有了Informix这个底儿,可以很快树立起国内在OLTP领域的权威,并 与Oracle等国际巨头正面竞争。 在基础软件领域,国产厂商的创新能力一直不足。...,难道还有更大阴谋吗?

    3.6K80

    这是我见过最有用的Mysql面试题,面试了无数公司总结的(内附答案)

    内部联接:当正在比较的两个(或多个)表之间至少有一些匹配数据时,内部联接将返回行。 外部联接:外部联接从两个表返回行,这些行包括与一个或两个表不匹配的记录。 36.什么是SQL约束?...40.一个表可以包含多个PRIMARY KEY吗? 简短的答案是“否”,一个表不允许包含多个主键, 但是它允许一个包含两个或更多列的复合主键。 41.什么是复合 主键?...一个FOREIGN KEY是用于两个表连接在一起的关键。 一个FOREIGN KEY 的表与链接的PRIMARY KEY 另一个表。 43.一个表可以包含多个FOREIGN KEY吗?...如果未与交叉联接一起使用WHERE子句,则交叉联接将产生一个结果集 该结果集是第一个表中的行数乘以第二个表中的行数。 这种结果称为笛卡尔积。...在上述问题中,我们可以看到null = null不是比较null值的正确方法。为了将一个值与null进行比较,我们在SQL中使用IS运算符。

    27.1K20

    MySQL笔记之常用用法整理手册

    oracle实现递归查询的话,就可以使用start with … connect by,mysql并没有通过类似函数,解决方法是通过自定义函数的方法,具体可以参考我这篇博客 https://blog.csdn.net.../u014427391/article/details/87297884 (3) 排序问题 oracle做数据排序的时候,有时候可以用nulls first或者nulls last将null值排在最前或者最后...nvl函数具体可以参考我这篇博客:https://blog.csdn.net/u014427391/article/details/84996009 Mysql 上面是Oracle的做法,mysql的做法可以用...IFNULL(E1,E2)函数,其功能类似与Oracle的nvl函数。...(5) 列转行函数 Oracle列转行函数可以用vm_comcat函数,mysql的用concat_ws函数 使用方法: CONCAT_WS(separator,str1,str2,…) eg:

    90230

    Hive SQL 常用零碎知识

    0NVL(id, 0, 1)通常在数据处理的时候可以使用NVL()来筛选出NULL和字符串为空的情况:WHERE NVL(id, '')=''7....总结:在此概括一下ORDER BY与DISTRIBUTE BY和SORT BY的区别:ORDER BY: ORDER BY子句用于对整个结果集进行全局排序。通常用于对查询结果的最终展示格式进行排序。...UNION和UNION ALLUNION:UNION操作符将两个或多个查询结果集合并为一个结果集,并去除其中的重复行。UNION操作符会对结果进行去重,即如果两个结果集存在相同的行,则只保留一份。...UNION ALL:UNION ALL操作符也将两个或多个查询结果集合并为一个结果集,但不进行去重。UNION ALL会保留所有结果中的重复行,并将其全部加入到最终的结果集中。...如果你确定结果集不会有重复的行,可以使用UNION ALL来提高查询性能。

    89960

    oracle的nvl函数的使用解析「建议收藏」

    Oracle的Nvl函数 nvl( ) 函数 从两个表达式返回一个非null 值。...如果 eExpression1 与 eExpression2 的结果皆为 null 值,则 NVL( ) 返回 .NULL.。...返回值类型 字符型、日期型、日期时间型、数值型、货币型、逻辑型或 null 值 说明 在不支持 null 值或 null 值无关紧要的情况下,可以使用 NVL( ) 来移去计算或操作中的 null 值。...2、NULL与0、空字符串、空格都不同。 3、对空值做加、减、乘、除等运算操作,结果仍为空。 4、NULL的处理使用NVL函数。...5、比较时使用关键字用“is null”和“is not null”。 6、空值不能被索引,所以查询时有些符合条件的数据可能查不出来, count(*)中,用nvl(列名,0)处理后再查。

    1.8K20

    k8s_service网络原理

    veth pair 当做一对虚拟网卡,这对虚拟网卡连通着不同的网命名络空间(Docker 与宿主机之间也是这种模式) 如下, 创建两个网络空间, 通过 veth pair 联通: 12345678910111213141516171819202122...这种方式就可以将veth pair的数量控制在n,n为网络命名空间的数量, 如: 容器(Pod)通信 同 Node 上通信 在同一个Node上: 虚拟网桥与各个Pod间建立veth pair。...对于服务名称查询,CoreDNS会返回与该服务关联的Pod的IP地址 插件机制:CoreDNS支持插件机制,允许开发者扩展其功能。...例如,可以使用插件实现日志记录、缓存、负载均衡等功能 kube-proxy 我们从上面的章节可以看出 Service 最终负载均衡到后端的目标 Pods 是靠 kube-proxy 实现的。...) 内核模块的一个子模块,建立于 Netfilter 之上的高效四层负载均衡器,支持 TCP 和 UDP 协议,在这种模式下,kube-proxy 将规则插入到 ipvs 而非 iptables。

    12710

    sql中decode的用法_sql求和函数

    column name本身,也可以是你想定义的其他值,比如Other等; 主要作用:相当于IF语句, 将查询结果翻译成其他值。...举例说明: 现定义一table名为output,其中定义两个column分别为monthid(var型)和sale(number型),若sale值=1000时翻译为D,=2000时翻译为C,=3000时翻译为...Other: Select monthid , decode (sale,1000,'D',2000,'C',3000,'B',4000,'A',’Other’) sale from output 若只与一个值进行比较...: Select monthid ,decode(sale, NULL,‘---’,sale) sale from output decode中可使用其他函数,如nvl()函数或sign()函数等:   ...SELECT NAME,NVL(TO_CHAR(COMM),'NOT APPLICATION') FROM TABLE1; 如果用到decode函数中: select monthid,decode(nvl

    1.6K40

    Oracle总结【视图、索引、事务、用户权限、批量操作】

    这里写图片描述 还有另外一个原因: 我们在查询数据的时候,常常需要编写非常长的SQL语句,几乎每次都要写很长很长….上面已经说了,视图就是基于查询的一种虚表,也就是说,视图可以将查询出来的数据进行封装。...那么我们在使用的时候就会变得非常方便… 小总结: (1)如果你不想让用户看到所有数据(字段,记录),只想让用户看到某些的数据时,此时可以使用视图 (2)当你需要减化SQL查询语句的编写时,可以使用视图,...会影响基表 将【整个】视图删除,会影响表吗? 不会影响基表 删除视图,会进入回收站吗? 不会进入回收站 删除基表会影响视图吗? 会影响视图 闪回基表后,视图有影响吗?...视图又可以正常工作了 同义词 我们在使用多表查询,或者查询出来的表字段意义不清晰的时候,我们就使用别名来替代….当然了,别名只针对列名或表名 现在,我们已经知道的对象有用户/视图/表等等其他对象了,Oracle...,用''单引号将rowid的值包起来,且区分大小写 (6)rowid是联系表与DBF文件的桥梁 索引特点 索引的特点 (1)索引一旦建立,** Oracle管理系统会对其进行自动维护**, 而且由Oracle

    2K41
    领券