oracle中的常用函数、字符串函数、数值类型函数、日期函数,聚合函数。
一、字符串的常用函数。
--一、oracle 字符串常用函数 --1. concat 连接字符串的函数,只能连接【两个】字符串。 字符写在括号中,并用逗号隔开! --2.“||”符号可以连接多个字符串 直接用||将多个字符链接即可。 --3. dual? dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录. select concat('lo','ve')from dual; select concat('o','k')from dual; select concat ('he','llo')from dual; select 'l'||'o'||'v'||'e'from dual; select '第'||'三'||'十'||'八'||'年'||'夏'||'至'from dual; select 'z'||'x'||'f'||'f'||'d'||'b'from dual; --4.initcap 将每个单词的首字母大写。有效位 1位 select initcap('sss')from dual; select initcap('qing')from dual; --5.instr(母字符串,字符串)返回子字符串在母字符串中首次出现的位置,下标从1开始。 select instr('sdfasdfasdf','fa')from dual; select instr('aaaaaaaaaf','f')from dual; --6.upper将所有字母变大写 lower变小写 (有效位都是 1 ) select upper('wer')from dual; select lower('ASDF')from dual; --7.lpad(母字符串,n,字符串)在母字符串的左边补充子字符串。n代表补充之后达到的字符数量。 select lpad('aaa',16,'di')from dual; select lpad('life',16,'love')from dual; --8.rpad 在右边补充 select rpad('life',16,'love')from dual; --9.字符串删除函数 ltrim(删除左边的空格) rtrim(删除右边的空格) select (' life')from dual; select rtrim(' life ')from dual; --10. substr 截取字符串,第一参数 需要处理的字符串 ,二参数 从何开始,三参数,截取的max select substr('春有百花秋有月',3,2)from dual; select substr('夏有凉风冬有雪',3,2)from dual; --11.replace 替换字符串,1参数 需要处理 2参数 被替换的字符串 3替换后的字符串 select replace('城模是金','城模','沉默')from dual; --12.字符去除 --trim leading前 trailing后 both 二者都 select trim (leading '*'from '*****aaa******')from dual; select trim (trailing '*' from ' aaaa*******')from dual; select trim (both '*' from '****aa****')from dual;
二、数值类型的常用函数。
--二、处理数值类型的常用函数 --1.abs 返回指定值的绝对值 select abs(-13)from dual; --2.ceil 返回大于或等于给出数字的最小整数 就是向上取值!3.1---->4 select ceil(3.1)from dual; select ceil(0.123)from dual; --3.floor 对给定的数字取整数 就是向下取值!3.91---->3 select floor (3.91)from dual; --4.mod(n1,n2) n1/n2 取余数 8/3------2 select mod(8,3)from dual; --5.power(n1,n2) n1的n2次方 4,3-----4的3次方----64 select power(4,3)from dual; --6.sign 取数字n的符号,大于0返回1,小于0返回-1,等于0返回0 select sign (45)from dual; select sign(-89)from dual; --7.round 按照指定的精度四舍五入! 这里保留小数点后4位 看第五位小数的值,来进行四舍五入。 select round (2.945414,4)from dual; --8.trunc 按照指定的精度截取一个数,仅仅只做截取,不做四舍五入! select trunc(2.9199,3) from dual; select trunc(3.1269,3) from dual;
三、日期函数。
-- 三、日期函数 --1.sysdate 获取当前日期 2019/5/8 19:12:03 select sysdate from dual; --2.last_day 返回本月的最后一天 2019/5/31 19:11:54 select last_day (sysdate)from dual; --3.add_months 加一个月 2019/6/8 19:11:30 select add_months(sysdate,1)from dual; --4.MONTHS_BETWEEN(date2,date1) 给出date2和date1相差的月份 select months_between(sysdate,'10-5月-2015')from dual; select months_between(sysdate,'8-5月-2020')from dual; --5.trunc(date,fmt) 按指定格式截取日期 fmt 可以是 hh(年月日 时 ) mm(当前月的1号) dd(当前日子) select trunc(sysdate,'hh' )from dual; --6.to_char() 把数字或者日期转换为字符串。转换日期to_char(日期,要转换成的日期的格式) hh12 和hh24 12小时制 和 24小时制 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')from dual; select to_char(sysdate,'yyyy-mm-dd hh12:mi:ss')from dual; --7.to_date() 把字符串转换为日期 有两个参数,第一个参数是要转换的日期的字符串,第二个参数 日期字符串的格式 select to_date('2012-5-12','yyyy-mm-dd')from dual; select to_date('1995-10-06','yyyy-mm-dd')from dual; --8.next_day NEXT_DAY(date,'day') 给出日期date和星期x之后计算下一个星期的日期 当前是 2019/5/8 19:36:01 next_day 计算下礼拜几的当前时间。 select next_day(sysdate,'星期二')from dual; select sysdate from dual;
四、聚合函数。
--四、聚合函数 max min count sum avg --1.求员工平均工资 select avg(sal) from emp; select avg(distinct sal) from emp;--如果工资中有重复的值,则只计算一次 --2.求员工max资 select max(sal) from emp; --3.求员工min资 select min(sal) from emp; --3.求xx总数量 select count(deptno) from emp;