首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Oracle学习笔记整理手册

PS:本博客收录自己工作遇到学到的一些Oracle技能,有时间就更新整理一下 (1)Oracle正则匹配使用 PS:这条SQL可以通过正则匹对查询一下,表A的字段a是否有非数字的数据,有时候数据表的一些字段是...+),+号左表示右外连接,右表示左外连接 (7)oracle去重关键字 Oracle关键字: distinct:过滤掉多余的重复记录只保留一条 (8)Oracle不等于符号 oracle不等于有下面三种表示...函数wm_concat(列名),该函数可以把列值以","号分隔起来,并显示成一行 ps:这个列转行函数vm_comcat()oracle10比较稳定,到了oracle11就会出现一些不兼容的情况,...开窗函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化 上面是开窗函数over(…)的简单介绍。...oracle开窗函数使用的话一般是和order、partition by、row_number()、rank()、dense_rank()几个函数一起使用 例子:成绩表的例子, 学号 姓名 班级 成绩

1K10

【DB笔试面试659】Oracle,SELECT ... FOR UPDATE加的是什么锁?

♣题目部分在Oracle,SELECT ... FOR UPDATE加的是什么锁? ♣答案部分 SELECT ... FOR UPDATE语句的语法如下: SELECT ......FOR UPDATE [OF column_list][WAIT n|NOWAIT][SKIP LOCKED]; 其中,这个OF子句涉及到多个表时,具有较大作用。...“使用FOR UPDATE WAIT”子句的优点如下: ① 防止无限期地等待被锁定的行 ② 允许应用程序对锁的等待时间进行更多的控制 ③ 对于交互式应用程序非常有用,因为这些用户不能等待不确定的时间...④ 若使用了SKIP LOCKED,则可以越过锁定的行,不会报告由wait n引发的“资源忙”异常报告 Oracle 10g之前,SELECT ......FOR UPDATE获取的是2级TM锁,而从Oracle 10g开始,SELECT ... FOR UPDATE获取的是3级TM锁。 本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗

1.1K10

SQL优化一(SQL使用技巧)

举例:查询emp表的每个部门的人数?...) 窗口就是分析函数分析时要处理的数据范围,就拿sum来说,它是sum窗口中的记录而不是整个分组的记录,因此我们在想得到某个栏位的累计值时,我们需要把窗口指定到该分组的第一行数据到当前行, 如果你指定该窗口从该分组的第一行到最后一行...得到最后一个记录值   11、lag() over(partition by ... order by ...) lag函数可以一次查询取出同一字段的前n行的数据   12、lead() over(...partition by ... order by ...) lead函数可以一次查询取出同一字段的后n行的值 lag(arg1,arg2,arg3) 第一个参数是列名, 第二个参数是偏移的offset...8、SQL查询正则表达式的使用   ORACLE的支持正则表达式的函数主要有下面四个: 1,REGEXP_LIKE :与LIKE的功能相似     select * from emp where regexp_like

2.5K40

Oracle分析函数一——函数列表

今天一个关注度颇高的技术公众号上看到一篇Oracle分析函数的文章,和我2009年写的博文很像,仔细看了一下,或许互联网上的抄袭不叫抄袭吧,愤愤然把之前的帖子翻了出来,结果还得靠申诉才能争取原创。...Oracle分析函数应该是各个数据库分析函数的鼻祖,其他数据库到目前为止支持的还不够全面和友好,Oracle分析函数不仅能够减少代码量,提升可读性,还可以解决性能问题。...SUM :该函数计算组中表达式的累积和,求值后通常用于帕累托图分析 MIN :一个组的数据窗口中查找表达式的最小值,配合partition和order可以进行复杂的最小值求解 MAX :一个组的数据窗口中查找表达式的最大值...RANK :根据ORDER BY子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置 DENSE_RANK :根据ORDER BY子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置...FIRST :从DENSE_RANK返回的集合取出排在最前面的一个值的行 LAST :从DENSE_RANK返回的集合取出排在最后面的一个值的行 FIRST_VALUE :返回组数据窗口的第一个值

63710

Oracle,什么是闪回版本查询(Flashback Version Query)?

题目部分 Oracle,什么是闪回版本查询(Flashback Version Query)?...答案部分 闪回版本查询(Flashback Version Query)是查询过去某个时间段或某个SCN段内表数据的变化情况。闪回版本查询基于回滚(Undo)表空间中的回滚信息实现。...闪回版本查询的目标列,可以使用下列几个伪列返回版本信息: l VERSIONS_STARTTIME:基于时间的版本有效范围的下界; l VERSIONS_STARTSCN:基于SCN的版本有效范围的下界...闪回版本查询注意事项: ① VERSIONS子句不能用于查询的表包括外部表、临时表和固定表。 ② 不能使用VERSIONS子句查询视图。但是,视图定义可使用VERSIONS子句。...LHR@orclasm > UPDATE T_FVQ_20170617_LHR SET SAL=8888 WHERE EMPNO=7788; 1 row updated.

