[JavaWeb-MySQL]多表查询练习

-- 部门表
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.查询所有员工信息。查询员工编号,员工姓名,工资,职务名称,职务描述-- 2.查询员工编号,员工姓名,工资,职务名称,职务描述,部门名称,部门位置-- 3.查询员工姓名,工资,工资等级-- 4.查询员工姓名,工资,职务名称,职务描述,部门名称,部门位置,工资等级-- 5.查询出部门编号、部门名称、部门位置、部门人数-- 6.查询所有员工的姓名及其直接上级的姓名,没有领导的员工也需要查询

– 需求:

			-- 1.查询所有员工信息。查询员工编号,员工姓名,工资,职务名称,职务描述/*分析:1.员工编号,员工姓名,工资,需要查询emp表  职务名称,职务描述 需要查询job表2.查询条件 emp.job_id = job.id*/SELECT t1.`id`, -- 员工编号t1.`ename`, -- 员工姓名t1.`salary`,-- 工资t2.`jname`, -- 职务名称t2.`description` -- 职务描述FROM emp t1, job t2WHERE t1.`job_id` = t2.`id`;-- 2.查询员工编号,员工姓名,工资,职务名称,职务描述,部门名称,部门位置/*分析:1. 员工编号,员工姓名,工资 emp  职务名称,职务描述 job  部门名称,部门位置 dept2. 条件: emp.job_id = job.id and emp.dept_id = dept.id*/SELECT t1.`id`, -- 员工编号t1.`ename`, -- 员工姓名t1.`salary`,-- 工资t2.`jname`, -- 职务名称t2.`description`, -- 职务描述t3.`dname`, -- 部门名称t3.`loc` -- 部门位置FROM emp t1, job t2,dept t3WHERE t1.`job_id` = t2.`id` AND t1.`dept_id` = t3.`id`;-- 3.查询员工姓名,工资,工资等级/*分析:1.员工姓名,工资 emp  工资等级 salarygrade2.条件 emp.salary >= salarygrade.losalary and emp.salary <= salarygrade.hisalaryemp.salary BETWEEN salarygrade.losalary and salarygrade.hisalary*/SELECT t1.ename ,t1.`salary`,t2.*FROM emp t1, salarygrade t2WHERE t1.`salary` BETWEEN t2.`losalary` AND t2.`hisalary`;-- 4.查询员工姓名,工资,职务名称,职务描述,部门名称,部门位置,工资等级/*分析:1. 员工姓名,工资 emp , 职务名称,职务描述 job 部门名称,部门位置,dept  工资等级 salarygrade2. 条件: emp.job_id = job.id and emp.dept_id = dept.id and emp.salary BETWEEN salarygrade.losalary and salarygrade.hisalary*/SELECT t1.`ename`,t1.`salary`,t2.`jname`,t2.`description`,t3.`dname`,t3.`loc`,t4.`grade`FROM emp t1,job t2,dept t3,salarygrade t4WHERE t1.`job_id` = t2.`id` AND t1.`dept_id` = t3.`id`AND t1.`salary` BETWEEN t4.`losalary` AND t4.`hisalary`;-- 5.查询出部门编号、部门名称、部门位置、部门人数/*分析:1.部门编号、部门名称、部门位置 dept 表。 部门人数 emp表2.使用分组查询。按照emp.dept_id完成分组,查询count(id)3.使用子查询将第2步的查询结果和dept表进行关联查询*/SELECT t1.`id`,t1.`dname`,t1.`loc` , t2.totalFROM dept t1,(SELECTdept_id,COUNT(id) totalFROM empGROUP BY dept_id) t2WHERE t1.`id` = t2.dept_id;-- 6.查询所有员工的姓名及其直接上级的姓名,没有领导的员工也需要查询/*分析:1.姓名 emp, 直接上级的姓名 emp* emp表的id 和 mgr 是自关联2.条件 emp.id = emp.mgr3.查询左表的所有数据,和 交集数据* 使用左外连接查询*//*selectt1.ename,t1.mgr,t2.`id`,t2.enamefrom emp t1, emp t2where t1.mgr = t2.`id`;*/SELECT t1.ename,t1.mgr,t2.`id`,t2.`ename`FROM emp t1LEFT JOIN emp t2ON t1.`mgr` = t2.`id`;

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

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

