MySQL多表操作案例练习

news2024/12/28 3:46:56

目录

准备

需求

代码


 

准备

-- 创建test1数据库
create database test1;
-- 选择使用test1数据库
use test1;
-- 创建部门表
create table dept(
	deptno int primary key,-- 部门编号
	dname varchar(14) ,-- 部门名称
	loc varchar(13) -- 部门地址
) ;

insert into dept values(10,'accounting','new york'),
						(20,'research','dallas'),
						(30,'sales','chicago'),
						(40,'operations','boston');
-- 创建员工表					
create table emp(
	empno int primary key, -- '员工编号',
    ename varchar(10), -- '员工名',
    job varchar(9), -- '员工工作',
    mgr int, -- '员工直属领导编号',
    hiredate date, -- '入职时间',
    sal double, -- '工资',
    comm double, -- '奖金',
    deptno int -- '对应dept表的外键'
);
-- 添加部门和员工之间的外键关系
alter table emp add constraint foreign key emp(deptno) references dept (deptno);


insert into emp values (7369,'smith','clerk',7902,'19801217',800,null,20),
(7499,'allen','salesman',7698,'19810220',1600,300,30),
(7521,'ward','salesman',7698,'19810222',1250,500,30),
(7566,'JONES','MANAGER',7839,'19810402',2975,NULL,20),
(7654,'MARTIN','SALESMAN',7698,'19810928',1250,1400,30),
(7698,'BLAKE','MANAGER',7839,'19810501',2850,NULL,30),
(7782,'CLARK','MANAGER',7839,'19810609',2450,NULL,10),
(7788,'SCOTT','ANALYST',7566,'19870419',3000,NULL,20),
(7839,'KING','PRESIDENT',NULL,'19811117',5000,NULL,10),
(7844,'TURNER','SALESMAN',7698,'19810908',1500,0,30),
(7876,'ADAMS','CLERK',7788,'19870523',1100,NULL,20),
(7900,'JAMES','CLERK',7698,'19811203',950,NULL,30),
(7902,'FORD','ANALYST',7566,'19811203',3000,NULL,20),
(7934,'MILLER','CLERK',7782,'19820123',1300,NULL,10);

create table salgrade(
	grand int ,-- '等级',
    losal double, -- '最低工资',
    hisal double -- '最高工资'
);
insert into salgrade values (1,700,1200),(2,1201,1400),(3,1401,2000),(4,2001,3000),(5,3001,9999);

需求

1、返回拥有员工的部门名、部门号。
2、工资水平多于smith的员工信息。
3、返回员工和所属经理的姓名。
4、返回雇员的雇佣日期早于其经理雇佣日期的员工及其经理姓名。
5、返回员工姓名及其所在的部门名称。

6、返回从事clerk工作的员工姓名和所在部门名称。
7、返回部门号及其本部门的最低工资。
8、返回销售部(sales)所有员工的姓名。

9、返回工资水平多于平均工资的员工。
10、返回与scott从事相同工作的员工。

11、返回工资高于30部门所有员工工资水平的员工信息。
12、返回员工工作及其从事此工作的最低工资。
13、计算出员工的年薪,并且以年薪排序。
14、返回工资处于第四级别的员工的姓名。

15、返回工资为二等级的职员名字、部门所在地

代码

-- 1、返回拥有员工的部门名、部门号。
select  distinct  d.dname ,d.deptno  from dept d ,emp e where d.deptno =e.deptno ;
select  distinct  d.dname ,d.deptno  from dept d  right outer join emp e on d.deptno =e.deptno ;

-- 2、工资水平多于smith的员工信息。
select * from emp where sal >(select sal from emp where ename='smith');
-- 3、返回员工和所属经理的姓名。
select  e.ename ,e2.ename  from emp e join emp e2 on e.mgr =e2.empno ;

select  e.ename ,e2.ename  from emp e, emp e2 where e.mgr =e2.empno ;

-- 4、返回雇员的雇佣日期早于其经理雇佣日期的员工及其经理姓名。

select  e.ename,e.hiredate  ,e2.ename,e2.hiredate  from emp e join emp e2 on e.mgr =e2.empno and e.hiredate <e2.hiredate ;

-- 5、返回员工姓名及其所在的部门名称。

select e.ename ,d.dname  from emp e join dept d on e.deptno =d.deptno ;

-- 6、返回从事clerk工作的员工姓名和所在部门名称。
select e.ename ,d.dname ,e.job  from emp e  join dept d on e.deptno =d.deptno and e.job ='clerk';

-- 7、返回部门号及其本部门的最低工资。
select deptno ,min(sal) from emp group by deptno ;

-- 8、返回销售部(sales)所有员工的姓名。
select e.ename,e.deptno  from emp e where e.deptno =(select d.deptno  from dept d where d.dname='sales');

select  e.ename,e.deptno from emp e join dept d on e.deptno =d.deptno and d.dname ='sales';

