一、SQL函数

  1、分类:单行函数(日期、数值、转换、字符等),多行函数,也称为分组函数(max、min、avg、sum、row_number、rank等)。

  2、数值函数

  •   abs(n):求数字n的绝对值
  •   ceil(n):返回大于等于数字n的最小整数
  •   floor(n):返回小于等于数字n的最大整数
  •   round(n,[m]):执行四舍五入运算。如果省略m或为0,则四舍五入至整数位,如果m是负数,则四舍五入到小数点前m位,如果m是正数,则四舍五入至小数点后m位。
  • trunc(n,[m]):截取数字。如果省略m,则将数字n的小数部分截取,如果m是负数,则将n截取至小数点前的m位,如果m是正数,则将数字n截取至小数点后的第m位。
  • power(n,m):求数字n的m次方。
  • sqrt(n):开方。
  • mod(n,m):取余。
  • sign(n):如果数字n为正数,则标记为1,为负数,则标记为-1,为0,则标记为0。

  3、字符函数(输入参数是字符型,返回值是字符型和数值型)

  •   lower(char):将字符串转换为小写格式。
  •   upper(char):将字符串转换为大写格式。
  •   length(char):返回字符串的长度。
  •   ltrim(char,[,set]):去掉字符串char左端包含的set中的任何字符。set默认为空格。
  •   rtrim(char,[,set]):去掉字符串char右端包含的set中的任何字符。set默认为空格。
  •   replace(char,search_string[,replace_string]):将字符串中的字符替换为指定的字符。
  •   substr():截取,concat():合并,instr():获取字符串的索引位置。Oracle中索引从1开始。

    4、转换函数

  •   to_number(char[,fmt[,nls_param]]):将符合特定字符串格式的字符串转换为数字值。
  •   to_char(date|[,fmt[,nls_param]]):将日期型转换为字符串,其中fmt用于指定日期格式。
  •   to_date(char[,fmt[,nls_param]]):将符合特定格式的字符串转换为date类型的值。
  •   nvl(expr1,expr2):将null转变为实际值。如果expr1是null,则返回expr2;如果expr1不是null,则返回expr1。
  •   nvl2(expr1,expr2,expr3):如果expr1不是null,则返回expr2,为null,则返回expr3。

二、多表查询

  1、集合操作符

  •   union:返回查询检索到的所有不重复的行。
  •   intersect:返回两个查询都检索到的行(重复行)。
  •   union all:返回查询检索的所用行,包括重复行。
  •   minus:返回第一个查询检索到的行减去第二个查询检索的行所剩余的行。

  2、连接查询(联合查询,内外连接,自连接,子查询)

三、事务处理

  1、commit:提交事务,rollback:回滚事务,savepoint:保存点,rollback to 保存点:回滚到保存点。

  2、事务的ACID属性(原子性,一致性,隔离性,持久性)

四、过程和函数

  1、存储过程

1 --创建存储过程
2 create [or replace] procedure procedure_name(argument1 [model] datatype1,argument1 [model] datatype1,...)--指定参数数据类型时,不能指定其长度
3 is[as]
4 PL/SQL BLOCK;
5 --调用存储过程
6 declare
7 begin
8 存储过程名/存储过程名(argument);
9 end;

  2、函数

 1--创建函数语法
2 create [or replace] function function_name(argument1 [model] datatype1,argument1 [model] datatype1,...)
3 return datatype
4 is[as]
5 PL/SQL BLOCK;
6 --创建函数
7 create or replace funciton get_user
8 return varchar2
9 is
10 v_user varchar(100);
11 begin
12 select ename into v_user from scott.emp where empno='';
13 return v_user;
14 end;
15 --使用变量接受函数返回值
16 declare
17 username varchar(100);
18 begin
19 username:=get_user;
20 dbms_output.put_line(username);
21 end;
22--可以使用SQL语句直接调用函数,带out和in out参数的函数不能在SQL中被调用
23 select get_user from dual;