相关文章

基于 abp vNext 和 .NET Core 开发博客项目 - 定时任务最佳实战(三)

上一篇完成了全网各大平台的热点新闻数据的抓取&#xff0c;本篇继续围绕抓取完成后的操作做一个提醒。当每次抓取完数据后&#xff0c;自动发送邮件进行提醒。在开始正题之前还是先玩一玩之前的说到却没有用到的一个库PuppeteerSharp。PuppeteerSharp&#xff1a;Headless Chr…

创建型模式——工厂模式

一、 实验目的与要求 1.练习使用工厂模式。设计相关的模拟场景并进行实施&#xff0c;验证模式特性&#xff0c;掌握其优缺点。 2.实验结束后&#xff0c;对相关内容进行总结。 二、实验内容 1.模式应用场景说明 作为一个青年人&#xff0c;最好的伙伴就是手机。而手机最重…

[JavaWeb-MySQL]事务的基本介绍

事务的基本介绍 1. 概念&#xff1a;* 如果一个包含多个步骤的业务操作&#xff0c;被事务管理&#xff0c;那么这些操作要么同时成功&#xff0c;要么同时失败。2. 操作&#xff1a;1. 开启事务&#xff1a; start transaction;2. 回滚&#xff1a;rollback;3. 提交&#xff…

dotNET Core 3.X 依赖注入

如果说在之前的 dotNET 版本中&#xff0c;依赖注入还是个比较新鲜的东西&#xff0c;那么在 dotNET Core 中已经是随处可见了&#xff0c;可以说整个 dotNET Core 的框架是构建在依赖注入框架之上。本文说说对 dotNET Core 中依赖注入的理解。什么是依赖在面向对象的语言中&am…

创建型模式——抽象工厂模式

一、 实验目的与要求 1.练习使用工厂模式。设计相关的模拟场景并进行实施&#xff0c;验证模式特性&#xff0c;掌握其优缺点。 2.实验结束后&#xff0c;对相关内容进行总结。 二、实验内容 1.模式应用场景说明 手机CPU生产工厂&#xff1a;在一个工厂里面&#xff0c;有A…

[JavaWeb-MySQL]多表查询概述

多表查询&#xff1a; * 查询语法&#xff1a;select列名列表from表名列表where.... * 准备sql# 创建部门表CREATE TABLE dept(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(20));INSERT INTO dept (NAME) VALUES (开发部),(市场部),(财务部);# 创建员工表CREATE TABLE em…

【壹刊】Azure AD(三)Azure资源的托管标识

一&#xff0c;引言来个惯例&#xff0c;吹水&#xff01;????????????????????前一周因为考试&#xff0c;还有个人的私事&#xff0c;一下子差点颓废了。想了想&#xff0c;写博客这种的东西还是得坚持&#xff0c;再忙&#xff0c;也要检查。要养成一种…

自定义View

自定义View重写构造方法和onDraw方法 MyView.java package com.example.jrtt;import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.RectF; import android.util.AttributeSet; import android.util.Lo…

[JavaWeb-JDBC]JDBC概念

JDBC&#xff1a; 1. 概念&#xff1a;Java DataBase Connectivity Java 数据库连接&#xff0c; Java语言操作数据库JDBC本质&#xff1a;其实是官方&#xff08;sun公司&#xff09;定义的一套操作所有关系型数据库的规则&#xff0c;即接口。各个数据库厂商去实现这套接口…

创建型模式——建造者模式

一、 实验目的与要求 1.练习使用工厂模式。设计相关的模拟场景并进行实施&#xff0c;验证模式特性&#xff0c;掌握其优缺点。 2.实验结束后&#xff0c;对相关内容进行总结。 二、实验内容 1.模式应用场景说明 Decis创建一个获取多套餐信息&#xff0c;包含A套餐&#xf…

