教做缝纫的网站,做网站编辑好还是美工好,营销网站,推广专员是主要做什么文章目录 ✨数据处理函数✨if函数✨cast函数✨加密函数 ✨分组函数✨max✨min✨avg✨sum✨count✨分组函数组合使用✨分组函数注意事项 ✨分组查询✨group by✨having✨组内排序 ✨总结单表的DQL语句 #x1f308;你好呀#xff01;我是 山顶风景独好 #x1f495;欢迎来到我… 文章目录 ✨数据处理函数✨if函数✨cast函数✨加密函数 ✨分组函数✨max✨min✨avg✨sum✨count✨分组函数组合使用✨分组函数注意事项 ✨分组查询✨group by✨having✨组内排序 ✨总结单表的DQL语句 你好呀我是 山顶风景独好 欢迎来到我的博客很高兴能够在这里和您见面 希望您在这里可以感受到一份轻松愉快的氛围 这里不仅可以获得有趣的内容和知识也可以畅所欲言、分享您的想法和见解。 欢迎一起踏上探险之旅挖掘无限可能共同成长 大家订阅本专栏本专栏旨在为SQL初学者提供一条逐步迈向高级应用的学习之路带您从零开始一步一步练习逐步掌握SQL的精髓实现技能的提升与飞跃 ✨数据处理函数
✨if函数
如果条件为TRUE则返回“YES”如果条件为FALSE则返回“NO”
SELECT IF(5001000, YES, NO);例如如果工资高于3000则输出1反之则输出0 再例如如果名字是SMITH的工资上调10%其他员工工资正常显示。 再例如工作岗位是MANAGER的工资上调10%是SALESMAN的工资上调20%其他岗位工资正常。 上面这个需求也可以使用case… when… then… when… then… else… end来完成
✨cast函数
cast函数用于将值从一种数据类型转换为表达式中指定的另一种数据类型 语法cast(值 as 数据类型) 例如cast(‘2020-10-11’ as date)表示将字符串’2020-10-11’转换成日期date类型。 在使用cast函数时可用的数据类型包括
date日期类型time时间类型datetime日期时间类型signed有符号的int类型有符号指的是正数负数char定长字符串类型decimal浮点型 ✨加密函数
md5函数可以将给定的字符串经过md5算法进行加密处理字符串经过加密之后会生成一个固定长度32位的字符串md5加密之后的密文通常是不能解密的
✨分组函数
分组函数的执行原则先分组然后对每一组数据执行分组函数。如果没有分组语句group by的话整张表的数据自成一组。 分组函数包括五个
max最大值min最小值avg平均值sum求和count计数
✨max
找出员工的最高薪资
select max(sal) from emp;✨min
找出员工的最低工资
select min(sal) from emp;✨avg
计算员工的平均薪资
select avg(sal) from emp;✨sum
计算员工的工资和
select sum(sal) from emp;计算员工的津贴之和
select sum(comm) from emp;重点所有的分组函数都是自动忽略NULL的。
✨count
统计员工人数
select count(ename) from emp;
select count(*) from emp;
select count(1) from emp;count(*)和count(1)的效果一样统计该组中总记录行数。 count(ename)统计的是这个ename字段中不为NULL个数总和。 例如count(comm) 结果是 4而不是14
select count(comm) from emp;统计岗位数量
select count(distinct job) from emp;✨分组函数组合使用
select count(*),max(sal),min(sal),avg(sal),sum(sal) from emp;
✨分组函数注意事项
分组函数不能直接使用在where子句当中 select ename,job from emp where sal avg(sal); 这个会报错的 原因分组的行为是在where执行之后才开始的。
✨分组查询
✨group by
按照某个字段分组或者按照某些字段联合分组。注意group by的执行是在where之后执行。 语法 group by 字段 group by 字段1,字段2,字段3… 找出每个岗位的平均薪资
select job, avg(sal) from emp group by job;找出每个部门最高工资
select deptno,max(sal) from emp group by deptno;找出每个部门不同岗位的平均薪资
select deptno,job,avg(sal) from emp group by deptno,job;当select语句中有group by的话select后面只能跟分组函数或参加分组的字段
select ename,deptno,avg(sal) from emp group by deptno; // 这个SQL执行后会报错。✨having
having写在group by的后面当你对分组之后的数据不满意可以继续通过having对分组之后的数据进行过滤。 where的过滤是在分组前进行过滤。 使用原则尽量在where中过滤实在不行再使用having。越早过滤效率越高。
找出除20部分之外其它部门的平均薪资。
select deptno,avg(sal) from emp where deptno20 group by deptno; // 建议
select deptno,avg(sal) from emp group by deptno having deptno 20; // 不建议查询每个部门平均薪资找出平均薪资高于2000的。
select deptno,avg(sal) from emp group by deptno having avg(sal) 2000;✨组内排序
案例找出每个工作岗位的工资排名在前两名的。 substring_index函数的使用 group_concat函数的使用 学习了这两个函数之后自己可以尝试写出来吗
✨总结单表的DQL语句
select …5 from …1 where …2 group by …3 having …4 order by …6 重点掌握一个完整的DQL语句执行顺序。 ✨ 这就是今天要分享给大家的全部内容了我们下期再见 我在CSDN等你哦我的主页