oracle函数

Oracle中视图的创建和处理方法

泪湿孤枕 提交于 2020-01-04 13:35:16
本文转载自: https://www.cnblogs.com/mr-guo/p/3350109.html 作者:MR-Guo 转载请注明该声明。 http://www.blogjava.net/caizh2009/articles/287787.html Oracle中视图的创建和处理方法 图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词。 视图是存储在数据字典里的一条select语句。通过创建视图可以提取数据的逻辑上的集合或组合。 视图的优点: 1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。 2.用户通过简单的查询可以从复杂查询中得到结果。 3.维护数据的独立性,试图可从多个表检索数据。 4.对于相同的数据可产生不同的视图。 视图分为简单视图和复杂视图: 1、简单视图只从单表里获取数据,复杂视图从多表; 2、简单视图不包含函数和数据组,复杂视图包含; 3、简单视图可以实现DML操作,复杂视图不可以。 视图的创建: CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name [(alias[, alias]...)] AS subquery [WITH CHECK OPTION

Oracle正则表达式

爷,独闯天下 提交于 2020-01-01 12:47:25
Oracle正则表达式(regularexpression) 元字符 字符含义 举例说明 ^ 匹配字符串的开始位置(在[]中使用,此时它表示不接受该字符集合。 ^a:匹配以a开始的字符串 [^a]:匹配不含a的字符串 - 当使用在a-m表示范围; 当使用在第一个字符时表示 连字符串,如[-abc] $ 匹配字符结束位置 ‘a$’:匹配以a结束的字符串 . 匹配除换行符 n之外的任何单字符。 ? 匹配前面的子表达式零次或一次 tr(y(ing)?):可以表示try或者trying * 匹配前面的子表达式零次或多次 + 匹配前面的子表达式一次或多次 () 标记一个子表达式的开始和结束位置 a(b)*可以匹配 ab,abb,abbb,youabb (c|d)匹配c或d [] 标记一个中括号表达式 [cd]匹配选择c或d等同于 (c|d)。匹配的是单字符,[^cd]是匹配c,d之外的单字符。 [a-z]表示所有小写字母 {m,n} m= <出现次数 <=n,'{m}'表示出现m次,'{m,}'表示至少出现m次。 | 表示或者的关系。指明两项之间的一个选择 字符簇 字符含义 [[:alpha:]] 任何字母。 [[:digit:]] [[:digit:]] 任何数字。 [[:alnum:]] 任何字母和数 [[:space:]] 任何白字符。 [[:upper:]] 任何大写字母。 [[

Oracle-- (RANK) 排名函数

≯℡__Kan透↙ 提交于 2020-01-01 06:37:58
内容来自: Oracle® Database SQL Language Reference 11g Release 2 (11.2) E41084-03。 empolyees表来自hr方案。 RANK函数可以计算值在特定排序中的位置(使用聚合语法)及按指定列的值计算排名(使用统计语法)。 聚合语法的火车图 : 下面语句计算了工资$2215和佣金为0.5%的员工在查询结果中排名。 SELECT RANK(2015, .05) WITHIN GROUP (ORDER BY salary, commission_pct) "Rank" FROM employees_t; 查询结果: Rank ---------- 1 ORDER BY:指定了排序字段,查询集合只有通过该子句排序,我们才可以获取值在排序好的集合中的位置。 RANK:该函数的参数数量必须与ORDER BY字段的数量相同。 DESC、ASC:如果不指定降序(DESC),集合将按照升序(ASC)排列,所以排名既可以按升序也可以按降序排列。 NULLS FIRST、NULLS LAST:指定NULL值在排列中放在开头还是放在结尾,所以这会影响值排名。 统计语法的火车图 : 该语法适合查询排名前几位或排名后几位的记录 下面语句可以查询部门60的所有员工的排名,排名按照工资由低到高: SELECT department_id,

MySQL与Oracle 差异比较之三函数

馋奶兔 提交于 2020-01-01 05:46:41
函数 编号 类别 ORACLE MYSQL 注释 1 数字函数 round(1.23456,4) round(1.23456,4) 一样: ORACLE : select round(1.23456,4) value from dual MYSQL :select round(1.23456,4) value 2 abs(-1) abs(-1) 功能 : 将当前数据取绝对值 用法 : oracle 和 mysql 用法一样 mysql: select abs(-1) value oracle: select abs(-1) value from dual 3 ceil(-1.001)) ceiling(-1.001) 功能 : 返回不小于 X 的最小整数 用法 : mysqls: select ceiling(-1.001) value oracle: select ceil(-1.001) value from dual 4 floor(-1.001) floor(-1.001) 功能 : 返回不大于 X 的最大整数值 用法 : mysql: select floor(-1.001) value oracle: select floor(-1.001) value from dual 5 Max(expr)/Min(expr) Max(expr)/Min(expr) 功能 :

oracle 函数大全及运算符

孤街醉人 提交于 2020-01-01 05:42:15
本文以转移至本人的个人博客,请多多关注! 本文以转移至本人的个人博客,请多多关注! 本文以转移至本人的个人博客,请多多关注! 本文以转移至本人的个人博客,请多多关注! http://blog.csdn.net/huangwuyi/article/details/7407820 一、函数 1、 取整 mod(2,10)=2 2、 取整 trunc(12/10)=1 3、 取整 ceil(12/10) =2 4、空(null)指定某个值 nvl(null,9)=9 5、累计之和 sum(piece)=88347 6、统计数量 count(keyid)=194 二、算术运算符 用于执行数学计算,加(+)、减(-)、乘(*)、除(/) 备注:15/10=1.5,而JAVA则为取整数 15/10=1 三、比较运算符 用于将一个表达式与另一个表达式进行比较。 =、!= 、<、>、<=、>= in、like、is null 、between、not between 四、逻辑运算符 用户合并两个条件的结果以产生单个结果。 and 、or、not 五、合并运算符 用于合并两个独立查询的结果。 union、union all、intersect、minus 备注: 1)、intersect: 返回查询结果中相同的部分 eg: 各个部门中有哪些相同的工种 select job from account

oracle函数 SUBSTR(c1,n1[,n2])

倾然丶 夕夏残阳落幕 提交于 2020-01-01 05:35:56
【功能】取子字符串 【说明】多字节符(汉字、全角符等),按1个字符计算 【参数】在字符表达式c1里,从n1开始取n2个字符;若不指定n2,则从第y个字符直到结束的字串. 【返回】字符型 【示例】 SQL> select substr('13088888888',3,8) test from dual; test -------- 08888888 来源: https://www.cnblogs.com/fanweisheng/p/11120070.html

Oracle中to_number()函数的用法

女生的网名这么多〃 提交于 2020-01-01 05:35:00
to_number()函数是oracle中常用的 类型转换函数 之一,是将一些处理过的按一定格式编排过的 字符串 变回数值型的格式。 1、to_number()函数可以将char或varchar2类型的string转换为一个number类型的数值; 2、需要注意的是,被转换的字符串必须符合数值类型格式,如果被转换的 字符串不符合数值型格式, Oracle 将抛出错误提示; 3、to_number和to_char恰好是两个相反的函数; eg: (1)to_number(varchar2 or char,'格式') select to_number('000012134') from dual; select to_number('88877') from dual; (2)如果数字在格式范围内的话,就是正确的,否则就是错误的;如: select to_number('$12345.678', '$999999.99') from dual; select to_number('$12345.678', '$999999.999') from dual; (3)可以用来实现进制转换;16进制转换为10进制: select to_number('19f','xxx') from dual; select to_number('f','xx') from dual; 来源: https:/

oracle 中to_char函数的用法

微笑、不失礼 提交于 2020-01-01 05:34:39
一、日期格式转换    to_char(date,'格式');    select to_date('2005-01-01 ','yyyy-MM-dd') from dual; select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;    二、数字格式转换 to_char(number,'格式'); select to_char(88877) from dual; select to_char(1234567890,'099999999999999') from dual; select to_char(12345678,'999,999,999,999') from dual; select to_char(123456,'99.999') from dual; select to_char(1234567890,'999,999,999,999.9999') from dual; 三、金钱格式转换 to_char(salary,'$99,99'); select TO_CHAR(123,'$99,999.9') from dual; 四、 进制转换:10进制转化为16进制 select to_char(4567,'xxxx') from dual; select to_char(123,'xxx') from

oracle截取字符串

為{幸葍}努か 提交于 2020-01-01 05:34:13
substr函数格式 (俗称:字符截取函数)   格式1: substr(string string, int a, int b);   格式2:substr(string string, int a) ; 解释: 格式1 1、string 需要截取的字符串 2、a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取) 3、b 要截取的字符串的长度 格式2 1、string 需要截取的字符串 2、a 可以理解为从第a个字符开始截取后面所有的字符串。 实例解析 1、substr('HelloWorld',0,3); //返回结果:Hel,截取从“H”开始3个字符 2、substr('HelloWorld',1,3); //返回结果:Hel,截取从“H”开始3个字符 3、substr('HelloWorld',2,3); //返回结果:ell,截取从“e”开始3个字符 4、substr('HelloWorld',0,100); //返回结果:HelloWorld,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。 5、substr('HelloWorld',5,3); //返回结果:oWo 6、substr('Hello World',5,3); //返回结果:o W (中间的空格也算一个字符串,结果是:o空格W) 7、substr(

Oracle截取字符串和查找字符串

好久不见. 提交于 2020-01-01 05:33:32
oracle 截取字符(substr),检索字符位置(instr) case when then else end语句使用 收藏 常用函数:substr和instr 1.SUBSTR(string,start_position,[length]) 求子字符串,返回字符串 解释:string 元字符串 start_position 开始位置(从0开始) length 可选项,子字符串的个数 For example: substr("ABCDEFG", 0); //返回:ABCDEFG,截取所有字符 substr("ABCDEFG", 2); //返回:CDEFG,截取从C开始之后所有字符 substr("ABCDEFG", 0, 3); //返回:ABC,截取从A开始3个字符 substr("ABCDEFG", 0, 100); //返回:ABCDEFG,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。 substr("ABCDEFG", -3); //返回:EFG,注意参数-3,为负值时表示从尾部开始算起,字符串排列位置不变。 2.INSTR(string,subString,position,ocurrence)查找字符串位置 解释:string:源字符串 subString:要查找的子字符串 position:查找的开始位置