携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第46天,点击查看活动详情
1.数据准备
数据表结构
基础数据
2.几种高级查询说明
查询员工的工资(IFNULL使用)【基本工资加绩效】(薪资结构为sal+comm)--
错误的查询方式:SELECT sal+comm FROM t_emp;
错误原因:comm可能存在null值,在进行加法运算,被赋值为null了
正确的查询方式:
SELECT sal+IFNULL(comm,0) from t_emp
用法:IFNULL(comm,0)函数说明:如果变量comm为空,则赋值为0
查询员工平均工资(AVG函数)
查询语句:
SELECT avg(sal+IFNULL(comm,0)) from t_emp
查询结果:
存在问题:
看到查询结果有6为小数点,我们进行保留两位小数
优化方案: ROUND函数使用
SELECT ROUND(avg(sal+IFNULL(comm,0)),2) from t_emp
查询结果:
查询薪资最高的员工
查询语句:
SELECT MAX(sal+IFNULL(comm,0)) from t_emp
查询结果:
查询名字最长的员工信息(max函数)
查询语句:
SELECT MAX(LENGTH(ename)),empno,job from t_emp
查询结果:
查询总数(count函数)
查询语句:
SELECT COUNT(*) from t_emp
查询结果:
查询语句:
SELECT COUNT(comm) from t_emp
查询结果:
区别:
count(*)和count(字段)的区别:count(id)会统计出所有数量,count(字段)只会统计非空的字段数据
查询入职时间超过40年的员工
查询语句:
SELECT * from t_emp WHERE (DATEDIFF(NOW(),hiredate))/365>40
查询结果: