数据库SQL函数的基本运用(后续组函数or聚合函数)

本文深入探讨了SQL中的常用字符函数、日期函数以及转换函数的使用方法,并提供了实例演示。此外,还介绍了如何利用组函数进行数据聚合,以及如何通过SQL实现数据筛选和排序。内容涵盖了从基本操作到进阶应用,旨在帮助读者掌握SQL数据处理的核心技能。



--函数
/*

 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 emp
select ename,instr (ename,'s') from emp
  • select length (列名) from emp
select length (ename) from emp
select * from emp where substr (ename,length(ename),1) = 's'
select concat(ename,'每个月') from emp
select 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

  • 组函数(聚合函数)

  1. min():求最小值
  2. max():求最大值
  3. sum():求和
  4. count():计数
  5. avg():平均值
  group by:分组
  
  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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值