一、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. POJ 1418 基本操作和圆 离散弧

    Viva Confetti Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 761   Accepted: 319 Descr ...

  2. flex新的心得

    主要是对于flex: 与width: 的心得,先看代码. <head> <meta charset="UTF-8"> <meta name=" ...

  3. caffe 源码阅读

    bvlc:Berkeley Vision and Learning Center. 1. 目录结构 models(四个文件夹均有四个文件构成,deploy.prototxt, readme.md, s ...

  4. 浅谈java枚举类

    一.什么情况下使用枚举类? 有的时候一个类的对象是有限且固定的,这种情况下我们使用枚举类就比较方便? 二.为什么不用静态常量来替代枚举类呢? public static final int SEASO ...

  5. HashMap工作原理的介绍!

    HashMap的工作原理是近年来常见的Java面试题.几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间的区别,那么为何这道面试题如此 ...

  6. centos7 Intellij Idea 授权服务器搭建(Jetbrain 家族系列IDE)

    centos7 Intellij Idea 授权服务器搭建 1.上传破解文件 我用的是Xshell客户端,有上传功能,但是linux必须先装lrzsz,也可以通过其他方式传到linux上 yum -y ...

  7. Method and apparatus for establishing IEEE 1588 clock synchronization across a network element comprising first and second cooperating smart interface converters wrapping the network element

    Apparatus for making legacy network elements transparent to IEEE 1588 Precision Time Protocol operat ...

  8. 理解c#

    首先在介绍c#的时候我们要先理解什么是.NET,.NET就是微软的用来实验XML,Web Services,SOA(面向服务的体系结构service-oriented architecture)和敏捷 ...

  9. Android新闻案例clientserver达到,完全自己的新闻节目平台

    一.建设新闻资料库 例如,下面的脚本代码:(正在使用mysql5.0 数据库) SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_z ...

  10. JS 禁止IE用右键

    <!--组合键: -->IE的键盘监听最多只能作用于document上(window我试过不行)如果内嵌了iframe并且你的焦点在iframe上,那么按键无效 这里我用CTRL+Q写的例 ...