MySQL 多表查询强化练习

环境准备

create table dept(id int PRIMARY KEY,dname VARCHAR(50),loc VARCHAR(50)
);
insert into dept values
(10,'研发部','北京'),
(20,'学工部', '上海'),
(30,'销售部','广州' ),
(40,'财务部','深圳');create table job(id int PRIMARY KEY,jname VARCHAR(20),descripition VARCHAR(50)
);INSERT INTO job VALUES
(1,'董事长','管理整个公司接单'),
(2,'经理','管理部门员工'),
(3,'销售员','向客人推销产品'),
(4,'文员','使用办公软件');CREATE TABLE salarygrade(grade int primary key,losalary int,hisalary int
);insert into salarygrade 
VALUES(1,7000,12000),(2,12000,14000),(3,14000,20010),(4,20010,30010),(5,30010,99990)
;create table emp(id int PRIMARY KEY,ename VARCHAR(50),job_id INT,mgr INT,joindate date,salary DECIMAL(7,2),bonus DECIMAL(7,2),dept_id INT,FOREIGN KEY(job_id) REFERENCES job(id),FOREIGN KEY(dept_id) REFERENCES dept(id)
);insert into emp values
(1001,'孙悟空',4,1004,'2000-12-17','8000.00',NULL,20),
(1002,'卢俊义',3,1006,'2001-02-20','16000.00','3000.00',30),
(100,'林冲',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);
1.查询所有员工信息,查询员工编号,员工姓名,工资,职务名称,职务描述
select 	t1.id,t1.ename,t1.salary,t2.jname,t2.descripition
from emp t1,job t2
wheret1.job_id=t2.id
;

在这里插入图片描述

2.查询员工编号,员工名称,工资,职务名称,职务描述,部门名称,部门位置
//分析: 
//1.员工编号,员工名称,工资 emp
//2.职务名称,职务描述 job
//3.部门名称,部门位置 dept
//条件:
//1.emp.job_id=job.id
//2.emp.dept_id=dept.id
select t1.id,t1.ename,t1.salary,t2.jname,t2.descripition,t3.dname,t3.loc
from emp t1,job t2, dept t3
where t1.job_id=t2.id and t1.dept_id=t3.id
;

在这里插入图片描述

3.查询员工名称,工资,工资等级
//分析:
//1.员工名称, 工资 emp 
//2.工资等级 salarygrade 
//条件:
//1.emp.salary >= salarygrade.losalary and emp.salary <= salarygrade.hisalary
//或者 emp.salary between salarygrade.losalary and  salarygrade.hisalaryselect t1.ename,t1.salary,t2.grade
from emp t1,salarygrade t2
where t1.salary between t2.losalary and t2.hisalary
;

在这里插入图片描述

4.查询员工名称,工资,职务名称,职务描述,部门名称,部门位置,工资等级
//分析:
//1.员工名称,工资 emp
//2.职务名称,职务描述 job
//3.部门名称,部门位置 dept
//4.工资等级 salarygrade
//条件:
//1.emp.job_id=job.id
//2.emp.dept_id=dept.id
//3.emp.salary between salarygrade.losalary and  salarygrade.hisalaryselect t1.ename,t1.salary,t2.jname,t2.descripition,t3.dname,t3.loc,t4.grade
from emp t1,job t2,dept t3,salarygrade t4
where t1.job_id=t2.id and t1.dept_id=t3.id and t1.salary between t4.losalary and t4.hisalary
;

在这里插入图片描述

5.查询出部门编号,部门名称,部门位置,部门人数
//分析:
//1.部门名称,部门位置 dept
//2.部门人数 emp
//条件
//1.根据emp.dept_id进行分组,查询count(id)
//2.使用子查询将上一步的结果和dept表进行关联查询select t1.id,t1.dname,t1.loc,t2.total	
from dept t1,(select dept_id,count(id) total from emp group by dept_id) t2
where t1.id = t2.dept_id
;

在这里插入图片描述

6.查询所有员工的姓名及其直接上级的名称,没有领导的员工也需要查询
//分析:
//1.员工的姓名 emp->t1
//2.直接上级的名称 emp->t2
//条件
//1.t1.mgr=t2.id
//2.左外连接select t1.id, t1.ename,t2.id, t2.ename
from emp t1
left joinemp t2
on t1.mgr=t2.id
;

在这里插入图片描述

点击返回 MySQL 快速学习目录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2871544.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习——压缩网络作业

文章目录 任务描述介绍知识蒸馏网络设计 Baseline实践 任务描述 网络压缩&#xff1a;使用小模型模拟大模型的预测/准确性。在这个任务中&#xff0c;需要训练一个非常小的模型来完成HW3&#xff0c;即在food-11数据集上进行分类。 介绍 有许多种网络/模型压缩的类型&#xff0…

ElasticSearch常见用法,看这一篇就够了(文末送书)

2024送书福利正式起航 关注「哪吒编程」&#xff0c;提升Java技能 文末送3本《一本书讲透Elasticsearch&#xff1a;原理、进阶与工程实践》 大家好&#xff0c;我是哪吒。 ElasticSearch是一款由Java开发的开源搜索引擎&#xff0c;它以其出色的实时搜索、稳定可靠、快速安…

【Linux】进程与可执行程序的关系fork创建子进程写实拷贝的理解

一、进程与可执行程序之间关系的理解 系统会将此时在系统运行的进程的各种属性都以文件的形式给你保存在系统的proc目录下。运行一个程序的时候&#xff0c;本质就是把磁盘中的程序拷贝到内存中&#xff0c;当一个进程运行起来的时候&#xff0c;它本质已经和磁盘中的可执行程序…

Epuck2 在 ROS 下的运动控制

文章目录 前言一、初始配置二、运动控制三、移动机器人总结 前言 在对Epuck2机器人进行完固件更新及IP地址查询后&#xff0c;接下来通过ROS来对Epuck2机器人进行运动控制。 一、初始配置 &#xff08;1&#xff09;创建一个 catkin 工作空间 mkdir -p ~/catkin_ws/src cd ~…

cmd常用指令

cmd全称Command Prompt&#xff0c;中文译为命令提示符。 命令提示符是在操作系统中&#xff0c;提示进行命令输入的一种工作提示符。 在不同的操作系统环境下&#xff0c;命令提示符各不相同。 在windows环境下&#xff0c;命令行程序为cmd.exe&#xff0c;是一个32位的命令…

通俗易懂的Python循环讲解

循环用于重复执行一些程序块。从上一讲的选择结构&#xff0c;我们已经看到了如何用缩进来表示程序块的隶属关系。循环也会用到类似的写法。 for循环 for循环需要预先设定好循环的次数(n)&#xff0c;然后执行隶属于for的语句n次。 基本构造是 for 元素 in 序列: statemen…

ClickHouse中的设置的分类

ClickHouse中的各种设置 ClickHouse中的设置有几百个&#xff0c;下面对这些设置做了一个简单的分类。

C语言疑难题:杨辉三角形、辗转相除求最大公约数、求π的近似值、兔子问题、打印菱形

杨辉三角形&#xff1a;打印杨辉三角形的前10行 /* 杨辉三角形&#xff1a;打印杨辉三角形的前10行 */ #include<stdio.h> int main(){ int i,j; int a[10][10]; printf("\n"); for(i0;i<10;i){ a[i][0]1; a[i][i]1; …

提升Java IO性能!探究BufferedOutputStream的奥秘

咦咦咦&#xff0c;各位小可爱&#xff0c;我是你们的好伙伴——bug菌&#xff0c;今天又来给大家普及Java IO相关知识点了&#xff0c;别躲起来啊&#xff0c;听我讲干货还不快点赞&#xff0c;赞多了我就有动力讲得更嗨啦&#xff01;所以呀&#xff0c;养成先点赞后阅读的好…

【系统架构师】-第4章-信息安全技术

1、基础知识 五要素&#xff1a; (1)机密性&#xff1a;确保信息不暴露给未授权的实体或进程。 (2)完整性&#xff1a;只有得到允许的人才能修改数据&#xff0c;并且能够判别出数据是否已被篡改。 (3)可用性&#xff1a;得到授权的实体在需要时可访问数据&#xff0c;即攻击…

力扣刷题Days20-151. 反转字符串中的单词(js)