32930

【DB笔试面试550】Oracle函数索引是什么?

♣ 题目部分 Oracle函数索引是什么?...♣ 答案部分 Oracle,有一类特殊的索引,称为函数索引(Function-Based Indexes,FBI),它基于对表列进行计算后的结果创建索引。...函数索引不修改应用程序的逻辑基础上提高了查询性能。如果没有函数索引,那么任何在列上执行了函数查询都不能使用这个列的索引。当在查询包含该函数时,数据库才会使用该函数索引。...当数据库处理INSERT和UPDATE语句时,它仍然必须计算函数才能完成对语句的处理。...② 如果被函数索引所引用的用户自定义PL/SQL函数失效了或该函数索引的属主没有了函数索引里面使用的函数的执行权限,那么对这张表上的执行的所有的操作(例如SELECT查询、DML等)也将失败(会报错:

1.5K10

MySQL 8.0 新增SQL语法对窗口函数和CTE的支持

如果用过MSSQL或者是Oracle窗口函数Oracle叫分析函数),然后再使用MySQL 8.0之前的时候,就知道需要在使用窗口函数处理逻辑的痛苦了,虽然纯SQL也能实现类似于窗口函数的功能,...MSSQL和Oracle以及PostgreSQL都已经完整支持窗口函数的情况下,MySQL 8.0也加入了窗口函数的功能,这一点实实在在方便了sql的编码,可以说是MySQL8.0的亮点之一。   ...对于窗口函数,比如row_number(),rank(),dense_rank(),NTILE(),PERCENT_RANK()等等,MSSQL和Oracle以及PostgreSQL,使用的语法和表达的逻辑...这一点,几个数据库厂商做的还是比较统一的,如果熟悉任何一种关系数据窗口函数(分析函数),MySQL 8.0之后就放心的用吧。   ...avg,sum等聚合函数窗口函数的的增强   可以聚合函数中使用窗口功能,比如sum(amount)over(partition by user_no order by create_date)

2.1K20

【DB笔试面试612】Oracle查询转换包含哪些类型?

♣ 题目部分 Oracle查询转换包含哪些类型?...♣ 答案部分 Oracle数据库,用户发给Oracle让其执行的目标SQL和Oracle实际执行的SQL有可能是不同的,这是因为Oracle可能会对执行的目标SQL做等价改写,即查询转换。...,它是Oracle解析目标SQL的过程的非常重要的一步。...启发式查询转换需要从10053事件信息查找有关查询转换的线索,并且许多跟踪记录仅能从Oracle 11g的跟踪信息中发现。...,这也就意味着对于外部查询所在结果集的每一条记录,该子查询就会被执行多少次,这种执行方式的执行效率通常情况不会太高,尤其查询包含两个或两个以上表连接时,此时做子查询展开后的执行效率往往会比走FILTER

1.3K20

大数据快速入门(10):Hive窗口函数

一、窗口函数的概念 首先,需要认识到,窗口函数并不是只有 hive 才有的,SQL 语法标准,就有窗口函数。 并且 mysql,oracle等数据库都实现了窗口函数。...: 1)专用窗口函数,包括后面要讲到的 rank,dense_rank,row_number 等专用窗口函数 2)聚合函数,如 sum,avg,count,max,min 等 因为窗口函数是对 where...可以看到运行结果,还是 14 行,并且每行都有一个统计值。 聚合函数是会缩减行数的,而窗口函数则不会,就可以直观看到,截止到本行数据,统计结果是多少。...2、partition by 子句 也叫查询分区子句,将数据按照边界值分组,而over()之前的函数每个分组内执行。...dense_rank()也是相同的值排名相同,接下来的排名不会加。不会占据排名的坑位。 6、lag函数 和 lead函数 lag()函数是在窗口内,指定列上,取上N行的数据,并且有默认值。

1.3K41

【DB笔试面试572】Oracle,模糊查询可以使用索引吗?

♣ 题目部分 Oracle,模糊查询可以使用索引吗?...② 模糊查询形如“WHERE COL_NAME LIKE '%ABC';”不能使用索引,但是可以通过REVERSE函数来创建函数索引才能使用到索引。...如果字符串ABC始终从原字符串的某个固定位置出现,那么可以创建SUBSTR函数索引进行优化。 b. 如果字符串ABC始终从原字符串结尾的某个固定位置出现,那么可以创建函数组合索引进行优化。 c....如果字符串ABC原字符串位置不固定,那么可以通过改写SQL进行优化。改写的方法主要是通过先使用子查询查询出需要的字段,然后在外层嵌套,这样就可以使用到索引了。...'AA%') filter(REVERSE(SUBSTR("TABLE_NAME",1,LENGTH("TABLE_NAME")-4)) LIKE 'AA%') --如果字符串ABC原字符串位置不固定

9.7K20
领券