zoukankan      html  css  js  c++  java
  • Oracle高级查询、事物、过程及函数

    一、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='7369';
    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;
  • 相关阅读:
    主键、外键
    框架学习八:Model查询
    框架学习七:自动验证、填充、字段映射
    框架学习六:ORM方式添加数据
    11.0 C++远征:对象指针
    10.0 C++远征:深拷贝与浅拷贝
    9.0 C++远征:对象成员
    8.0 C++远征:对象数组
    7.0 C++远征:封装小结
    2.0 C++远征:类内定义与内联函数
  • 原文地址:https://www.cnblogs.com/yuchengping/p/3490637.html
Copyright © 2011-2022 走看看