目录 1,题目 2&#xff0c;代码 1&#xff0c;利用js函数 2&#xff0c;双指针 3&#xff0c;双指针加队列 3&#xff0c;学习与总结 1&#xff0c;正则表达式 / \s /&#xff1a; 2&#xff0c;结合使用 split 和正则表达式&#xff1a; 1,题目 给你一个字符串 s &am…

ChatGPT提示词方法的原理

关于提示词&#xff0c;我之前的一些文章可以参考&#xff1a; 【AIGC】AI作图最全提示词prompt集合&#xff08;收藏级&#xff09;https://giszz.blog.csdn.net/article/details/134815245?ydrefereraHR0cHM6Ly9tcC5jc2RuLm5ldC9tcF9ibG9nL21hbmFnZS9hcnRpY2xlP3NwbT0xMDExL…

RunnerGo测试平台的安装和使用

文章适用于想RunnerGo入门的同学&#xff0c;本人主要是后端&#xff0c;这里做一个入门的学习记录。想深入适用RunnerGo的同学可以参考官网文档&#xff1a; https://wiki.runnergo.cn/docs/ 这里我测试的代码是之前搭建的一个前后端分离小demo&#xff0c;代码地址是https:/…

Rocket MQ 从入门到实践

为什么要使用消息队列&#xff0c;解决什么问题&#xff1f;&#xff08;消峰、解藕、异步&#xff09; 消峰填谷 客户端》 网关 〉 消息队列》秒杀服务 异步解耦 消息队列中的重要概念理解。&#xff08;主题、消费组、队列&#xff0c;游标&#xff1f;&#xff09; 主题&…

Vulnhub - Toppo

希望和各位大佬一起学习&#xff0c;如果文章内容有错请多多指正&#xff0c;谢谢&#xff01; 个人博客链接&#xff1a;CH4SER的个人BLOG – Welcome To Ch4sers Blog Toppo 靶机下载地址&#xff1a;Toppo: 1 ~ VulnHub 搭建&#xff1a;创建任意虚拟机&#xff0c;然后…

【网络编程基础(一)】网络基础和SOCKET

这里写目录标题 1、网络三要素2、IPV4和IPV6区别3、网络交互3.1、交互模型图3.2、基础通信协议3.3、OSI参考模型与TCP/IP参考模型对应关系 4、SOCKET网络套接字4.1、SOCKET分类4.2、基于流式套接字的编程流程4.3、网络通信雏形4.4、socket函数4.4.1、socket函数示例 4.5、bind函…

idea 的基本配置

一、安装目录介绍 其中&#xff1a;bin 目录下&#xff1a; 二、配置信息目录结构 这是 IDEA 的各种配置的保存目录。这个设置目录有一个特性&#xff0c;就是你删除掉整个目录之后&#xff0c;重新启动 IntelliJ IDEA 会再自动帮你生成一个全新的默认配置&#xff0c;所以很多…

串的模式匹配(简单匹配、KMP以及手工算next/nextval)

简单模式匹配 思路&#xff1a;主串和字串进行匹配&#xff0c;设置i、j、k&#xff08;主串、子串和匹配起始下标&#xff09;主串和子串一开始都是从第一个位置&#xff08;k i&#xff09;&#xff0c;若当前主串和子串匹配成功那么i、j&#xff0c;若匹配不成功k、j 1&am…

24计算机考研调剂 | 宁波大学

北京信息科技大学接收调剂研究生 2024中国科学院宁波材料所与高校联合培养硕士研究生项目介绍 考研调剂招生信息 中国科学院宁波材料技术与工程研究所&#xff08;简称“宁波材料所”&#xff09;成立于2004年4月&#xff0c;是由中国科学院、浙江省人民政府、宁波市人民政府三…

算法第二十九天-森林中的兔子

森林中的兔子 题目要求 解题思路 重点&#xff1a;某个兔子回答x的时候&#xff0c;那么数组中最多循序x1个同花色的兔子同时回答x 我们可以通过举例子得出一下的规律&#xff1a; 我们统计数组中所有回答x的兔子的数量n&#xff1a; 若n%(x1)0&#xff0c;说明我们此时只需…