一、在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');