一、字符串的常用函数。
--一、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;