本文共 3895 字,大约阅读时间需要 12 分钟。
以下是MySQL数据库中的emp
表结构及其数据展示:
EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO |
---|---|---|---|---|---|---|---|
7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20 |
7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600.00 | 300.00 | 30 |
字段分别为:员工编号、员工姓名、员工职位、员工上级领导编号、员工雇佣日期、员工薪水、员工津贴、员工部门编号。
select ename, sal from emp order by sal;
结果如下:
ename | sal |
---|---|
SMITH | 800.00 |
JAMES | 950.00 |
select ename, sal from emp order by sal desc;
结果如下:
ename | sal |
---|---|
KING | 5000.00 |
SCOTT | 3000.00 |
select ename, sal from emp order by sal desc, ename asc;
结果如下:
ename | sal |
---|---|
KING | 5000.00 |
FORD | 3000.00 |
select sum(sal) from emp;
结果:
sum(sal) |
---|
29025.00 |
select max(sal) from emp;
结果:
max(sal) |
---|
5000.00 |
select min(sal) from emp;
结果:
min(sal) |
---|
800.00 |
select avg(sal) from emp;
结果:
avg(sal) |
---|
2073.214286 |
select count(*) from emp;
结果:
count(*) |
---|
14 |
select count(comm) from emp;
结果:
count(comm) |
---|
4 |
select sum(comm) from emp;
结果:
sum(comm) |
---|
2200.00 |
select count(*) from emp where deptno = 20;
结果:
count(*) |
---|
7 |
select count(*), sum(sal), avg(sal), max(sal), min(sal) from emp;
结果如下:
count(*) | sum(sal) | avg(sal) | max(sal) | min(sal) |
---|---|---|---|---|
14 | 29025.00 | 2073.214286 | 5000.00 | 800.00 |
当直接在WHERE子句中使用分组函数时,会因为分组函数的执行顺序问题导致错误。分组函数必须在GROUP BY子句中明确声明。正确的做法是:
select ename, sal from emp where sal > (select avg(sal) from emp);
使用ifnull()
函数可以处理NULL值。例如:
select ename, ifnull(comm, 0) as comm from emp;
结果如下:
ename | comm |
---|---|
SMITH | 0.00 |
select ename, (sal + ifnull(comm, 0)) * 12 as yearsal from emp;
结果如下:
ename | yearsal |
---|---|
SMITH | 9600.00 |
通过以上示例,可以更好地理解和应用MySQL数据库中的查询操作和数据分析功能。
转载地址:http://qrbfk.baihongyu.com/