SQL查询技巧:薪水排序与日期函数

需积分: 15 0 下载量 28 浏览量 更新于2024-08-15 收藏 248KB PPT 举报
"嵌入式数据库基础2-薪水排序与日期函数及组函数应用" 在IT行业中,数据库管理是至关重要的部分,特别是对于处理和分析数据。本资源主要讲解了如何在SQL中对数据进行排序以及使用日期函数和组函数进行数据分析。 首先,排序是数据库查询中的基本操作。在SQL中,可以使用`ORDER BY`语句对数据进行排序。例如,如果你想按照薪水从高到低对员工进行排序,你可以使用以下命令: ```sql SELECT ename, salary FROM emp_xxx ORDER BY salary DESC; ``` 这里的`DESC`关键字表示降序排列,如果省略,则默认为升序(`ASC`)。同时,可以结合多个字段进行排序,例如先按部门(`deptno`)排序,同一部门内再按薪水降序排序: ```sql SELECT ename, deptno, salary FROM emp_xxx ORDER BY deptno, salary DESC; ``` 接下来,我们探讨日期函数。在SQL中,有三个常用的日期和时间函数: 1. `NOW()`:返回当前的日期和时间,格式为`YYYY-MM-DDHH:MM:SS`,数据类型为`DATETIME`。 2. `CURDATE()`:返回今天的日期,格式为`YYYY-MM-DD`,数据类型为`DATE`。 3. `CURTIME()`:返回当前的时间,格式为`HH:MM:SS`,数据类型为`TIME`。 例如,计算员工的入职天数,可以使用`TO_DAYS()`函数: ```sql SELECT ename, hiredate, (TO_DAYS(CURDATE()) - TO_DAYS(hiredate)) AS days FROM emp_xxx; ``` 然后,我们来谈谈组函数。组函数用于对一组值执行计算,包括`COUNT()`, `AVG()`, `SUM()`, `MAX()`和`MIN()`。例如: - `COUNT(*)`返回表中的记录总数。 - `COUNT(hiredate)`返回非`NULL`的`hiredate`值的数量。 - `SUM(salary)`返回所有员工的薪水总和。 - `AVG(salary)`计算所有员工的平均薪水。 需要注意的是,当使用`AVG(salary)`时,它会忽略`NULL`值,因此可能不会反映出所有员工的平均值。为了得到更准确的平均值,可以使用`IFNULL(salary, 0)`来确保即使薪水为`NULL`也参与计算: ```sql SELECT COUNT(*) AS num, SUM(salary) AS sum_sal, AVG(IFNULL(salary, 0)) AS avg_sal FROM emp_xxx; ``` 此外,`MAX(salary)`和`MIN(salary)`分别用于找出员工的最高和最低薪水。 通过掌握这些基本的SQL排序、日期函数和组函数,你将能够更有效地管理和分析嵌入式数据库中的数据,从而在IT领域中提升你的工作效率和分析能力。