文档库 最新最全的文档下载
当前位置:文档库 › oracle函数大全

oracle函数大全

1、set linesize 100; 设置长度
2、set pagesize 30; 设置每页显示数目
3、em a.sql 打开记事本
4、@ a 执行文件a中的代码,可指定文件的路径 @d:a.txt
5、conn 用户名/密码 根据用户名和密码连接数据库 如果连接超级管理员(sys) 则应加上as sysdba;
6、show user; 显示当前连接的用户
7、select * from tab; 得到当前用户下的所有表
8、desc temp; 查看表结构
9、/ 继续执行上一个查询语句
clear scr; 清屏

字符函数
10、select upper('coolszy') from dual; 将小写字母转换成大写,dual 为一虚表
11、select lower('KUKA') from dual; 将大写字母转换成小写
12、select initcap('kuka') from dual; 将首字母大写
13、select concat('Hello',' world') from dual; 连接字符串,但没有||好用select concat('Hello','world') from dual;
14、select substr('hello',1,3) from dual; 截取字符串
15、select length('hello') from dual; 求字符串长度
16、select replace('hello','l','x') from dual; 替换字符串
17、select substr('hello',-3,3) from dual; 截取后三位

数值函数
18、select round(789.536) from dual; 四舍五入,舍去小数
19、select round(789.536,2) from dual; 保留两位小数
20、select round(789.536,-1) from dual; 对整数进行四舍五入
21、select trunc(789.536) from dual; 舍去小数,但不进位
22、select trunc(789.536,2) from dual;
23、select trunc(789.536,-2) from dual;
24、select mod(10,3) from dual; 返回10%3的结果

日期函数
25、select sysdate from dual; 返回当前日期
26、select months_between(sysdate,'16-6月 -08') from dual; 返回之间的月数
27、select add_months(sysdate,4) from dual; 在日期上加上月数
28、select next_day(sysdate,'星期一') from dual; 求下一个星期一
29、select last_day(sysdate) from dual; 求本月的最后一天


转换函数
30、select to_char(sysdate,'yyyy') year,to_char(sysdate,'mm'),to_char(sysdate,'dd') from dual;
31、select to_char(sysdate,'yyyy-mm-dd') from dual;
32、select to_char(sysdate,'fmyyyy-mm-dd') from dual; 取消月 日 前面的0
33、select to_char('20394','99,999') from dual; 分割钱 9表示格式
34、select to_char('2034','L99,999') from dual; 加上钱币符号
35、select to_number('123')*to_number('2') from dual;
36、select to_date('1988-07-04','yyyy-mm-dd') from dual;

通用函数
37、select nvl(null,0) from dual; 如果为null,则用0代替
38、select decode(1,1,'内容是1',2,'内容是2',3,'内容是3') from dual; 类似于 switch...case...

事务处理
39、commit; 提交事务
40、rollback; 回滚事务


41、select rownum from table; 在没一列前面显示行号
42、drop table 表名 cascade constraint
on delete casecade 当父表中的内容被

删除后,子表中的内容也被删除

43、desc表名 显示表的结构
44、create user identified by [password] 创建新的用户
45、grant 权限1、权限2...to 用户 给创建用户权限
ex:grant create session to 此时只能连接到数据库
grant connect,resource to 此时权限能满足要求
46、alter user identified by [password] 修改用户密码
47、alter user password expired 下次登录时提示修改密码
48、alter user account lock 锁住用户
49、alter user account unlock 解锁锁用户
50、grant select,delete on scott.emp to 把scott下emp表的两个权限给用户
51、revoke select ,delete on scott.emo from 回收权限
Oracle数据库函数(单行函数)

Oracle中的函数和C中的函数差不多,也是有函数名,参数表,和返回值类型组成的,单行函数,是针对每条记录都有一个结果。单行函数可以出现在select 后面,也可以出现在where子句中。

需要处理现实的结果时,就把函数写在select后面,用于条件过滤时,就把函数用在where子句中。

1,字符函数(varchar)

