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

一,数值函数:

1,select ABS (-3) from dual;  --绝对值函数

2,.CEIL 只产生大于或等于指定值的最小整数,要特别留意它对负数产生的影响。  

  select CEIL(5) from dual;    结果5
     select  CEIL(5.3)  from dual;   结果5
     select  CEIL(-2)   from dual;  结果-2
     select  CEIL(-2.4)  from dual; 结果-2  

3,FLOOR 返回等于或小于指定值的最大整数:

  select   FLOOR (5)  from dual;    结果5
     select    FLOOR (5.3)  from dual;  结果5
     select    FLOOR (-2)  from dual;   结果-2
     select    FLOOR (-2.4)  from dual; 结果-3

4,MOD 求余:MOD(value,divisor):

5,POWER 用于计算一个值与给定正指数的乘方:

  select   FOWER(3,2) from dual;    结果9
    select   FOWER(3,3)  from dual;   结果27

6,SQRT 求平方根,注意,如果当试图为一个负数开方时,它会返回一个错误。
    select  SQRT(64)  from dual;   结果8

7,8.ROUND和TRUNC是两个相关的单值函数,TRUNC按精度值截取某个数字,ROUND则根据给定的精度舍入数值。

    select ROUND(126.564,0) from dual;  结果127

    select ROUND(126.564,-2) from dual;  结果100

    select ROUND(126.564,2) from dual;  结果126.56

8,AVG,MAX,MIN和SUM称为聚合函数:

 AVG(列) 求平均值
   SUM(列) 求总合
   MAX(列) 求最大值
   MIN(列) 求最小值

二,字符函数

1,LOWER(char):将字符串转化为小写格式.

    select LOWER(ABCd) from dual;  结果abcd

2,UPPER(char):将字符串转化为大写格式.

    select LOWER(abcd) from dual;  结果ABCD

3,LENGTH(char):返回字符串的长度.

4,LTRIM(char):去掉字符串char左端包含的set中的任何字符,set默认为空格.

5,substr:字符串截取函数:

    select substr('abcd',2,2) from dual;结果为bc

6,字符串连接:||

    select 'ab'||'cd' from dual; 结果为:abcd

7,instr:字符查找函数

    select instr('abcdce','c') from dual;结果为3

8,replace:字符替换函数

    select replace('abcdce','bc','test') from dual;结果为:atestdce 

三,转换函数

1,TO_CHAR、TO_DATE或TO_NUMBER 

    (1)To_char:转换成字符串类型,如:select  To_char(1234.5, '$9999.9') from dual;,结果:$1234.5 
    (2)To_date:转换成日期类型,如:select  To_date('1980-01-01', 'yyyy-mm-dd') from dual;,结果:01-1月-80 

months_between:返回两个日期间的         
月份,如:months_between ('04-11月-05','11-1月-01'),结果,57.7741935 
add_months:返回把月份数加到日期上的新日期,如:add_months('06-2月-03',1),结果,06-3月-03 
add_months('06-2月-03',-1),结果,06-1月-03 
next_day:返回指定日期后的星期对应的新日期,如:next_day('06-2月-03','星期一'),结果,10-2月-03 
last_day:返回指定日期所在的月的最后一天,如:last_day('06-2月-03'),结果,28-2月-03 
round:按指定格式对日期进行四舍五入,如:round(to_date('13-2月-03'),'YEAR'),结果,01-1月-03 
round(to_date('13-2月-03'),'MONTH'),结果,01-2月-03 
round(to_date('13-2月-03'),'DAY'),结果,16-2月-03 

(按周四舍五入) 
trunc:对日期按指定方式进行截断,如:trunc(to_date('06-2月-03'),'YEAR'),结果,01-1月-03 
trunc(to_date('06-2月-03'),'MONTH'),结果,01-2月-03 
trunc(to_date('06-2月-03'),'DAY'),结果,02-2月-03 

(3)To_number:转换成数值类型,如:select  To_number('1234.5') from dual;,结果:1234.5 

2,UNION(交集)和UNION ALL(并集)

    select * from scott.emp UNION select * from scott.emp;

    select * from scott.emp UNION ALL select * from scott.emp;

3,自连接:select manager.ename from scott.emp manager,scott.emp worker where manager.empno=worker.mgr AND worker.ename='smith';

4,内连接和外连接:select table1.column,table2.column from table1[inner|left|right|full]join table2 on table1.column1=table2.column2;

四,  commit(提交)、rollback(滚回去):
         只要涉及到数据的增、删、改就会产生事物,事物要么执行提交,要么全部失败。
         执行commit之后会释放在会话中所有的行和表锁。一旦执行就不能用rollback恢复。
         自动提交事物:执行DDL(create table ,alter table ,drop table )、DCL(grant ,revoke)和退出SQL*plus时。

  事物的ACID属性:原子性,一致性,隔离性,持久性

五,存储过程:

v_name varchar2(30) := 'xx';
begin
  select scott.emp.ename into v_name from scott.emp where empno = v_empno;
  dbms_output.put_line('员工信息' || v_name);
end;

execute

declare
begin
  proc_name(7369);
end;

 

    

posted on 2013-12-23 16:58  指尖生执念  阅读(354)  评论(0编辑  收藏  举报