SQL人事管理系统如何查询公司所有员工的姓名和工号? 如何查询某个员工的工资信息? 如何查询某个部门的所有员工的信息? 如何查询某个部门的平均工资? 如何查询某个员工的上级领导的姓名和工号? 如何查询某个员工的下属员工的数量? 如何查询公司员工按照工龄从高到低排序的信息? 如何查询公司员工按照工资从高到低排序的信息? 如何查询公司员工按照部门和职位进行分组统计? 如何查询公司员工按照性别和年龄进行分组统计? 如何查询公司员工按照出生日期进行排序? 如何查询公司员工的工资总和? 如何查询公司员工的平均工资? 如何查询公司员工的最高工资和最低工资? 如何查询公司员工的平均年龄? 如何查询公司员工的最高年龄和最低年龄? 如何查询某个员工的离职日期? 如何查询某个员工的入职日期? 如何查询某个员工的工作年限? 如何查询某个员工的出生日期和年龄
时间: 2024-02-12 12:05:50 浏览: 151
各种数据库查询方法,数据库入门,查询员工的方法
好的,以下是每个问题的 SQL 查询语句:
1. 查询公司所有员工的姓名和工号:
```
SELECT name, emp_no FROM employees;
```
2. 查询某个员工的工资信息:
```
SELECT salary FROM salaries WHERE emp_no = '员工工号';
```
3. 查询某个部门的所有员工的信息:
```
SELECT * FROM employees WHERE dept_no = '部门编号';
```
4. 查询某个部门的平均工资:
```
SELECT AVG(salary) FROM salaries WHERE emp_no IN (SELECT emp_no FROM dept_emp WHERE dept_no='部门编号');
```
5. 查询某个员工的上级领导的姓名和工号:
```
SELECT e2.name, e2.emp_no FROM employees e1, employees e2, dept_manager dm WHERE e1.emp_no = '员工工号' AND e1.emp_no = dm.emp_no AND dm.dept_no = e2.dept_no AND dm.to_date = '9999-01-01';
```
6. 查询某个员工的下属员工的数量:
```
SELECT COUNT(*) FROM employees WHERE emp_no IN (SELECT emp_no FROM dept_emp WHERE dept_no IN (SELECT dept_no FROM dept_emp WHERE emp_no = '员工工号'));
```
7. 查询公司员工按照工龄从高到低排序的信息:
```
SELECT * FROM employees ORDER BY (YEAR(CURDATE()) - YEAR(hire_date)) DESC;
```
8. 查询公司员工按照工资从高到低排序的信息:
```
SELECT employees.*, salaries.salary FROM employees INNER JOIN salaries ON employees.emp_no = salaries.emp_no ORDER BY salary DESC;
```
9. 查询公司员工按照部门和职位进行分组统计:
```
SELECT dept_emp.dept_no, employees.title, COUNT(*) FROM dept_emp INNER JOIN employees ON dept_emp.emp_no = employees.emp_no GROUP BY dept_emp.dept_no, employees.title;
```
10. 查询公司员工按照性别和年龄进行分组统计:
```
SELECT gender, FLOOR(DATEDIFF(CURDATE(),birth_date)/365) AS age, COUNT(*) FROM employees GROUP BY gender, age;
```
11. 查询公司员工按照出生日期进行排序:
```
SELECT name, birth_date FROM employees ORDER BY birth_date ASC;
```
12. 查询公司员工的工资总和:
```
SELECT SUM(salary) FROM salaries;
```
13. 查询公司员工的平均工资:
```
SELECT AVG(salary) FROM salaries;
```
14. 查询公司员工的最高工资和最低工资:
```
SELECT MAX(salary), MIN(salary) FROM salaries;
```
15. 查询公司员工的平均年龄:
```
SELECT FLOOR(AVG(DATEDIFF(CURDATE(), birth_date)/365)) FROM employees;
```
16. 查询公司员工的最高年龄和最低年龄:
```
SELECT FLOOR(MAX(DATEDIFF(CURDATE(), birth_date)/365)), FLOOR(MIN(DATEDIFF(CURDATE(), birth_date)/365)) FROM employees;
```
17. 查询某个员工的离职日期:
```
SELECT to_date FROM titles WHERE emp_no = '员工工号' ORDER BY to_date DESC LIMIT 1;
```
18. 查询某个员工的入职日期:
```
SELECT hire_date FROM employees WHERE emp_no = '员工工号';
```
19. 查询某个员工的工作年限:
```
SELECT FLOOR(DATEDIFF(CURDATE(), hire_date)/365) FROM employees WHERE emp_no = '员工工号';
```
20. 查询某个员工的出生日期和年龄:
```
SELECT birth_date, FLOOR(DATEDIFF(CURDATE(), birth_date)/365) AS age FROM employees WHERE emp_no = '员工工号';
```
以上 SQL 查询语句仅供参考,具体查询需根据实际情况进行调整。
阅读全文