字符是大小写敏感的
转小写 lower(‘...’)
转大写 upper(‘...’)
首字母大写 initcap(‘...’)
dual表,是专门用于函数测试和运算的,他只有一条记录
字符串拼接 concat(‘...’,’....’)
求指定子串 substr(‘...’,起始位置,取字符个数)(起始位置可以为负)
求制定字符串的长度length(‘……’)
可以使用"-"表示从右向左取,取的时候可以从左往友取。
例:
select upper(‘test’) from dual;
select first_name from s_emp where upper(first_name)=’GEORGE’;
select substr(first_name,-2,2) sub from s_emp;(取后两个)
select substr(first_name,2,2) sub from s_emp;(取前两个)

2,数值函数(number)

四舍五入 round(数据,保留小数点后几位)
可以用负数表示小数点前,0,表示小数点后第一位,也就是保留个位,-1表示个位(保留到十 位)。
例:select round(15.36,1) from dual;
结果:15.4

截取数字函数 trunc(数据,保留的位数(小数点后位数)) 截取个位之后补0
例:select trunc(123.456,-1) from dual; 保留倒十位
结果:120

3,日期函数

日期格式,
全日期格式 世纪信息,年月日,时分秒。
缺省日期格式,日-月-年 dd-mon-rr
日期类型是可以进行数学运算的,+1,是下一天,-1,是上一天,数据库会对数据所隐式的转换。

修改当前会话的日期格式,会按照指定的格式输出日期
alter session set nls_date_format='yyyy mm dd hh24:mi:ss';

返回当前日期 sysdate
例:select sysdate+20 from dual;

日期是格式敏感的
求两个日期间相隔了多少个月 months_between(date1,

date2)
加减指定数量的月份 add_months(date,月数),月数可以为负,负值就是减去相应的月数。
从下周开始的日期加一天 next_day(date,天数)

例:select next_day(sysdate,2) from dual;
返回月末的日期 last_day(date)

截取日期 trunc(date,'年或月或日或时分秒')
例:select trunc(add_months(sysdate,1),'month') from dual;

4,不同数据类型间转换函数

将日期转成字符 tochar(date,'日期格式')
日期格式要用有效格式,格式大小写敏感 'yyyy mm dd hh24:mi:ss','year'(全拼的年),'mm'(数字表示的月) 'month'(全拼的月),'day'(星期的全拼),'ddspth' (日期的全拼) 'yy mm dd',’rr-mm-dd’(会根据年份判断世纪)
例:select to_char(sysdate,'yyyy mm dd hh24:mi:ss') from dual;

将字符转换成数字 to_number('...'),(可以加第二参数,第二参数指定定数字进制)

将数字转字符to_char(number,'fmt') fmt是数字格式

将字符串转成日期 to_date('...','日期格式')
例:select to_char(to_date('2006 11 03','yyyy mm dd'),'dd-month-yy')
from dual;

5,函数嵌套

例:select to_char(to_date('2006 11 03','yyyy mm dd'),'dd-month-yy')
from dual;
6、decode函数
例:DECODE(control_value,value1,result1[,value2,result2…][,default_result]);

INITCAT将字符串的第一个字母变为大写
INSTR 找出某个字符串的位置
INSTRB找出某个字符串的位置和字节数
SUBSTR 取字符串的子串
SUBSTRB 取字符串的子串(以字节)
TRANSLATE 执行字符串搜索和替换
NVL 以一个值来替换空值

CEIL(value)大于或等于value的最小整数
COSH(value)反余弦
EXP(value)e的value次幂
FLOOR(value)小于或等于value的最大整数
LN(value)value的自然对数
LOG(value)value的以10为底的对数
MOD(value,divisor)求模
NVL(value,substitute)value为空时以substitute代替
POWER(value,exponent)value的exponent次幂
ROUND(value,precision)按precision 精度4舍5入
SIGN(value)value为正返回1;为负返回-1;为0返回 0.
SINH(value)
SQRT(value)value 的平方根
TANH(value)反正切
TRUNC(value,按precision)按照precision 截取value
VSIZE(value)返回value在ORACLE的存储空间大小
LPAD(str,n[,str2]) LPAD(str,n[,str2])
当n并且都是从左向右取前n个字符。

相关文档