Oracle易忘知识点记录
1、SQL Select语句完整的执行顺序:
CREATE INDEX index_nm ON table_nm(col_nm) TABLESPACE tablespace_nm ONLINE;
3、其他
在sql脚本中创建存储过程时,存储过程部分代码结束后,在其下一行加一个反斜杠 / ,表示存储过程结束,防止oracle将下面的其他sql语句当成存储过程的一部分。
在某个字段后面追加内容:
UPDATE table_nm T SET T.IP=T.IP||',127.0.0.1' WHERE 筛选条件;
4、oracle中对于''和null的判断必须使用 IS NULL才能正确得到返回值,使用< = >都是false;使用like进行模糊查询时,'%%'也无法查出null的记录。
ALTER TABLE MKMTJNL ADD (COMT_DIF_AMT NUMBER(9,2));
declare
I INT;
V_COUNT INT;
V_LOOP INT;
BEGIN
SELECT COUNT(*)
INTO V_COUNT
FROM MKMTJNL;
SELECT ceil(V_COUNT / 100000) INTO V_LOOP FROM dual;
I := 1;
WHILE I <= V_LOOP LOOP
UPDATE MKMTJNL SET COMT_DIF_AMT = 0.00 WHERE ROWNUM <= 100000;
COMMIT;
I := I + 1;
END LOOP;
END; ALTER TABLE MKMTJNL MODIFY (COMT_DIF_AMT DEFAULT 0.00);
WITH stat AS(SELECT * FROM table_nm)select * from stat;
11、LPAD(左侧填充)与RPAD(右侧填充)函数
LPAD(原字符串str,长度/正整数x,[用于填充的字符串]y):①如果没有第三个参数y(或者长度x比字符串本身长度小),则表示从左侧截取长度x个字符 ②使用y填充str到直到长度达到x。
SELECT lpad('abcde',3) FROM dual; --abc
SELECT lpad('abcde',8,'x') FROM dual; --xxxabcde
SELECT SUBSTR('abcdef',3) FROM dual; --cdef
SELECT SUBSTR('abcdefefgh',3,5) FROM dual; --cdefe
REGEXP_SUBSTR(String, pattern, position, occurrence, [modifier]) 五个参数分别表示:①要处理的字符串 ②进行匹配的正则表达式 ③匹配的开始位置,默认为1 ④字符串处理后取第几个匹配组,默认为1 ⑤模式('i'不区分大小写进行检索;'c'区分大小写进行检索。默认为'c'。)
SELECT REGEXP_SUBSTR('111,222,333,444', '[^,]+', 1, 1) FROM dual; --111
SELECT REGEXP_SUBSTR('111,222,333,444', '[^,]+', 1, 2) FROM dual; --222
[^,]+ 表示匹配以非,开始,非,结束的规则。(^用在方括号[]里面时表示非,否则表示字符串开始位置)。
常用应用:
SELECT REGEXP_SUBSTR('111,222,333,444', '[^,]+', 1, LEVEL) spli,LEVEL FROM dual
CONNECT BY LEVEL <= REGEXP_COUNT('111,222,333,444', '[,]', 1) + 1; --仅限单条记录的表 SELECT REGEXP_SUBSTR('111,222,333,444', '[^,]+', 1, ROWNUM) spli,ROWNUM FROM dual
CONNECT BY ROWNUM <= REGEXP_COUNT('111,222,333,444', '[,]', 1) + 1; --仅限单条记录的表
当连接条件(connect by条件)没有限制记录之间的关系(即 connect by里没有类似 id=prior pid的条件,而是 connect by rownum<xxx 或connect by level<xxx )时,每一条记录都会作为自己或者其他记录的子节点,也就说,每一条记录的子节点就是表上所有的记录。而树的层数就是rownum(或是level)值。
13、REPLACE函数
REPLACE(原字符串str,被替换的字符串x,[替换字符串]y}):①如果第三个参数为空,则将原字符串str中所有的x都删除(换成空字符串)②使用y替换str中出现的所有x。
SELECT REPLACE('abcabcabc','b') FROM dual; --acacac
SELECT REPLACE('abcabcabc','b',' ') FROM dual; --a ca ca c
14、WM_CONCAT函数
WM_CONCAT(列名):把列值用逗号分隔并显示成一行(列转行)
SELECT WM_CONCAT(COL)
FROM (SELECT 1 COL FROM DUAL
UNION ALL
SELECT 2 COL FROM DUAL); --1,2
15、CAST函数
CAST(expr AS type_name) :将一种类型转换成另一种类型。而不仅仅是限于使用用to_number、to_char()以及to_date()类型。
使用to_char()将日期转换成字符串时,注意分钟使用mi,而不是mm(mm表示月份)。
16、DECODE与SIGN函数
SIGN(val):根据val的值是0、正数还是负数,分别返回0、1、-1
decode(条件/字段,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值):根据条件与各个值比对,如果相等,则取对应的返回值;如果没有匹配的值,则返回缺省值。
SELECT DECODE('x','y','值y','z','值z','缺省') FROM dual; --缺省
SELECT DECODE('x','x','值x','z','值z','缺省') FROM dual; --值x
sign与decode联合使用
SELECT DECODE(SIGN(4-3),0,'表达式等于0',1,'表达式大于0',-1,'表达式小于0') FROM dual; --表达式大于0
使用decode进行自定义排序
SELECT *FROM
(SELECT 'x' COL FROM DUAL
UNION ALL
SELECT 'y' COL FROM DUAL
UNION ALL
SELECT 'z' COL FROM DUAL)
ORDER BY DECODE(COL, 'x', 3, 'y', 2, 'z', 1);
结果:
SELECT length('这是6个字符') FROM dual; --6
SELECT lengthb('这是12个字节') FROM dual; --12
18、OVER(partition by 按哪个字段划分组,order by 按哪个字段排序)分析函数
说明:聚合函数(如sum()、max()、COUNT()等)可以计算基于组的某种聚合值,但是聚合函数对于某个组只能返回一行记录。若想对于某组返回多行记录,则需要使用分析函数。
COUNT() OVER():应用在查询明细的同时查询总记录数,可使用partition by分组
SELECT COL,COUNT(*)OVER(PARTITION BY COL) COUNT_NUM FROM
(SELECT 'x' COL FROM DUAL
UNION ALL
SELECT 'x' COL FROM DUAL
UNION ALL
SELECT 'y' COL FROM DUAL
UNION ALL
SELECT 'y' COL FROM DUAL);
SUM()OVER() :累加,统计总和,使用方法与COUNT()OVER()相同
偏移分析函数LAG() LEAD()
lag与lead函数是跟偏移量相关的两个分析函数,通过这两个函数可以在一次查询中取出同一字段的前N行的数据(lag)和后N行的数据(lead)作为独立的列,从而更方便地进行进行数据过滤。这种操作可以代替表的自联接,并且LAG和LEAD有更高的效率。偏移分析函数必须使用order by进行排序,否则报错。
SELECT COL 本行COL,
LAG(COL,1,NULL)OVER(ORDER BY col) 上一行COL,
LEAD(COL,1,NULL)OVER(ORDER BY col) 下一行COL FROM
(SELECT 'a' COL FROM DUAL
UNION ALL
SELECT 'b' COL FROM DUAL
UNION ALL
SELECT 'c' COL FROM DUAL
UNION ALL
SELECT 'd' COL FROM DUAL);
Oracle易忘知识点记录的更多相关文章
- MySQL易忘知识点梳理
一.零碎知识 1.mysql where子句区分大小写:WHERE BINARY 2.判断是否为null,只能用is null,is not null,不能用=null或!=null 3.函数 4.S ...
- (一)S5PV210开发板常用易忘操作记录
一.调试串口 2.SD卡槽 (三)启动方式选择 蜂鸣器下面的白色2针插座(图中红色线圈出来的那个)为选择USB/SD卡启动的开关.默认情况下为SD卡启动,如果需要USB启动则使用短路帽(若没有短路帽, ...
- Python学习(五):易忘知识点
1.列表比较函数cmp >>> a = [1,2,3,4] >>> b = [1,2,3,4,5] >>> c = [1,2,3,4] >& ...
- Java易忘知识点统计
缺少 内容 替代措施 幂运算 借助Math类的pow方法 注意 内容 备注 const Java保留关键字,未使用 其他 强制类型转换时,若要舍入得到最接近的整数,可以使用Math.round方法 J ...
- C#知识点记录
用于记录C#知识要点. 参考:CLR via C#.C#并发编程.MSDN.百度 记录方式:读每本书,先看一遍,然后第二遍的时候,写笔记. CLR:公共语言运行时(Common Language Ru ...
- spring mvc开发过程知识点记录
给一个客户做的一个小项目,需求就是输入类似一个短网址http://dd.yy/xxxx然后跳转到另外一个域名下的图书文件.(实际很多短网址站都提供API供调用吧,不过客户需求是他自己建立一个短网址服务 ...
- 关于Verilog HDL的一些技巧、易错、易忘点(不定期更新)
本文记录一些关于Verilog HDL的一些技巧.易错.易忘点等(主要是语法上),一方面是方便自己忘记语法时进行查阅翻看,另一方面是分享给大家,如果有错的话,希望大家能够评论指出. 关键词: ·技巧篇 ...
- DB知识点记录
DB知识点记录 分页 SqlServer:ROW_NUMBER () over (ORDER BY ID) AS RN, MySql:limit Oracle:ROWNUM AS RN 数据表的基本结 ...
- 【千纸诗书】—— PHP/MySQL二手书网站后台开发之知识点记录
前言:使用PHP和MySQL开发后台管理系统的过程中,发现有一些通用的[套路小Tip],这里集中记录一下.结合工作中ing的后台业务,我逐渐体会到:除了技术知识外.能使用户体验好的“使用流程设计”积累 ...
随机推荐
- [Swift]字符串(String类、NSString类)常用操作
NS是Cocoa类对象类型的前缀,来源于乔布斯建立的另一家公司--NeXTNSString的使用方法,和Swift语言中的String有很多相似之处. 1.字符串的定义String类 var str1 ...
- P3952 时间复杂度
P3952 时间复杂度 题目描述 小明正在学习一种新的编程语言 A++,刚学会循环语句的他激动地写了好多程序并 给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明的程序, 于是你的机 ...
- vue-cli起的webpack项目 用localhost可以访问,但是切换到ip就不可以访问
我用的是vux起的一个项目(移动端,基于vue的),因为是移动端的,需要在手机上测试,发现用http://localhost:8081/访问的挺好的,但是换到ip就访问不了,期初我以为是代理的原因,将 ...
- 【Leetcode】Binary Tree Traversal
把三个二叉树遍历的题放在一起了. 递归写法太简单,就不再实现了,每题实现了两种非递归算法. 一种是利用栈,时间和空间复杂度都是O(n). 另一种是借助线索二叉树,也叫Morris遍历,充分利用树中节点 ...
- 4G模块在AM335x上的移植
关于4G模块的移植 看到一个很实用的写的比较好的 借鉴一下 参考:https://e2echina.ti.com/question_answer/dsp_arm/sitara_arm/f/25/ ...
- DB link的迁移
我们在做某些Schema的迁移的时候,由于用到Public的db link,然而由于不知道db link中目标端账号的密码,因此无法在新环境重新创建DB link. 本次实验的思路是将视图dba_db ...
- selenium 之Ran 0 tests in 0.000s
from selenium import webdriverfrom time import ctime,sleepimport unittestclass TestLogin(unittest.Te ...
- Oracle PL/SQL编程之包(packages)
1.简介 包用于在逻辑上组合过程和函数,它由包规范和包体组成. 我们可以使用create package来创建包,代码如下: ok,包创建完成,通过包的代码发现包的功能就是申明包中包含的过程和方法,红 ...
- Oracle运算符收录(易忘记,但是又很重要的运算符)
Create Table Test6( id ), name ), age ), sex ) ) 1. || 符 字符串连接字符串,注意:文字和日期一定嵌入在单引号里面 select ID,Nam ...
- orcale 之 初识数据库一
数据库 数据库顾名思义数据的仓库,只不过这个仓库是在计算机的存储设备之中.一般来说,这些数据面向一个组织,部门或者整个企业,这些数据是按照一定的模型进行存放的数据集合,比如对于一个学生的管理系统来说, ...