-- 部门表
CREATE TABLE dept (id INT PRIMARY KEY PRIMARY KEY, -- 部门iddname VARCHAR(50), -- 部门名称loc VARCHAR(50) -- 部门所在地
);-- 添加4个部门
INSERT INTO dept(id,dname,loc) VALUES
(10,'教研部','北京'),
(20,'学工部','上海'),
(30,'销售部','广州'),
(40,'财务部','深圳');-- 职务表,职称,职务描述
CREATE TABLE job (id INT PRIMARY KEY,jname VARCHAR(20),description VARCHAR(50)
);-- 添加4个职务
INSERT INTO job (id, jname, description) VALUES
(1, '董事长', '管理整个公司,接单'),
(2, '经理', '管理部门员工'),
(3, '销售员', '向客人推销产品'),
(4, '文员', '使用办公软件');-- 员工表
CREATE TABLE emp (id INT PRIMARY KEY, -- 员工idename VARCHAR(50), -- 员工姓名job_id INT, -- 职务idmgr INT , -- 上级领导joindate DATE, -- 入职日期salary DECIMAL(7,2), -- 工资bonus DECIMAL(7,2), -- 奖金dept_id INT, -- 所在部门编号CONSTRAINT emp_jobid_ref_job_id_fk FOREIGN KEY (job_id) REFERENCES job (id),CONSTRAINT emp_deptid_ref_dept_id_fk FOREIGN KEY (dept_id) REFERENCES dept (id)
);-- 添加员工
INSERT INTO emp(id,ename,job_id,mgr,joindate,salary,bonus,dept_id) VALUES
(1001,'孙悟空',4,1004,'2000-12-17','8000.00',NULL,20),
(1002,'卢俊义',3,1006,'2001-02-20','16000.00','3000.00',30),
(1003,'林冲',3,1006,'2001-02-22','12500.00','5000.00',30),
(1004,'唐僧',2,1009,'2001-04-02','29750.00',NULL,20),
(1005,'李逵',4,1006,'2001-09-28','12500.00','14000.00',30),
(1006,'宋江',2,1009,'2001-05-01','28500.00',NULL,30),
(1007,'刘备',2,1009,'2001-09-01','24500.00',NULL,10),
(1008,'猪八戒',4,1004,'2007-04-19','30000.00',NULL,20),
(1009,'罗贯中',1,NULL,'2001-11-17','50000.00',NULL,10),
(1010,'吴用',3,1006,'2001-09-08','15000.00','0.00',30),
(1011,'沙僧',4,1004,'2007-05-23','11000.00',NULL,20),
(1012,'李逵',4,1006,'2001-12-03','9500.00',NULL,30),
(1013,'小白龙',4,1004,'2001-12-03','30000.00',NULL,20),
(1014,'关羽',4,1007,'2002-01-23','13000.00',NULL,10);-- 工资等级表
CREATE TABLE salarygrade (grade INT PRIMARY KEY,   -- 级别losalary INT,  -- 最低工资hisalary INT -- 最高工资
);-- 添加5个工资等级
INSERT INTO salarygrade(grade,losalary,hisalary) VALUES
(1,7000,12000),
(2,12010,14000),
(3,14010,20000),
(4,20010,30000),
(5,30010,99990);
-- 1.查询所有员工信息。查询员工编号,员工姓名,工资,职务名称,职务描述
SELECT
emp.`id`,
emp.`ename`,
emp.`salary`,
job.`id`,
job.`description`
FROM
emp,
job
WHERE
emp.`job_id`= job.`id`;-- 2.查询员工编号,员工姓名,工资,职务名称,职务描述,部门名称,部门位置
SELECT
emp.`id`,
emp.`ename`,
emp.`salary`,
job.`jname`,
job.`description`,
dept.`dname`,
dept.`loc`
FROM
emp,
job,
dept
WHERE
emp.`job_id`=job.`id`AND emp.`dept_id`= dept.`id`;-- 3.查询员工姓名,工资,工资等级
SELECT
emp.`ename`,
emp.`salary`,
salarygrade.`grade`
FROM
emp,
salarygrade
WHERE
emp.`salary`BETWEEN salarygrade.`losalary` AND salarygrade.`hisalary`;-- 4.查询员工姓名,工资,职务名称,职务描述,部门名称,部门位置,工资等级
SELECT
emp.`ename`,
emp.`salary`,
job.`jname`,
job.`description`,
dept.`dname`,
dept.`loc`,
salarygrade.`grade`
FROM
emp,
job,
dept,
salarygrade
WHERE
emp.`job_id`=job.`id`AND emp.`dept_id`= dept.`id`
AND emp.`salary`BETWEEN salarygrade.`losalary` AND salarygrade.`hisalary`;-- 5.查询出部门编号、部门名称、部门位置、部门人数
SELECT
COUNT(emp.`id`),
dept.*
FROM
emp
RIGHT JOIN
dept
ON
emp.`dept_id`=dept.`id`
GROUP BY emp.`dept_id`;-- 6.查询所有员工的姓名及其直接上级的姓名,没有领导的员工也需要查询
SELECT
a.`ename`,
a.`mgr`,
b.`id`,
b.`ename`
FROM
emp a
LEFT JOIN
emp b
ON
a.`mgr`=b.`id`;

