本文共 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/