-- 9、返回工资水平多于平均工资的员工。

select  * from emp e where sal>(select avg(sal)  from emp e2 );
-- 10、返回与scott从事相同工作的员工。
select * from emp e where e.job =(select e2.job  from emp e2 where e2.ename='scott' ) and e.ename !='scott';

-- 11、返回工资高于30部门所有员工工资水平的员工信息。
select * from emp e where sal>all(select sal from emp e2 where e2.deptno=30);

-- 12、返回员工工作及其从事此工作的最低工资。
select e.job ,min(sal) from emp e group by e.job ;


-- 13、计算出员工的年薪,并且以年薪排序。
select sal*12+ifnull(comm,0) as nian_sal  from emp e order by sal*12+ifnull(comm,0)  ;

-- 14、返回工资处于第四级别的员工的姓名。
select e.ename,e.sal  from emp e where e.sal between (select s.losal from salgrade s where s.grand=4) and (select s.hisal  from salgrade s where s.grand=4) ;

-- 15、返回工资为二等级的职员名字、部门所在地

select e.ename ,d.dname ,e.sal  from emp e ,dept d ,salgrade s where 
s.grand =2 
and (e.sal>s.losal and e.sal <s.hisal  )
and (e.deptno=d.deptno);


select e.ename ,d.dname  ,e.sal  from emp e 
join salgrade s on s.grand =2  and (e.sal>s.losal and e.sal <s.hisal  )
join dept d  on e.deptno =d.deptno ;

 

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

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

相关文章

【Rust】19. 模式与模式匹配

19.1 所有可能会用到模式的位置 19.1.1 match 分支 19.1.2 if let 条件表达式 可以组合并匹配 if let、else if 和 else if let 表达式&#xff0c;优势在于可以将多个值与模式比较&#xff08;match 表达式一次只能将一个值与模式比较&#xff09;&#xff0c;且各个分支并不…

[NOI Online 2022 入门组] 王国比赛

题目背景&#xff1a; 经过管理员的考虑&#xff0c;我们打算将民间数据单独存放在最后一个 Subtask 中。这些测试点分数均为 0 分&#xff0c;但是没有通过其中的任何测试点将会视为此题不通过。 民间数据提供者&#xff1a;一扶苏一。 题目描述&#xff1a; 智慧之王 Kri …

C++八数码程序图形化界面[2023-02-02]

C八数码程序图形化界面[2023-02-02] 问题简介 八数码&#xff1a;是指在3x3的矩阵中&#xff0c;其中有8个格子放置成1-8&#xff0c;剩下一个格子是空格。能够移动和空格相邻的格子到空格&#xff0c;直到这个矩阵满足每一行依次从左到右读取是有序&#xff0c;得到最后得到1…

爱普生LQ-610K针式打印机不通电维修

基本参数: 爱普生LQ-610K是一台针式打印机,不支持网络打印,A4幅面,不支持自动双面打印。 品牌:爱普生Epson 型号:LQ-610K 颜色:灰色 类型:针式打印机 幅面:A4幅面 针数:24针 打印速度:中文(6.7cpi)150汉字/秒 100汉字/秒 (7.5cpi)168汉字/秒 112汉字/秒5…

【整理分享】一些常见Vue面试题(附答案解析)

本次给大家分享一些关于Vue的常见面试题&#xff0c;带你梳理基础知识&#xff0c;增强Vue知识储备&#xff0c;值得收藏&#xff0c;快来看看吧&#xff01; Vue 常见面试题总结 MVVM模型&#xff1f; MVVM&#xff0c;是Model-View-ViewModel的简写&#xff0c;其本质是MVC…

【Git笔记】GitHub创建远程库,推送到远程库,拉取到本地库与克隆到本地库

目录 创建 GitHub 远程库 创建远程库别名 推送本地库到远程库 拉取远程库到本地库 克隆远程库到本地库 创建 GitHub 远程库 点击 New repository Repository name 名字与工作区名称最好一致 Public 就是开源&#xff0c;Private 就是私有&#xff0c;不公开 其它的保持…

阿里二面:千万级、亿级数据,如何性能优化? 教科书级 答案来了

说在前面 在尼恩指导了几百个小伙伴的面试&#xff0c;在这些过程中&#xff0c; 非常、非常高频的一个面试题&#xff1a; 千万级数据&#xff0c;如何做性能优化&#xff1f; 亿级数据&#xff0c;如何做性能优化&#xff1f; 最近&#xff0c;有个小伙伴阿里二面&#xff0…

袁树雄有《早安隆回》,杨语莲有《汉川》,后者嫁给前者真是绝配

随着《早安隆回》的火爆&#xff0c;创作者袁树雄也收获颇丰&#xff0c;不但各种商演邀约不断&#xff0c;还坐到了春晚的观众席上。 、虽然对于袁树雄来说&#xff0c;他能够坐到观众席上面&#xff0c;就已经是一生的荣幸了&#xff0c;但是央视春晚纂改歌词&#xff0c;总是…

