MySQL集|每日一题:使用 SQL,操作员工相关数据

313 阅读1分钟

下面是员工信息表(emp)的结构说明:

字段名称字段解释字段类型字段长度约束
empno员工号字符8PK
ename员工姓名字符50NOT NULL
job工作字符20NOT NULL
sal工资数值6NOT NULL
deptno部门号字符4NOT NULL

下面是部门信息表(dept)的结构说明:

字段名称字段解释字段类型字段长度约束
deptno部门号字符4PK
dname部门名字符50NOT NULL

1.请根据上述表格中的内容,写出 emp 表的建表语句。

CREATE TABLE emp (
    empno varchar(8) PRIMARY KEY COMMENT '员工号',
    ename varchar(50) NOT NULL COMMENT '员工姓名',
    job varchar(20) NOT NULL COMMENT '工作',
    sal int(6) NOT NULL COMMENT '工资',
    deptno varchar(4) NOT NULL COMMENT '部门号'
) COMMENT = '员工信息表';

2.列出 emp 表中各部门 job 为 Engineer 的员工的最低工资,最高工资,请写出相应的 SQL 语句。

SELECT
  deptno, MIN(sal), MAX(sal)
FROM
  emp
WHERE
  job = 'Engineer'
GROUP BY deptno;

3.对于 emp 中最低工资小于 1000 的部门,列出 job 为 Engineer 的员工的部门名,最低工资,最高工资,请写出相应的 SQL 语句。

SELECT
  d.dname, MIN(e.sal), MAX(e.sal)
FROM
  emp e, dept d
WHERE
  e.deptno = d.deptno
  AND e.deptno IN (
    SELECT
      deptno
    FROM
      emp
    GROUP BY deptno
    HAVING MIN(sal) <= 1000
  )
  AND e.job = 'Engineer'
GROUP BY e.deptno;

友情提示: 题目来源于各家真实企业,以上回答仅供参考,不能确定是否符合出题人要考查的知识点!