[JavaWeb-MySQL]事务的四大特征和隔离级别

事务的四大特征&#xff1a; 1. 原子性&#xff1a;是不可分割的最小操作单位&#xff0c;要么同时成功&#xff0c;要么同时失败。2. 持久性&#xff1a;当事务提交或回滚后&#xff0c;数据库会持久化的保存数据。3. 隔离性&#xff1a;多个事务之间。相互独立。4. 一致性&am…

android studio模拟器的安装与使用

来回弄了好几遍&#xff0c;网上也都搜过下载过很多版本&#xff0c;其中夜神模拟器是真的方便&#xff0c;也好用&#xff0c;棒极了&#xff01;那么我就来分享一下&#xff1a; 第一&#xff0c;肯定是下载啦 下载链接&#xff1a;夜神模拟器官方 接着就是连接了&#xff0c…

如何训练解决问题的能力?

作为程序员&#xff0c;技术能力固然很重要&#xff0c;但平时除了提升技术能力也别忽略了其它方面的能力。你可以写一辈子代码&#xff0c;但你不能一辈子只写代码。当你的技术能力足以使你在公司站稳脚跟时&#xff0c;你可以停下来锻炼自己的管理能力&#xff0c;比如职场中…

[JavaWeb-MySQL]DCL管理用户,授权

DCL&#xff1a; * SQL分类&#xff1a;1. DDL&#xff1a;操作数据库和表2. DML&#xff1a;增删改表中数据3. DQL&#xff1a;查询表中数据4. DCL&#xff1a;管理用户&#xff0c;授权* DBA&#xff1a;数据库管理员* DCL&#xff1a;管理用户&#xff0c;授权1. 管理用户1…

PS照片换底色

因为写简历嘛&#xff0c;手边没有白色底的照片&#xff0c;就用ps换了个底色&#xff0c;记录一下&#xff0c;下次可能还要用。这里我用幂幂的照片来代替。 打开ps&#xff0c;点击文件&#xff0c;点击打开&#xff0c;找到你需要处理的照片。 -点击旁边的对象选择工具&…

小心 HttpClient 中的 FormUrlEncodeContent 的 bug

小心 HttpClient 中的 FormUrlEncodeContent 的 bugIntro最近发现活动室预约项目里的上传图片有时候会有问题&#xff0c;周末找时间测试了一下&#xff0c;发现小图片的上传没问题&#xff0c;大图片上传会有问题&#xff0c;而且异常信息还很奇怪&#xff0c;System.UriForma…

IDEA导入MySQL的jdbc驱动出现“java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver”

目录 一、一般的解决思路 1、JDBC下载链接 2、选择下载内容&#xff0c;并进行下载 3、将驱动导入java项目 二、依然导入驱动失败怎么办 当我们在idea中使用java操作mysql数据库时会出现&#xff1a; Exception in thread "main" java.lang.ClassNotFoundExce…

Android程序设计基础-设计布局之伪今日头条主界面

一、 实验目的 &#xff08;1&#xff09; 掌握Andriod Studio的基本使用方法&#xff1b; &#xff08;2&#xff09; 掌握Andriod Studio中常用的控件及其使用方法&#xff1b; 二、实验内容 &#xff08;1&#xff09;使用Android Studio编写任意一个Android程序并运行&a…

基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(一)

系列文章使用 abp cli 搭建项目给项目瘦身&#xff0c;让它跑起来完善与美化&#xff0c;Swagger登场数据访问和代码优先自定义仓储之增删改查统一规范API&#xff0c;包装返回模型再说Swagger&#xff0c;分组、描述、小绿锁接入GitHub&#xff0c;用JWT保护你的API异常处理和…

[JavaWeb]Web概念概述

web概念概述 * JavaWeb&#xff1a;* 使用Java语言开发基于互联网的项目* 软件架构&#xff1a;1. C/S: Client/Server 客户端/服务器端* 在用户本地有一个客户端程序&#xff0c;在远程有一个服务器端程序* 如&#xff1a;QQ&#xff0c;迅雷...* 优点&#xff1a;1. 用户体验…