--函数
/*
1.字符函数:substr(ename,起始位置,长度):截取;
instr(ename,'元素'):indexOf;
length(ename):长度;
conact(ename,'内容'):
lower(ename):转换为小写
upper(ename):转换为大写
lpad(ename,补充到多少位,'填充内容'):在左边补充
rpad(ename,补充到多少位,'填充内容'):在右边补充
2.日期函数:months_between(起始时间,截止时间):计算起始到截止的月数
add_months(时间,num):在时间中加num个月
last_day( ):当月的最后一天
next_day(start,num):从start开始数下一个星期num-1
3.转换函数:nvl:判空
to_char( ):date/number转换为varchar
to_date( ):varchar转换为date;一般用于新增
to_numbe( ):varchar转换为number
round(sal,num):四舍五入,保留num位小数
trunt():截取
*/
- select substr (ename,1(位置),1(长度)) from tablename
select substr (ename,1,1) from emp
- select instr (ename,'元素') from tablename
select instr (ename,'s') from empselect ename,instr (ename,'s') from emp
- select length (列名) from emp
select length (ename) from empselect * from emp where substr (ename,length(ename),1) = 's'select concat(ename,'每个月') from empselect lower(ename) from emp
- 查询名字仅首字母大写,其余小写的员工信息
select * from emp where substr(ename,1,1)=upper(substr(ename,1,1))
and substr(ename,2,length(ename)-1)=lower(substr(ename,2,length(ename)-1))
select lpad(ename,10,'*') from emp
select rpad(ename,10,'*')from emp
select rpad(lpad(ename,length(ename)+4,'*'),length(ename)+8,'*') from emp
- 日期函数
select months_between(sysdate,hiredate) from emp
- 查询工龄在34年以上的员工信息
select * from emp where months_between(sysdate,hiredate)/12 >= 34
- 工龄34年以上的工资上涨100
update emp set sal = sal + 100 where months_between(sysdate,hiredate)/12 >= 34
- 转换函数
select hiredate,to_char(hiredate,'YYYY') from emp
- 查询工龄在34年以上的员工信息
select * from emp where to_char(sysdate,'YYYY') - to_char(hiredate,'YYYY') >= 34
- 组函数(聚合函数)
- min():求最小值
- max():求最大值
- sum():求和
- count():计数
- avg():平均值
where --> group by --> having --> order by:执行顺序
- 统计记录数
select count(*) from emp
分组group by
- 每个部门的最高工资
select max(sal) from emp group by deptno
- 按谁分组就只能显示谁
select job,max(sal) from emp group by job
- 查询最高工资的人
select * from emp where sal = (select max(sal) from emp)
- 查询平均工资高于2000的部门信息
select deptno from emp group by deptno
having avg(sal) > 2000
- 查询30号部门内部每个工作平均工资高于1000的工作的信息的同时按照平均工资的降序排序
select job,avg(sal) from emp
where deptno = 30
group by job
having avg(sal) > 1000
order by avg(sal) desc
本文深入探讨了SQL中的常用字符函数、日期函数以及转换函数的使用方法,并提供了实例演示。此外,还介绍了如何利用组函数进行数据聚合,以及如何通过SQL实现数据筛选和排序。内容涵盖了从基本操作到进阶应用,旨在帮助读者掌握SQL数据处理的核心技能。
1019

被折叠的 条评论
为什么被折叠?