Oracle高级查询、事物、过程及函数的更多相关文章

  1. Oracle高级查询,事物,过程及函数

    一 数值函数 数值 abs,ceil,floor,round,trunc字符串 instr,substr SQL>SELECT 'ABS':'|| ABS(-12.3) FROM DUAL; 运 ...

  2. oracle高级查询(实例基于scott用户四张表)

    oracle高级查询(实例基于scott用户四张表) 分组查询 多表查询 子查询 综合实例 ====================================================== ...

  3. Oracle 高级查询、事物、过程及函数

    一.Sql函数 1.数值函数(输入参数和返回值都是数值型,多数函数精确到38位) --多少次方 ,) from dual; --开方 ) from dual; --绝对值 ) from dual; - ...

  4. oracle中的创建过程,函数,包

    一.创建存储过程 存储过程是在oracle中存取完成特定业务逻辑的代码块.存储过程是命名块,匿名块不存在数据库中,命名块会存储到数据库中,匿名块每次运行都需要提前编译,命名块一次存储,只会编译一次.命 ...

  5. Oracle学习笔记(2)——过程和函数

    过程和函数统称为PL/SQL子程序,通过输入.输出参数或输入/输出参数与其调用者交换信息.他们是被命名的PL/SQL块,被编译后存储在数据库中,以备执行.因此,可以在数据库中直接按名称使用它们. 1. ...

  6. Oracle高级查询之OVER

    注释:为了方便大家学习和测试,所有的例子都是在Oracle自带用户Scott下建立的 oracel的高级用法:rank()/dense_rank() over(partition by ...orde ...

  7. Oracle高级查询之CONNECT BY

    为了方便大家学习和测试,所有的例子都是在Oracle自带用户Scott下建立的. Oracle中的select语句可以用start with ... connect by prior ...子句实现递 ...

  8. Oracle 高级查询

    Oracle SQL 一些函数用法 以下sql环境都是在 Oracle 11g/scott完成 Group by 与GROUP BY一起使用的关建字 GROUPING,GROUP SET,ROLLUP ...

  9. Oracle高级查询,over 用法

    注:标题中的红色order by是说明在使用该方法的时候必须要带上order by. 一.rank()/dense_rank() over(partition by ...order by ...) ...

随机推荐

  1. 利用WPF建立自己的3d gis软件(非axhost方式)(八)拖动一个UI到地球上

    原文:利用WPF建立自己的3d gis软件(非axhost方式)(八)拖动一个UI到地球上 先下载SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV0bPew ...

  2. android游戏开发系列(2)——背景音乐播放技术

    背景音乐通常播放时间较长,且文件体积也相对较大.这类资源如果放在内存中,一方面给硬件资源本身就很紧缺的手机造成了负担,另一方面通常也没有这方面的需求,放在内存中,在调用时播放速度较快,而长时音乐文件通 ...

  3. JScript实现将指定目录下的vc工程加到解决方案

    作者:朱金灿 来源:http://blog.csdn.net/clever101 main(); function main() { try { var WSShell = WScript.Creat ...

  4. IEditableObject的一个通用实现

    原文:IEditableObject的一个通用实现 IeditableObject是一个通用接口,用于支持对象编辑.当我们在界面上选择一个条目,然后对其进行编辑的时候,接下来会有两种操作,一个是保持编 ...

  5. matlab 读写其他格式数据文件(excel)

    1. excel matlab和excel 中的数据互相导入 xlswrite() mat ⇒ excel 请问怎么把大容量的mat文件导出到excel文件中 – MATLAB中文论坛 % data. ...

  6. WPF中使用AxisAngleRotation3D实现CAD的2D旋转功能

    原文:WPF中使用AxisAngleRotation3D实现CAD的2D旋转功能       对于CAD图形来说,3D旋转比较常用,具体实现方法在上篇文章<WPF中3D旋转的实现 >中做了 ...

  7. WPF中实现图片文件转换成Visual对象,Viewport3D对象转换成图片

    原文:WPF中实现图片文件转换成Visual对象,Viewport3D对象转换成图片 1.图片文件转换成Visual对象 private Visual CreateVisual(string imag ...

  8. ios 时间戳 当前时间 相互转化

    1.今天在做一个webservice的接口的时候,被要求传一个时间戳过去,然后就是开始在Google上找 2.遇到两个问题,一,当前时间转化为时间戳,二,获取的当前时间和系统的时间相差8个小时 一,转 ...

  9. WPF 元素tag属性绑定一个属性或一个对象

    <Window x:Class="CollectionBinding.CategoryDataTemp"        xmlns="http://schemas. ...

  10. windows管理员利器之用Log Parser Studio分析IIS日志(附逐浪CMS官方命令集)

    原文:windows管理员利器之用Log Parser Studio分析IIS日志(附逐浪CMS官方命令集) Log Parser Studio是一个强大的IIS图形分析工具,值得推荐. 1. 安装L ...