灰狐tec 2024-06-20 11:03 采纳率: 0%
浏览 6

大一数据库第七章p175 看表格解答问题

(1)查询"技术"岗位,电话号码以186开头的男职工的职工号、姓名和年龄。
(2)查询每个部门每种岗位的职工人数,包括没有职工的岗位。
(3)查询与刘芳同部门同岗位的其他职工信息。
(4)查询比刘芳基本工资高的其他职工,包括职工号、姓名与基本工资。
(5)查询没有职工的岗位信息。
(6)查询研发部职工基本工资的平均值。

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-20 11:03
    关注

    引自免费微信小程序:皆我百晓生

    首先,为了解答这些问题,我需要假设一些关于数据库结构的信息,因为你没有提供具体的表结构和字段名称。基于常见的数据库设计,我会假设有一个名为"Employees"的表,其中包含职工信息,如职工号(EmployeeID)、姓名(Name)、年龄(Age)、性别(Gender)、部门(Department)、岗位(Position)、电话号码(PhoneNumber)和基本工资(BasicSalary)等字段。表的具体结构可能会有所不同,因此你可能需要根据实际情况调整查询语句。下面是根据你的要求写的SQL查询语句:

    (1) 查询"技术"岗位,电话号码以186开头的男职工的职工号、姓名和年龄

    假设性别在数据库中表示为'M'代表男性和'F'代表女性。查询语句如下:

    SELECT EmployeeID, Name, Age
    FROM Employees
    WHERE Position = '技术' AND Gender = 'M' AND PhoneNumber LIKE '186%';
    

    (2) 查询每个部门每种岗位的职工人数,包括没有职工的岗位

    假设部门与岗位信息存储于Employees表中。查询语句可能需要使用LEFT JOIN或GROUP BY结合聚合函数COUNT来实现:

    SELECT Department, Position, COUNT(*) AS EmployeeCount
    FROM Employees
    GROUP BY Department, Position;
    

    此查询会列出所有部门和岗位的组合,即使没有职工也会显示。

    (3) 查询与刘芳同部门同岗位的其他职工信息

    假设我们已知刘芳的部门与岗位信息,查询语句如下:

    SELECT * 
    FROM Employees 
    WHERE Department = (SELECT Department FROM Employees WHERE Name = '刘芳') 
    AND Position = (SELECT Position FROM Employees WHERE Name = '刘芳') 
    AND Name <> '刘芳';
    

    这个查询首先找到刘芳的部门和岗位,然后找出所有同部门同岗位但不是刘芳的职工信息。

    (4) 查询比刘芳基本工资高的其他职工,包括职工号、姓名与基本工资

    假设我们知道刘芳的基本工资,查询语句如下:

    SELECT EmployeeID, Name, BasicSalary 
    FROM Employees 
    WHERE BasicSalary > (SELECT BasicSalary FROM Employees WHERE Name = '刘芳');
    

    此查询找出所有基本工资高于刘芳的职工。注意这里的假设是我们知道刘芳的基本工资值。如果不知道具体值,可能需要更复杂的查询来比较工资范围或等级。

    (5) 查询没有职工的岗位信息 假设每个岗位有对应的记录数来表示员工数量。可以使用聚合函数COUNT结合GROUP BY和HAVING子句来查询没有职工的岗位信息。具体的SQL语句取决于数据库的具体设计,但大致如下: 假设有一个岗位表(Positions),记录每个岗位的信息,查询语句如下: SELECT Position FROM Positions WHERE NOT EXISTS (SELECT 1 FROM Employees WHERE Position = Positions.Position); 这个查询会列出所有没有员工的岗位信息。注意这个查询依赖于你的数据库设计中是否存在这样的关联关系表。如果Employees表中直接存储了岗位信息,那么只需修改对应的字段即可。 ### (6) 查询研发部职工基本工资的平均值 使用聚合函数AVG来计算特定部门(这里是研发部)的平均基本工资。假设部门信息存储在Employees表中,查询语句如下: SELECT AVG(BasicSalary) AS AverageSalary FROM Employees WHERE Department = '研发部'; 这个查询会返回研发部所有员工的平均基本工资。 如果你的数据库结构不同,请根据实际情况调整字段名称和表名。希望这些解答能帮助你理解如何使用SQL来解决这些问题。如果有任何不清楚的地方或者需要进一步的帮助,请告诉我具体的数据库结构和表结构信息。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月20日

悬赏问题

  • ¥15 java和硬件交互问题
  • ¥15 前台多人编辑时怎么让每个人保存刷新都互不干扰
  • ¥20 如何用Python删除单元格内连续出现的重复词?
  • ¥15 WangEditor嵌入到geeker-admin中,回车没有办法换行
  • ¥30 stm32f103c8t6制作万能红外遥控器
  • ¥15 有人会fastcrud写前端页面吗
  • ¥15 如何解除Uniaccess管控
  • ¥15 微信小程序跳转关联公众号
  • ¥15 Java AES 算法 加密采用24位向量报错如何处理?
  • ¥15 使用X11可以找到托盘句柄,监控到窗口点击事件但是如何在监听的同时获取托盘中应用的上下文菜单句柄