oracle数据操作

来源:互联网 发布:北京哪里体检好 知乎 编辑:程序博客网 时间:2024/06/07 10:01

一、在oracle中基本的查询语句与Mysql是相同的,如order by、where条件等

二、函数

1、字符函数

LOWER:将字符转换为小写

UPPER:将字符转换为大写

INITCAP:首写字母大写,其他字符小写

CONCAT:连接字符串

SUBSTR(column,startIndex,num)——  column:列名,startIndex:开始的索引,num:从开始的索引起,获取几个字符

例如:

获取前三个字符:select ename,substr(ename,0,3) from emp

获取后两个字符:select ename,substr(ename,-2,2) from emp

LENGTH:获取字符串长度

TRIM:去掉字符右边或左边的空格

例如:

select trim(ename),ltrim(ename),rtrim(ename) from emp

LTRIM:去掉字符左边的空格

RTRIM:去掉字符右边的空格

2、数值函数

ROUND(num,n):将列或表达式所表示的数值四舍五入到小数点后第n位

例如:

select round('49.255',1),round('49.255',2),round('49.255',-1) from dual;

TRUNC(num,n):将列或表达式的数值截取到小数点后第n位

例如:

select trunc('49.255',1),trunc('49.255',2),trunc('49.255',-1) from dual;

MOD(m,n):m除以n以后的余数

例如:

select mod(3,2) from dual;

3、日期函数

sysdate:获取当前系统日期及时间

例如:

select to_char(sysdate,'yyyy-MM-dd hh:mm:ss') from dual;

用户入职到现在的星期数:select ename,round((sysdate-hiredate)/7,0) as weeks from emp

MONTHS_BETWEEN(date1,date2):返回date1和date2之间的月份数量,结果为正数或负数

例如:

select months_between(sysdate,to_date('2011-01-01','yyyy-MM-dd')) from dual;

add_MONTHS(date,n):向date加上n个月,n必须是正整数

例如:

select add_months(sysdate,2) from dual;

next_day(date,char):求出date之后一周内某天char的日期,char是一个有效表示星期几的数字或字符串

例如:

select next_day(sysdate,7) from dual;

last_day(date):求出date所在月的最后一天

例如:

select last_day(sysdate) from dual;

4、数据类型转换函数

(一)、to_char(date|number,[fmt]):把日期或数值型按照模式fmt转换为变长字符串

转换日期:select to_char(sysdate,'yyyy-MM-dd HH:mm:ss day d q') from dual;

yyy:年,MM:月,dd:日,HH:小时,mm:分钟,ss:秒,day:星期的英文表示,d:星期的数字表示,q:季度

(1)、转换数值: select to_char('89234334.239','L99,999,999.99') from dual;

”L“:本地货币符号,“9”:一个有效位,“,”:千分位,“.”:小数点

(2)、获取一个日期所在的星期X:select '星期' || (to_number(to_char(sysdate,'d')) -1) from dual

(3)、获取月份:select to_char(sysdate,'MM') from dual

(4)、获取天:select to_char(sysdate,'dd') from dual

(5)、获取1981年12月的记录:select * from emp where to_char(hiredate,'MM') = '12' and to_char(hiredate,'yyyy') = '1981'

(二)、to_number(char):把一个由数字组成的字符串转换为数值

select to_number('12312') from dual;

(三)、to_date(char,[fmt]):把一个表示日期的字符串按照日期模式fmt转换为日期

select * from emp where hiredate = to_date('1982/1/23','yyyy/MM/dd');