[MySQL数据库]-基础多表练习题---员工工资相关推荐

  1. MySQL数据库基础-----多表查询

    一.多表关系 在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系. 1. 一对多 案例: 部门 与 员工的关系 关 ...

  2. Mysql数据库基础第八章:窗口函数和公用表表达式(CTE)

    Mysql数据库基础系列 软件下载地址 提取码:7v7u 数据下载地址 提取码:e6p9 mysql数据库基础第一章:(一)数据库基本概念 mysql数据库基础第一章:(二)mysql环境搭建 mys ...

  3. (19)一篇掌握MySQL数据库基础下 基本操作(外键约束、建表原则、多表查询、子查询)

    MySQL数据库基础下 一.修改表--添加外键约束 二.多表之间的建表原则 1.建数据库原则:通常情况下,一个项目/应用建一个数据库 2.多表之间的表原则: (1)一对多:分类和商品 (一个分类对应多 ...

  4. MySQL数据库基础02 韩顺平 自学笔记

    MySQL数据库基础02 sql表查询增强 分页查询 分组函数和分组子句 数据分组的总结 多表查询 问题的引出 多表查询的练习 自连接 子查询 子查询当作临时表使用 在多行子查询中使用all操作符 在 ...

  5. MySQL数据库基础01 韩顺平 自学笔记

    MySQL数据库基础 数据库简单原理图 连接Mysql 启动和关闭mysql服务 连接Mysql指令 数据库三层结构 数据在数据库中的存储方式 SQL语句的分类 简单通过Java操作Mysql数据库 ...

  6. Mysql数据库基础知识(五)之:视图、变量、存储过程、函数、流程控制结构

    第一部分:Mysql数据库基础知识(一)之 基础查询----分组查询 第二部分:Mysql数据库基础知识(二)之 连接查询----子查询-----分页查询------union联合查询 第三部分:My ...

  7. MySQL数据库应用 多表查询_mysql数据库-多表查询

    今日任务 完成对MYSQL数据库的多表查询及建表的操作 教学目标 掌握MYSQL中多表的创建及多表的查询 掌握MYSQL中的表关系分析并能正确建表 昨天内容回顾: ​ 数据库的创建 : create ...

  8. 《php开发典型模块大全》读书笔记 第三章 mysql数据库基础

    第三章  mysql基础 show columns  from table describe table alter table 修改表 rename   table   t1  to   t2 整型 ...

  9. 4.mysql数据库创建,表中创建模具模板脚本,mysql_SQL99标准连接查询(恩,外部连接,全外连接,交叉连接)...

     mysql数据库创建,表创建模等模板脚本 -- 用root用户登录系统,运行脚本 -- 创建数据库 create database mydb61 character set utf8 ; -- ...

最新文章

  1. python可以干什么-Python可以用来做什么 为你揭开python神秘面纱
  2. nginx与Apache的涉及的计算机原理说明
  3. Code Review效率低?来试试智能语法服务
  4. 【今日CS 视觉论文速览】10 Jan 2019
  5. 丁磊斩获400亿市值IPO,终于有钱买周杰伦了
  6. 剑指offer面试题09. 用两个栈实现队列(队列、栈)
  7. python 闭包的作用_python中对闭包的理解
  8. Django Rest framework实现流程
  9. Pandorabox等类OpenWrt的路由器 实现后端设备接入IPV6(中继代理+NAT)
  10. 怎么在Eclipse中安装WindowsBuilder
  11. 三层交换机静态路由VLAN配置实例(华为)
  12. 【20保研】厦门大学软件学院暑期夏令营招生简章
  13. Linux下载安装JDK
  14. 2017 年 10月ios 面试题 总结
  15. 怎么设置计算机桌面字体大小,Win7桌面字体大小怎么调?Win7系统电脑桌面字体大小设置方法...
  16. Jzoj4722 跳楼机
  17. Latex入门_第3章:文档元素
  18. Vue实现购物车全选及价格计算
  19. Uber是什么 读书笔记
  20. 不入门级代码教程(仅供参考)

热门文章

  1. 编程中的脚手架是什么意思
  2. CSS3图片阴影效果解析
  3. 炫龙笔记本安装Ubantu系统
  4. Keycloak简单几步实现对Spring Boot应用的权限控制,程序员Java基础案例教程
  5. 轻松玩转新编日语4 zz江沪
  6. bulls与cows的c语言程序设计,关于cows与bulls的跨学科观点:cow(母牛)
  7. 高光谱异常探测问题解答
  8. n枚硬币中找到问题硬币
  9. 使用Bing转换器翻译IE 8中的语言
  10. 2018年全国各省市区编号大全(1)