多表查询:   

在前面我总结的mysql表的查询都是对一张表进行查询,在实际开发中这远远不够。下面我们用一个简单的公司管理系统,有三张表emp,dept,salgrade 来演示如何进行多表查询。

复习基本的查询操作:

查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J:

按照部门号升序而雇员的工资降序排序:

使用年薪进行升序:

分页查询:

select 字段 from 表名 where 条件 limit 起始位置,记录条数

按雇员的empno号升序取数,每页显示3条记录。请分别显示第一页,第二页,第三页:

显示工资最高的员工的名字和工作岗位:

显示工资高于平均工资的员工信息:

显示每个部门的平均工资和最高工资:

显示平均工资低于2000的部门号和它的平均工资,显示每种岗位的雇员总数,平均工资:

多表查询:

举例说明:

显示雇员名、雇员工资以及所在部门的名字:

显示部门号为10的部门名,员工名和工资:

显示各个员工的姓名,工资,及工资级别:

自连接:

自连接是指在同一张表连接查询,显示员工FORD的上级领导的姓名:

子查询:

子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询
单行子查询

返回一行记录的子查询,显示SMITH同一部门的员工:

多行子查询

返回多行记录的子查询,使用关键字in:

如何查询和10号部门的工作相同的雇员的名字,岗位,工资,部门号,但是不包含10自己的:

在多行子查询中使用all操作符

显示工资比部门30的所有员工的工资高的员工的姓名、工资和部门号:

在多行子查询中使用any操作符:

多列子查询
单行子查询是指子查询只返回单列,单行数据,多行子查询是指返回单列多行数据,都是针对单列而言的,而多列子查询则是指查询返回多个列数据的子查询语句
示例:查询和SMITH的部门和岗位完全相同的所有雇员,不含SMITH本人:

在from子句中使用子查询
子查询语句出现在from子句中。这里要用到数据查询的技巧,把一个子查询当做一个临时表使用。

示例:如何显示高于自己部门平均工资的员工的信息:

查找每个部门工资最高的人的详细资料:

显示每个部门的信息(部门名,编号,地址)和人员数量:

方法1:使用多表:

方法2:使用子查询:

删除表中的的重复复记录:

创建一张表:

合并查询:
在实际应用中,为了合并多个select的执行结果,可以使用集合操作符 union,union all
1. union
该操作符用于取得两个结果集的并集。当使用该操作符时,会自动去掉结果集中的重复行。

示例:将工资大于25000和职位是MANAGER的人找出来:

2. union all

该操作符用于取得两个结果集的并集。当使用该操作符时,不会去掉结果集中的重复行:

外键:
    外键用于定义主表和从表之间的关系:外键约束主要定义在从表上,主表则必须是有主键约束或unique约束。当定义外键后,要求外键列数据必须在主表的主键列存在或为null。

语法:

foreign key (字段名) references 主表(列)

先创建主键表:

在创建从表:

插入数据:我们现在要插入一个班级号为30的学生,因为没有这个班级,所以插入不成功,但是可以让班级id为null,比如来了一个学生,目前还没有分配班级:

