数据库学习-连接查询&子查询作业示例【带源码】

简介: MySQL数据库 “连接查询&子查询” 习题示例,包含源码,能建立起对于连接查询&子查询的基本概念

 目录

1.查询“Chisel”所在车间的车间编号、车间主任姓名、主任联系方式

2.查询所有员工姓名、员工联系电话、车间地址、车间主任姓名、主任联系方式

3.查询“Chisel”所在车间的所有员工姓名、员工联系电话、车间地址

4.查询生产出质量达标产品的产品编号、员工姓名、员工联系电话

5.查询已生产产品车间的车间号、平均工龄

6.查询所有产品的产品编号、是否合格(合格返回true不合格返回false)、员工号、员工姓名、员工联系方式、车间编号、车间地址

7.查询员工表中是否存在“common”工种的员工,如果存在则查询员工表“common”工种员工的所有字段信息

8.查询存在离职员工的车间编号、车间主任、主任联系方式


1.查询“Chisel”所在车间的车间编号、车间主任姓名、主任联系方式

select no,name,phone from zhongjinlin_workshop ws

   -> where no in (

   -> select shop_no from zhongjinlin_worker

   -> where name="Chisel"

       -> );

image.gif


内容解析:联合查询首先要明白的一个关键点是什么,就是你需要查询什么,就先查哪个表的字段信息,这样第一个表就解决了,然后再看它的查询条件,再判断连接语句里面应该怎么查询


2.查询所有员工姓名、员工联系电话、车间地址、车间主任姓名、主任联系方式


select wk.name,wk.phone,ws.address,ws.name,ws.phone from

   -> zhongjinlin_worker wk right join zhongjinlin_workshop ws on

-> wk.shop_no = ws.no;

image.gif


内容解析:如何判断两个表是用哪个字段连接呢,这就需要看两个表字段数据内容了,总不能一个表的字段数据是字符,你和数字的字段连接到一起吧,这显然是不符合的,所以呢,一个简单快捷的方法就是看数据内容有没有有联系的

3.查询“Chisel”所在车间的所有员工姓名、员工联系电话、车间地址


select shop_no from zhongjinlin_worker

-> where name="Chisel";

select wk.name,wk.phone,ws.address from

   -> zhongjinlin_worker wk inner join zhongjinlin_workshop ws

-> on wk.shop_no = ws.no where shop_no = "WS1";

image.gif编辑

image.gif编辑


4.查询生产出质量达标产品的产品编号、员工姓名、员工联系电话


select no,name,phone from zhongjinlin_worker where

   -> is_onwork="1";

image.gif编辑

5.查询已生产产品车间的车间号、平均工龄


select shop_no,avg(seniority) from zhongjinlin_worker where shop_no = "WS2";

image.gif编辑


6.查询所有产品的产品编号、是否合格(合格返回true不合格返回false)、员工号、员工姓名、员工联系方式、车间编号、车间地址


select pd.no,pd.is_qualified,wk.no,wk.name,wk.phone,ws.no,ws.address from

   -> zhongjinlin_product pd

   -> right join zhongjinlin_worker wk on pd.work_no =wk.no

-> left join zhongjinlin_workshop ws on pd.work_no = ws.no;

image.gif编辑


7.查询员工表中是否存在“common”工种的员工,如果存在则查询员工表“common”工种员工的所有字段信息


select * from zhongjinlin_worker where

   -> work_type="common";

image.gif编辑


8.查询存在离职员工的车间编号、车间主任、主任联系方式


select no,name,phone from zhongjinlin_workshop

   -> where no in(

   -> select shop_no from zhongjinlin_worker

   -> where is_onwork="0"

   -> );

image.gif编辑

相关文章
|
14天前
|
存储 缓存 固态存储
怎么让数据库查询更快
【10月更文挑战第28天】
24 2
|
16天前
|
存储 缓存 关系型数据库
怎么让数据库查询更快
【10月更文挑战第25天】通过以上综合的方法,可以有效地提高数据库查询的速度,提升应用程序的性能和响应速度。但在优化过程中,需要根据具体的数据库系统、应用场景和数据特点进行合理的调整和测试,以找到最适合的优化方案。
|
15天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
81 1
|
16天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
47 0
|
8天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
23 4
|
6天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
19 1
|
1月前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
61 3
Mysql(4)—数据库索引
|
17天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
59 2
|
20天前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
80 4
|
3天前
|
运维 关系型数据库 MySQL
安装MySQL8数据库
本文介绍了MySQL的不同版本及其特点,并详细描述了如何通过Yum源安装MySQL 8.4社区版,包括配置Yum源、安装MySQL、启动服务、设置开机自启动、修改root用户密码以及设置远程登录等步骤。最后还提供了测试连接的方法。适用于初学者和运维人员。
27 0