python time模块和datetime模块详解

一、time模块 time模块中时间表现的格式主要有三种&#xff1a; a、timestamp时间戳&#xff0c;时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量 b、struct_time时间元组&#xff0c;共有九个元素组。 c、format time 格式化时间&#xff0c;已格式化的结构使时间更…

【生产者消费者模型】

Linux生产者消费者模型生产者消费者模型生产者消费者模型的概念生产者消费者模型的特点生产者消费者模型优点基于BlockingQueue的生产者消费者模型基于阻塞队列的生产者消费者模型模拟实现基于阻塞队列的生产消费模型生产者消费者模型 生产者消费者模型的概念 生产者消费者模式…

剑指 Offer 第19天 二叉树的公共祖先

目录 剑指 Offer 68 - I. 二叉搜索树的最近公共祖先 剑指 Offer 68 - II. 二叉树的最近公共祖先 a 小部件 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个结点 p、q&#xff0c;最近公共祖先表…

基于 JMeter 完成 Dubbo 接口的测试

JMeter 默认是不支持 Dubbo 接口测试的&#xff0c;但是我们可以通过拓展的插件或 jar 包实现此功能。 JMeter 插件拓展 1.1 插件下载 测试 Dubbo&#xff0c;我们需要下载 Dubbo 的插件&#xff0c;在 Apache 的 Dubbo 插件 GitHub 中可以找到&#xff1a; https://github…

DDR调试不通?先别扔,这个操作可能帮你逆袭!

作者&#xff1a;一博科技高速先生成员 黄刚相信大家过完一个美美的春节后&#xff0c;学习的热情一定会暴涨&#xff0c;反正高速先生给大家分享技术文章的热情是非常高涨的哈&#xff01;打从推出这个系列的仿真和理论相结合的话题后&#xff0c;文章受到了很多忠实粉丝的喜爱…

ThinkPHP6 获取上传文件属性及自定义文件验证及上传处理

TP^6.1文件上传有封装方法&#xff0c;如果不想用封装的&#xff0c;自定义上传怎么获取文件属性呢 目录 TP文件信息 打印上传文件信息 获取文件属性方法 1.获取文件大小&#xff08;单位bytes&#xff09; 2.获取文件后缀 3.获取文件上传路径 4.获取文件名称 5.上传文…

XSS Challenges通关教程

11.XSS Challenges通关教程 Stage#1 直接在search 输入框中输入payload&#xff1a; <script>alert(document.domain)</script> 点击search就XSS攻击成功了。 Stage #2 尝试直接输入<script>alert(document.domain)</script>&#xff0c;发现并未…

【2005NOIP普及组】T4.循环 代码解析

【2005NOIP普及组】T4.循环 代码解析 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 乐乐是一个聪明而又勤奋好学的孩子。他总喜欢探求事物的规律。一天,他突然对数的正整数次幂产生了兴趣。 众所周知,2的正整数次幂最后一位数总是不断的在重复2,4,8,6,2,…

使用PyTorch构建卷积神经网络(CNN)源码(详细步骤讲解+注释版) 01 手写数字识别

1 卷积神经网络&#xff08;CNN&#xff09;简介 在使用PyTorch构建GAN生成对抗网络一文中&#xff0c;我们使用GAN构建了一个可以生成人脸图像的模型。但尽管是较为简单的模型&#xff0c;仍占用了1G左右的GPU内存&#xff0c;因此需要探索更加节约资源的方式。 卷积神经网络…

vue 文件.env.production、.env.development简析

静下来 慢慢看 首先 我们需要搭建一个项目 依赖包会自动下载好 无需自己 npm i .env 无论什么环境都会加载 .env.production 生产环境加载 .env.development 测试开发环境加载 我们下面的例子分开来写 只用 .env.production .env.development 在项目根目录新建两个文件 分别…

Git和SVN

一&#xff1a;两者的区别 ——Git是分布式版本控制系统&#xff0c;SVN是集中式版本控制系统 ——集中式版本控制系统 早期出现的版本控制系统有&#xff1a;SVN、CVS等&#xff0c;它们是集中式版本控制系统&#xff0c;集中式版本控制系统有一个单一的集中管理的服务器&…

【微服务】分布式搜索引擎elasticsearch(2)

分布式搜索引擎elasticsearch&#xff08;2&#xff09;1.DSL查询文档1.1.DSL查询分类1.2.全文检索查询1.2.1.使用场景1.2.2.基本语法1.2.3.示例1.2.4.总结1.3.精准查询1.3.1.term查询1.3.2.range查询1.3.3.总结1.4.地理坐标查询1.4.1.矩形范围查询1.4.2.附近查询1.5.复合查询1…