首页 > 其他分享 >8.4.3 多表查询

8.4.3 多表查询

时间:2023-01-04 17:04:45浏览次数:30  
标签:多表 8.4 查询 mysql employee 员工 连接 view

 一 介绍

本节主题

  • 多表连接查询
  • 复合条件连接查询
  • 子查询

准备表

view

view

二 多表连接查询

#重点:外链接语法
SELECT 字段列表
FROM 表1 INNER|LEFT|RIGHT JOIN 表2
ON 表1.字段 = 表2.字段;

1 交叉连接:不适用任何匹配条件。生成笛卡尔积

view

2 内连接:只连接匹配的行

#找两张表共有的部分,相当于利用条件从笛卡尔积结果中筛选出了正确的结果
#department没有204这个部门,因而employee表中关于204这条员工信息没有匹配出来

view

3 外链接之左连接:优先显示左表全部记录
#以左表为准,即找出所有员工信息,当然包括没有部门的员工
#本质就是:在内连接的基础上增加左边有右边没有的结果

view

4 外链接之右连接:优先显示右表全部记录
#以右表为准,即找出所有部门信息,包括没有员工的部门
#本质就是:在内连接的基础上增加右边有左边没有的结果

view

5 全外连接:显示左右两个表全部记录
全外连接:在内连接的基础上增加左边有右边没有的和右边有左边没有的结果
#注意:mysql不支持全外连接 full JOIN
#强调:mysql可以使用此种方式间接实现全外连接

view

三 符合条件连接查询

#示例1:以内连接的方式查询employee和department表,并且employee表中的age字段值必须大于25,即找出年龄大于25岁的员工以及员工所在的部门

view

#示例2:以内连接的方式查询employee和department表,并且以age字段的升序方式显示

view

四 子查询

#1:子查询是将一个查询语句嵌套在另一个查询语句中。
#2:内层查询语句的查询结果,可以为外层查询语句提供查询条件。
#3:子查询中可以包含:IN、NOT IN、ANY、ALL、EXISTS 和 NOT EXISTS等关键字
#4:还可以包含比较运算符:= 、 !=、> 、<等

1 带IN关键字的子查询

view

2 带比较运算符的子查询

view

3 带EXISTS关键字的子查询

view


练习:查询每个部门最新入职的那位员工

#创建表

准备表和记录

view

正确答案

view

五 综合练习

init.sql文件内容

view

从init.sql文件中导入数据

#准备表、记录
mysql> create database db1;
mysql> use db1;
mysql> source /root/init.sql
题目

view



标签:多表,8.4,查询,mysql,employee,员工,连接,view
From: https://blog.51cto.com/wenyule/5988716

相关文章