当前所在位置:珠峰网资料 >> 计算机 >> Oracle认证 >> 正文
Oracle数据库常用函数(3)
发布时间:2010/7/26 10:46:53 来源:城市学习网 编辑:ziteng
  51.BFILENAME(dir,file)
  指定一个外部二进制文件
  SQL>insert into file_tb1 values(bfilename(lob_dir1,image1.gif));
  52.CONVERT(x,desc,source)
  将x字段或变量的源source转换为desc
  SQL> select sid,serial#,username,decode(command,
  2 0,none,
  3 2,insert,
  4 3,
  5 select,
  6 6,update,
  7 7,delete,
  8 8,drop,
  9 other) cmd from v$session where type!=background;
  SID SERIAL# USERNAME CMD
  --------- --------- ------------------------------ ------
  1 1 none
  2 1 none
  3 1 none
  4 1 none
  5 1 none
  6 1 none
  7 1275 none
  8 1275 none
  9 20 GAO select
  10 40 GAO none
  53.DUMP(s,fmt,start,length)
  DUMP函数以fmt指定的内部数字格式返回一个VARCHAR2类型的值
  SQL> col global_name for a30
  SQL> col dump_string for a50
  SQL> set lin 200
  SQL> select global_name,dump(global_name,1017,8,5) dump_string from global_name;
  GLOBAL_NAME DUMP_STRING
  ------------------------------ --------------------------------------------------
  ORACLE.WORLD Typ=1 Len=12 CharacterSet=ZHS16GBK: W,O,R,L,D
  54.EMPTY_BLOB()和EMPTY_CLOB()
  这两个函数都是用来对大数据类型字段进行初始化操作的函数
  55.GREATEST
  返回一组表达式中的最大值,即比较字符的编码大小.
  SQL> select greatest(AA,AB,AC) from dual;
  GR
  --
  AC
  SQL> select greatest(啊,安,天) from dual;
  GR
  --
  天
  56.LEAST
  返回一组表达式中的最小值
  SQL> select least(啊,安,天) from dual;
  LE
  --
  啊
  57.UID
  返回标识当前用户的唯一整数
  SQL> show user
  USER 为"GAO"
  SQL> select username,user_id from dba_users where user_id=uid;
  USERNAME USER_ID
  ------------------------------ ---------
  GAO 25
  58.USER
  返回当前用户的名字
  SQL> select user from dual;
  USER
  ------------------------------
  GAO
  59.USEREVN
  返回当前用户环境的信息,opt可以是:
  ENTRYID,SESSIONID,TERMINAL,ISDBA,LABLE,LANGUAGE,CLIENT_INFO,LANG,VSIZE
  ISDBA 查看当前用户是否是DBA如果是则返回true
  SQL> select userenv(isdba) from dual;
  USEREN
  ------
  FALSE
  SQL> select userenv(isdba) from dual;
  USEREN
  ------
  TRUE
  SESSION
  返回会话标志
  SQL> select userenv(sessionid) from dual;
  USERENV(SESSIONID)
  --------------------
  152
  ENTRYID
  返回会话人口标志
  SQL> select userenv(entryid) from dual;
  USERENV(ENTRYID)
  ------------------
  0
  INSTANCE
  返回当前INSTANCE的标志
  SQL> select userenv(instance) from dual;
  USERENV(INSTANCE)
  -------------------
  1 [NextPage]   LANGUAGE
  返回当前环境变量
  SQL> select userenv(language) from dual;
  USERENV(LANGUAGE)
  ----------------------------------------------------
  SIMPLIFIED CHINESE_CHINA.ZHS16GBK
  LANG
  返回当前环境的语言的缩写
  SQL> select userenv(lang) from dual;
  USERENV(LANG)
  ----------------------------------------------------
  ZHS
  TERMINAL
  返回用户的终端或机器的标志
  SQL> select userenv(terminal) from dual;
  USERENV(TERMINA
  ----------------
  GAO
  VSIZE(X)
  返回X的大小(字节)数
  SQL> select vsize(user),user from dual;
  VSIZE(USER) USER
  ----------- ------------------------------
  6 SYSTEM
  ? 60.AVG(DISTINCT|ALL)
  all表示对所有的值求平均值,distinct只对不同的值求平均值
  SQLWKS> create table table3(xm varchar(8),sal number(7,2));
  语句已处理。
  SQLWKS> insert into table3 values(gao,1111.11);
  SQLWKS> insert into table3 values(gao,1111.11);
  SQLWKS> insert into table3 values(zhu,5555.55);
  SQLWKS> commit;
  SQL> select avg(distinct sal) from gao.table3;
  AVG(DISTINCTSAL)
  ----------------
  3333.33
  SQL> select avg(all sal) from gao.table3;
  AVG(ALLSAL)
  -----------
  2592.59
  61.MAX(DISTINCT|ALL)
  求最大值,ALL表示对所有的值求最大值,DISTINCT表示对不同的值求最大值,相同的只取一次
  SQL> select max(distinct sal) from scott.emp;
  MAX(DISTINCTSAL)
  ----------------
  5000
  62.MIN(DISTINCT|ALL)
  求最小值,ALL表示对所有的值求最小值,DISTINCT表示对不同的值求最小值,相同的只取一次
  SQL> select min(all sal) from gao.table3;
  MIN(ALLSAL)
  -----------
  1111.11
  63.STDDEV(distinct|all)
  求标准差,ALL表示对所有的值求标准差,DISTINCT表示只对不同的值求标准差
  SQL> select stddev(sal) from scott.emp;
  STDDEV(SAL)
  -----------
  1182.5032
  SQL> select stddev(distinct sal) from scott.emp;
  STDDEV(DISTINCTSAL)
  -------------------
  1229.951
  64.VARIANCE(DISTINCT|ALL)
  求协方差
  SQL> select variance(sal) from scott.emp;
  VARIANCE(SAL)
  -------------
  1398313.9
  65.GROUP BY
  主要用来对一组数进行统计
  SQL> select deptno,count(*),sum(sal) from scott.emp group by deptno;
  DEPTNO COUNT(*) SUM(SAL)
  --------- --------- ---------
  10 3 8750
  20 5 10875
  30 6 9400
  66.HAVING
  对分组统计再加限制条件
  SQL> select deptno,count(*),sum(sal) from scott.emp group by deptno having count(*)>=5;
  DEPTNO COUNT(*) SUM(SAL)
  --------- --------- ---------
  20 5 10875
  30 6 9400
  SQL> select deptno,count(*),sum(sal) from scott.emp having count(*)>=5 group by deptno ;
  DEPTNO COUNT(*) SUM(SAL)
  --------- --------- ---------
  20 5 10875
  30 6 9400
  67.ORDER BY
  用于对查询到的结果进行排序输出
  SQL> select deptno,ename,sal from scott.emp order by deptno,sal desc;
  DEPTNO ENAME SAL
  --------- ---------- ---------
  10 KING 5000
  10 CLARK 2450
  10 MILLER 1300
  20 SCOTT 3000
  20 FORD 3000
  20 JONES 2975
  20 ADAMS 1100
  20 SMITH 800
  30 BLAKE 2850
  30 ALLEN 1600
  30 TURNER 1500
  30 WARD 1250
  30 MARTIN 1250
  30 JAMES 950
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved