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

简介: 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编辑

相关文章
|
13天前
|
存储 JSON NoSQL
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
49 15
|
2月前
|
数据库连接 Linux Shell
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
|
2月前
|
JSON JavaScript 关系型数据库
node.js连接GBase 8a 数据库 并进行查询代码示例
node.js连接GBase 8a 数据库 并进行查询代码示例
|
2月前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
|
10天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
38 3
|
10天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
38 3
|
10天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE 'log_%';`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
52 2
|
24天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
168 15
|
17天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。
|
24天前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。