--日期转字符串 select to_char(hiredate,'YYYY-MM-DD HH24:MI:SS'),hiredate from emp; --字符串转日期to_date(),精确到天 select to_date('1980-12-27','YYYY.MM.DD') from dual;
--Oracle中的正则demo --查找ename与给定的正则匹配的数据 select * from emp where regexp_like(ename,'^.*M.*$'); --将给定内容匹配给定正则的部分位置返回 select regexp_instr('abcd23def','d') from dual; --将给定内容匹配给正则的部分用给定字符串替换 select regexp_replace(ename,'w{5,}(w)','1') as n,ename from emp; --若有指定字符,返回与正则表达式匹配的子串(从匹配到开始到字符串结束) select regexp_substr(ename,'N.*'),ename from emp;
--聚合函数 --count()获取条数(emp表中共有14条数据) --聚合函数只是不包含null,但是包含0 select count(comm) from emp; --avg()求平均值 select avg(sal) as 平均工资 from emp; --sum()求和 select sum(sal) as 总工资 from emp; --max()求最大值 select max(sal) 最高工资 from emp; --min()求最小值 select min(sal) 最低工资 from emp; --避免使用count(*)而使用COUNT(ROWID) --ROWID唯一,所以要查一张表有多少条数据用ROWID效率更高 --分组函数(聚合函数)(多行函数)只能有一条结果,所以不能和普通字段一起查询 select min(sal),ename from emp; --报错不是单组分组函数