MySQL---多表等级查询综合练习

创建emp表

CREATE TABLE emp(

empno INT(4) NOT NULL COMMENT '员工编号',

ename VARCHAR(10) COMMENT '员工名字',

job VARCHAR(10) COMMENT '职位',

mgr INT(4) COMMENT '上司',

hiredate DATE COMMENT '入职时间',

sal INT(7) COMMENT '基本工资',

comm INT(7) COMMENT '补贴',

deptno INT(2) COMMENT '所属部门编号'

);

emp表添加主键

mysql> alter table emp add primary key(empno);     

Query OK, 0 rows affected (0.01 sec)               

Records: 0  Duplicates: 0  Warnings: 0 

emp表添加外键约束    

在MySQL中,可以使用alter  table 语句来添加外键约束。以下是基本的语法:

ALTER TABLE table_name
ADD FOREIGN KEY (column_name) REFERENCES other_table(other_column);
在这个语句中:

  • table_name是你想要添加外键的表的名称。
  • column_name是你想要设置为外键的列的名称。
  • other_table是包含外键引用的表的名称。
  • other_column是在other_table中的列的名称。

 ALTER TABLE emp ADD CONSTRAINT f_ed_key  FOREIGN KEY (deptno)   REFERENCES dept(deptno);

emp表中插入数据

INSERT INTO `emp` VALUES('7369','张倩','办事员','7902','2002-12-17','820',NULL,'20');

INSERT INTO `emp` VALUES('7499','刘博','售货员','7698','1992-02-20','1900','300','30');

INSERT INTO `emp` VALUES('7521','李兴','售货员','7698','1995-07-22','1250','500','30');

INSERT INTO `emp` VALUES('7566','李雷','人事部长','7839','1991-04-02','975',NULL,'20');

INSERT INTO `emp` VALUES('7654','刘浩','售货员','7698','1991-09-28','1250','1400','30');

INSERT INTO `emp` VALUES('7698','刘涛','销售部长','7839','1997-05-01','2850',NULL,'30');

INSERT INTO `emp` VALUES('7782','华仔','人事部长','7839','1995-06-09','2450',NULL,'10');

INSERT INTO `emp` VALUES('7788','张飞','人事专员','7566','1998-04-19','3000',NULL,'20');

INSERT INTO `emp` VALUES('7839','马晓云','董事长',NULL,'1991-11-17','5000',NULL,'10');

INSERT INTO `emp` VALUES('7844','马琪','售货员','7698','1996-09-08','1500','0','30');

INSERT INTO `emp` VALUES('7876','李涵','办事员','7788','1997-05-23','1100',NULL,'20');

INSERT INTO `emp` VALUES('7900','李小涵','销售员','7698','1993-2-13','950',NULL,'30');

INSERT INTO `emp` VALUES('7902','张三','人事组长','7566','1992-10-08','3000',NULL,'20');

INSERT INTO `emp` VALUES('7934','张三丰','人事长','7782','1997-06-23','1300',NULL,'10');

查询emp表的内容

mysql> select * from emp;

创建salgrade表

CREATE TABLE salgrade(

grade INT (10) COMMENT '工资等级',

losal INT (10) COMMENT '最低限额',

hisal INT (10) COMMENT '最高限额'

);

salgrade表中插入数据

INSERT INTO salgrade (grade, losal, hisal)VALUES (1, 700, 1200);

INSERT INTO salgrade (grade, losal, hisal)VALUES (2, 1201, 1400);

INSERT INTO salgrade (grade, losal, hisal)VALUES (3, 1401, 2000);

INSERT INTO salgrade (grade, losal, hisal)VALUES (4, 2001, 3000);

INSERT INTO salgrade (grade, losal, hisal)VALUES (5, 3001, 9999);

查询 salgrade 表内容

mysql> select * from salgrade;  

1.查询每个工资等级各有多少员工

在进行 join  操作时,可以使用 where 子句来添加额外的过滤条件,或者使用group by 、having 和order by 子句来进行数据分组和排序。

mysql> select grade 等级,count(*) 员工人数 from emp e join salgrade s

where e.sal>=losal and e.sal <=hisal group by grade; 

 2.查询部门中(所有人)的平均工资等级

join salgrade s on e.sal between s.losal and s.hisal: 这部分是连接 emp 表和 salgrade 表。连接条件是 emp表的sal字段值在 salgrade losal hisal 字段值之间。

mysql> select e.deptno 部门编号, avg(grade) 平均工资等级 from emp e  join salgrade s on e.sal between s.losal and s.hisal group by e.deptno;

相关推荐

  1. MYSQL-----查询详解,配有练习讲解

    2024-01-23 01:28:01       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-23 01:28:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-23 01:28:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-23 01:28:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-23 01:28:01       18 阅读

热门阅读

  1. 【0246】深入分析PG内核Write-Ahead Log的实现机制

    2024-01-23 01:28:01       32 阅读
  2. 力扣208题:实现Tire(前缀树)

    2024-01-23 01:28:01       36 阅读
  3. Leetcode 3011. Find if Array Can Be Sorted

    2024-01-23 01:28:01       29 阅读
  4. docker下安装rabbitmq

    2024-01-23 01:28:01       36 阅读
  5. fastapi框架

    2024-01-23 01:28:01       32 阅读
  6. C# Cad 文字信息导入导出(八)

    2024-01-23 01:28:01       43 阅读
  7. ansible模块讲解

    2024-01-23 01:28:01       34 阅读
  8. Day32- 贪心算法part06

    2024-01-23 01:28:01       38 阅读
  9. RHCE第三次作业

    2024-01-23 01:28:01       33 阅读
  10. QReadWriteLock的学习

    2024-01-23 01:28:01       30 阅读
  11. 【vue-cli详细介绍】

    2024-01-23 01:28:01       34 阅读
  12. HttpServletRequest HttpEntity StringEntity 区别

    2024-01-23 01:28:01       31 阅读