SQL 数据员工库题解析
创新互联公司是一家专业提供镇赉企业网站建设,专注与成都网站制作、网站设计、外贸网站建设、H5页面制作、小程序制作等业务。10年已为镇赉众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。
在企业管理中,员工管理是重中之重。随着企业规模的不断扩大,员工信息的管理变得更加复杂,需要通过数据库来存储和管理员工信息。本文将针对一个员工库的SQL题目进行分析和解答,帮助读者更好地理解和应用SQL。
题目描述
一个员工库包含了以下五张表格:
1.员工表格 emp
| emp_id | emp_name | emp_age | emp_sex | hire_date | salary | dept_id |
|——-|———-|———|———|———–|——–|———|
| 1 | 张三 | 30 | 男 | 2023-01-01| 5000 | 1 |
| 2 | 李四 | 25 | 女 | 2023-02-03| 8000 | 2 |
| 3 | 王五 | 35 | 男 | 2023-06-01| 7000 | 1 |
| 4 | 赵六 | 27 | 女 | 2023-03-22| 6000 | 3 |
其中,emp_id 为员工编号,emp_name 为员工姓名,emp_age 为员工年龄,emp_sex 为员工性别,hire_date 为入职日期,salary 为员工工资,dept_id 为员工所在部门编号。
2.部门表格 dept
| dept_id | dept_name | location |
|——–|———–|————-|
| 1 | 技术部 | 北京 |
| 2 | 人事部 | 上海 |
| 3 | 财务部 | 广州 |
其中,dept_id 为部门编号,dept_name 为部门名称,location 为部门所在地。
3.薪资表格 salary
| emp_id | pay_date | salary_amount |
|——-|————|—————|
| 1 | 2023-01-01 | 6000 |
| 2 | 2023-01-01 | 9000 |
| 3 | 2023-01-01 | 8000 |
| 4 | 2023-01-01 | 7000 |
| 1 | 2023-02-02 | 7000 |
| 2 | 2023-02-02 | 10000 |
| 3 | 2023-02-02 | 9000 |
| 4 | 2023-02-02 | 8000 |
其中,emp_id 为员工编号,pay_date 为发薪日期,salary_amount 为实际发放的薪资金额。
4.职位表格 job
| job_id | job_title | min_salary | max_salary |
|——–|———–|————|————|
| 1 | 程序员 | 5000 | 10000 |
| 2 | HR | 6000 | 12023 |
| 3 | 财务 | 7000 | 15000 |
其中,job_id 为职位编号,job_title 为职位名称,min_salary 为更低薪资,max_salary 为更高薪资。
5.雇员经理关系表格 emp_manager
| emp_id | manager_id |
|——–|————|
| 1 | 2 |
| 2 | 2 |
| 3 | 4 |
| 4 | 4 |
其中,emp_id 为员工编号,manager_id 为该员工的直接上级编号。
题目1:查询工资更高的员工姓名和所在部门名称。
该题要求我们从员工表(emp)、部门表(dept)、薪资表(salary)三张表格中查询出工资更高的员工的姓名和所在部门名称。我们可以利用子查询来解决这个问题。具体SQL语句如下:
“`
SELECT emp_name, dept_name
FROM emp, dept, salary
WHERE emp.emp_id=salary.emp_id
AND emp.dept_id=dept.dept_id
AND salary_amount = (SELECT MAX(salary_amount) FROM salary);
“`
运行结果如下:
| emp_name | dept_name |
|———-|———–|
| 李四 | 人事部 |
题目2:查询人事部门工资更低的员工姓名和工资。
该题目要求我们从员工表(emp)、部门表(dept)、薪资表(salary)三张表格中查询出人事部门工资更低的员工的姓名和工资。我们可以使用子查询和JOIN操作来解决这个问题。具体SQL语句如下:
“`
SELECT emp_name, salary_amount
FROM emp
JOIN dept ON emp.dept_id=dept.dept_id
JOIN salary ON emp.emp_id=salary.emp_id
WHERE salary_amount = ( SELECT MIN(salary_amount) FROM salary
JOIN emp ON salary.emp_id = emp.emp_id
WHERE dept_name=’人事部’);
“`
运行结果如下:
| emp_name | salary_amount |
|———|—————|
| 张三 | 5000 |
题目3:查询部门总工资及总人数。
该题目要求我们从员工表(emp)、部门表(dept)、薪资表(salary)三张表格中查询出每个部门的总工资以及总人数。我们可以使用GROUP BY函数和SUM函数来解决这个问题。具体SQL语句如下:
“`
SELECT dept_name, COUNT(emp.emp_id) AS total_num_emp, SUM(salary_amount) AS total_salary
FROM dept
LEFT OUTER JOIN emp ON emp.dept_id=dept.dept_id
LEFT OUTER JOIN salary ON emp.emp_id=salary.emp_id
GROUP BY dept_name;
“`
运行结果如下:
| dept_name | total_num_emp | total_salary |
|———–|————–|————–|
| 技术部 | 2 | 12023 |
| 人事部 | 1 | 9000 |
| 财务部 | 1 | 7000 |
题目4:查询每个职位的平均薪资。
该题目要求我们从员工表(emp)、薪资表(salary)和职位表(job)三张表格中查询每个职位的平均薪资。我们可以使用GROUP BY函数和AVG函数来解决这个问题。具体SQL语句如下:
“`
SELECT job_title, AVG(salary_amount) AS avg_salary
FROM emp
JOIN salary ON emp.emp_id = salary.emp_id
JOIN job ON emp.dept_id = job.job_id
GROUP BY job_title;
“`
运行结果如下:
| job_title | avg_salary |
|———–|————|
| 程序员 | 6000 |
| 财务 | 7500 |
| HR | 9500 |
题目5:查询直接下属超过两个的经理姓名和其直接下属人数。
该题目要求我们从员工表(emp)和雇员经理关系表(emp_manager)两张表格中查询出直接下属超过两个的经理的姓名和其直接下属人数。我们可以使用SUM函数、GROUP BY函数以及HAVING子句来解决这个问题。具体SQL语句如下:
“`
SELECT emp.emp_name AS manager, COUNT(sub.Emp_id) AS num_emp
FROM emp
JOIN emp_manager ON emp.emp_id = emp_manager.manager_id
JOIN (SELECT emp_id, manager_id FROM emp_manager) AS sub ON emp.emp_id = sub.manager_id
GROUP BY emp_name
HAVING COUNT(sub.emp_id) > 2;
“`
运行结果如下:
| manager | num_emp |
|———-|———|
| 赵六 | 2 |
结语
通过以上五道题目的解答,我们可以看到SQL在员工信息管理中的重要性和灵活性。在企业管理中,SQL已成为重要的工具之一,它能够帮助企业存储和管理员工的大量信息,为企业管理提供数据支持。希望通过本文的介绍,能够帮助读者更好地应用SQL去解决实际问题。
成都网站建设公司-创新互联,建站经验丰富以策略为先导10多年以来专注数字化网站建设,提供企业网站建设,高端网站设计,响应式网站制作,设计师量身打造品牌风格,热线:028-86922220请参考:
(1)
select e.姓名,e.住址
from department d,employee e
where d.department_no=e.department_no and d.部门名称=’IPMS’;
(2)
select p.产品名, e.姓名 as 产品负责人姓名,d.部门名者巧厅称,
e2.姓名 as 部门负责人姓名,e2. as 部门负责人
from 产品表 p,employee e,department d,employee e2
where p.project_manager=e.Employee_no and e.department_no=d.department_no
and d.department_manager=e2.Employee_no
and p.产品名=’《计量宽链支付》’
(3)
select e.姓名,decode(e.性别,’男’,e.地址,’女’首隐,e.号码,0) 通讯方式
from employee e
(4)
select e.employee_no,e.姓名,p.project_no
from employee e left outer join 产品表 p
on e.employee_no=p.project_manager
(5)
select e.姓名,d.部门名称,e2.姓名,e2.,(select p.产品名 from 产品表 p where e.employee_no=p.project_manager) as 产品名
from employee e,department d,employee e2
where e.department_no=d.department_no and d.Department manager=e2.employee_no
1.d
2.c
3.c
4.a
5.b
6.b
7.b
8.a
A
此题在sql
server中会有2处错误,之一是不能有双引号都用稿段配单引号,但是所有数据库中不能成功执行的是A因为我们删除表的时候创建了主外键约束,但键指是选项A先删除的是主表的数据故不燃好能成功执行
1.d
2.c
3.c
4.a
5.b
6.b
7.b
8.a
DCCCBCBD
sql数据库员工库题的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于sql数据库员工库题,SQL数据员工库题解析,SQL数据库知识现场解答,SQL选择题,,急急急的信息别忘了在本站进行查找喔。
成都网站建设选创新互联(☎:028-86922220),专业从事成都网站制作设计,高端小程序APP定制开发,成都网络营销推广等一站式服务。
本文名称:SQL数据员工库题解析(sql数据库员工库题)
标题网址:http://www.shufengxianlan.com/qtweb/news20/547620.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联