51、bfilename(dir,file)
指定一个外部二进制文件;
SQL>insert into 表名 values(bfilename('文件路径','文件名'));
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
52-1、decode函数类似于java的switch case分支语句
SQL>select ename||decode(deptno,10,'在10号部门',20,'在20号部门',30,'在30号部门') from emp where ename='SCOTT' order by deptno;
ENAME||DECODE(DEPTNO,10,'在10?
------------------------------
SCOTT在20号部门
53、dump(s,fmt,start,length)
dump函数以fmt指定的内部数字格式返回一个varchar2类型的值;(主要用于查看类型格式长度)
SQL>select dump(ename) from emp where ename='SCOTT';
DUMP(ENAME)
---------------------------
Typ=1 Len=5: 83,67,79,84,84
54、empty_blob()和empty_clob()
这两个函数都是用来对大数据类型字段进行初始化操作的函数
55、greatest
返回一组表达式中的最大值,即比较字符的编码大小;
SQL>select greatest('AA','AB','AC') from dual;
GREATEST('AA','AB','AC')
------------------------
AC
56、least
返回一组表达式中最小值;
SQL>select least('AA','AB','AC') from dual;
LEAST('AA','AB','AC')
---------------------
AA
57、uid
返回标识当前用户的唯一整数;(可以看到使用操作oracle用户的唯一uid编号)
SQL>select uid from dual;
UID
----------
84
58、user
返回当前用户的名字
SQL>select user from dual;等同于SQL>show user;
USER
------------------------------
SCOTT
59、userenv
返回当前用户环境的信息,opt可以是:
ENTRYID,SESSIONID,TERMINAL,ISDBA,LABLE,LANGUAGE,CLIENT_INFO,LANG,VSIZEISDBA
查看当前用户是否是DBA如果是则返回true
SQL>select userenv('isdba') from dual;
USERENV('ISDBA')
----------------
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
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只对不同的值求平均值
SQL>select avg(distinct sal) from emp;
AVG(DISTINCTSAL)
----------------
2064.58333333333
SQL> select avg(all sal) from emp;
AVG(ALLSAL)
-----------
2073.214285
61、max(distinct|all)
求最大值,ALL表示对所有的值求最大值,DISTINCT表示对不同的值求最大值,相同的只取一次
SQL>select max(distinct sal) from emp;
MAX(DISTINCTSAL)
----------------
5000
62、min(distinct|all)
求最小值,ALL表示对所有的值求最小值,DISTINCT表示对不同的值求最小值,相同的只取一次
SQL>select min(all sal) from emp;
MIN(ALLSAL)
-----------
800
63、stddev(distinct|all)
求标准差,ALL表示对所有的值求标准差,DISTINCT表示只对不同的值求标准差
SQL>select stddev(sal) from scott.emp;
STDDEV(SAL)
-----------
1182.5032
SQL>select stddev(distinct sal) from emp;
STDDEV(DISTINCTSAL)
-------------------
1229.951
64、variance(distinct|all)
求协方差
SQL>select variance(sal) from emp;
VARIANCE(SAL)
-------------
1398313.9
65、group by
主要用来对一组数进行统计
SQL> select deptno,count(*),sum(sal) from emp group by deptno;
DEPTNO COUNT(*) SUM(SAL)
------ ---------- ----------
30 6 9400
20 5 10875
10 3 8750
66、having
对分组统计再加限制条件
SQL> select deptno,count(*),sum(sal) from emp group by deptno having count(*)>=5;
DEPTNO COUNT(*) SUM(SAL)
------ ---------- ----------
30 6 9400
20 5 10875
SQL> select deptno,count(*),sum(sal) from emp having count(*)>=5 group by deptno;
DEPTNO COUNT(*) SUM(SAL)
------ ---------- ----------
30 6 9400
20 5 10875
67、order by
用于对查询到的结果进行排序输出(升序排序asc,降序排序desc)
SQL> select deptno,ename,sal from scott.emp order by deptno,sal desc;
DEPTNO ENAME SAL
------ ---------- ---------
10 KING 5000.00
10 CLARK 2450.00
10 MILLER 1300.00
20 SCOTT 3000.00
20 FORD 3000.00
20 JONES 2975.00
20 ADAMS 1100.00
20 SMITH 800.00
30 BLAKE 2850.00
30 ALLEN 1600.00
30 TURNER 1500.00
30 MARTIN 1250.00
30 WARD 1250.00
30 JAMES 950.00
sql函数的使用--系统函数
sys_context
1、terminal:当前会话客户所对应的终端标识符;
2、lanuage:语言;
3、db_name:当前数据库名称;
4、nls_date_format:当前会话客户所对应的日期格式;
5、session_user:当前会话客户所对应的数据库用户名;
6、current_schema:当前会话客户所对应的默认方案名;
7、host:返回数据库所在主机的名称;
通过该函数,可以查询一些重要信息,比如你正在使用哪个数据库?
select sys_context('userenv','db_name') "数据库名称",sys_context('userenv','language') "语言" from dual;
数据库名称 语言
------------------------ -----------------------------------
orcl SIMPLIFIED CHINESE_CHINA.ZHS16GBK