【MySQL】数据库 -- 多表查询相关推荐

  1. mysql数据库多表查询(内连接,外连接,自连接,子查询及案例分析)

    mysql数据库多表查询 之前接触的项目或者自己涉及的部分对于多表查询的使用都比较的少,常常是自己更具案例进行学习,最近见到的比较的多,所以今天就好好的总结一下,为下一步学习做准备! 1.多表查询关系 ...

  2. MySQL数据库多表查询

    MySQL数据库多表查询 前言 在之前的文章MySQL数据库之SQL入门中,我们讲到了四类SQL中的DQL(数据库查询语言,用于查询表中数据),但是我仅仅用DQL去查询一张表中数据,而在实际的应用中, ...

  3. MySQL 数据库单表查询——高级查询

    当遇到一些复杂的需求时,例如对查询结果进行排序,分组和分页等,MySQL 数据库有着更高级的查询方法以处理更加复杂的需求. 一,排序查询 在查询完成后,结果集中的数据是按默认顺序排序的.为了方便用户自 ...

  4. mysql数据库多表查询教程

    SQL会创建多表及多表的关系 需求: 分类表和商品表之间是不是有关系?如果有关系,在数据库中如何表示这种关系 ... 表结构请参考上一章 mysql单表查询. 技术分析: 多表之间的关系如何来维护 外 ...

  5. MySQL数据库多表查询,子查询

    写博客的第四天,今天来点数据库的操作,温故而知新,在前进的路上,多看看自己曾经走过的路,不要忘了自己是怎么一步一步走过来的,对于前方未知的道路,不要轻言放弃. 今天的内容全部是MySQL里面的语句,基 ...

  6. MySQL数据库—多表查询

    文章目录 绪论 交叉连接 内连接 左外连接 右外连接 联合查询 绪论 多表查询顾名思义就是数据同时从多张表中获取,查询语句同时涉及到多张表,多表查询有多种语法,即:交叉连接,内连接,左外连接,右外连接 ...

  7. mysql数据库连表查询的几种方法

    1.首先介绍表连接分类(内连接,外连接,交叉连接)和连接方法(如下): A)内连接:join,inner join B)外连接:left join,left outer join,right join ...

  8. MySQL数据库----多表查询,表连接

    一.查询概述: 查询:指的是针对表中已经存在的数据,可以按照特定组合,条件,或者次序等等来进行一系列的检索查看操作------>select语句. 二.查询的基本操作: 1.查询语句的基本结构: ...

  9. MySQL数据库多表查询练习题

    原题目数据库请查看作者资源免费下载 (https://download.csdn.net/download/MeiJin_/86403712) 多表查询的思路 类似于生活日常中解决问题方式 第一步干什 ...

  10. MySQL数据库——多表查询介绍

    目录 数据准备 笛卡尔积 内连接 显示内连接 隐式内连接 外连接 左外连接 右外连接 子查询 基本运用举例 子查询的不同情况 子查询的结果是单行单列的 子查询的结果是多行单列的 子查询的结果是单行多列 ...

最新文章

  1. 《可穿戴创意设计:技术与时尚的融合》一一3.3 纺织与教育
  2. random_state的值如何选_同样是防晒衣,单价几十和几百块有什么不同?选防晒衣认准这4点...
  3. 迟迟发布的软工实践两月感想
  4. c语言编译器不支持64位,什么编译器支持64位整数?
  5. 通过管道进行线程间通信
  6. MaterialDesign之NavigationView和DrawerLayout实现侧滑菜单栏
  7. RabbitMQ (一)第一个hello world
  8. 怎么只要小数部分C语言,如何得出一个浮点数的小数部分,要把各个位保存到一个数组里边。...
  9. MyBatis 拦截器(4)
  10. 负值之美:负margin在页面布局中的应用
  11. 如何成长为一名合格的web架构师?
  12. 【SQL精彩语句】按某一字段分组取最大(小)值所在行的数据
  13. python 课程设计扫雷报告_扫雷游戏课程设计报告
  14. 骁龙855音频解码芯片_小米10、小10 Pro详细对比:骁龙865最强悍5G旗舰手机
  15. 51单片机学习笔记(8)——74HC573锁存器
  16. 用python画一个简单卡通人物画法_Python绘制可爱的卡通人物 | 【turtle使用】
  17. 秋招硬件设计岗,offer拿到手软,是一种什么体验?
  18. python文件查重_文件查重 我使用的是面向局部敏感的最小哈希签名的方法进行文档查重 联合开发网 - pudn.com...
  19. 时间序列模型步骤教程(ARIMA)
  20. 基于stm32+LM2904+esp8266的噪声预警系统

热门文章

  1. iMazing怎么提取应用程序
  2. Regular comment points from reviewers
  3. bugku 江湖魔头
  4. 近期开发者问题合集(2)
  5. 计算机毕业设计Node.js+Express银行理财推荐系统(源码+程序+lw+远程调试)
  6. 大数据:数据采集平台之Scribe
  7. 灵雀云CEO左玥:所有数字化转型必然最终会落到容器上
  8. 中秋节快到了,别学Python了,进来排队领块月饼吧【纯手工哪种】!
  9. 多表联合查询的SQL语句
  10. Apollo 11号登月飞船制导计算机源代码(待续)