数据库中的多表查询

简介: 数据库中的多表查询

多表查询的分类:


1. 内连接查询:


  1. 隐式内连接:使用where条件消除无用数据
    * 例子:
    查询所有员工信息和对应的部门信息
    SELECT * FROM emp,dept WHERE emp.dept_id = dept.id;
    查询员工表的名称,性别。部门表的名称
    SELECT emp.name,emp.gender,dept.name FROM emp,dept WHERE emp.dept_id = dept.id;
  2. 显式内连接:
    * 语法: select 字段列表 from 表名1 [inner] join 表名2 on 条件
    * 例如:
    * SELECT * FROM emp INNER JOIN dept ON emp.dept_id = dept.id;
    * SELECT * FROM emp JOIN dept ON emp.dept_id = dept.id;


2. 外链接查询:


  1. 左外连接:
    * 语法:select 字段列表 from 表1 left [outer] join 表2 on 条件;
    * 查询的是左表所有数据以及其交集部分。
    * 例子:
    – 查询所有员工信息,如果员工有部门,则查询部门名称,没有部门,则不显示部门名称
    SELECT t1.*,t2.name FROM emp t1 LEFT JOIN dept t2 ON t1.dept_id = t2.id;
  2. 右外连接:
    * 语法:select 字段列表 from 表1 right [outer] join 表2 on 条件;
    * 查询的是右表所有数据以及其交集部分。
    * 例子:
    SELECT * FROM dept t2 RIGHT JOIN emp t1 ON t1.dept_id = t2.id;


3. 子查询:


  • 概念:查询中嵌套查询,称嵌套查询为子查询。
    查询工资最高的员工信息
    1 查询最高的工资是多少 9000
    SELECT MAX(salary) FROM emp;
    2 查询员工信息,并且工资等于9000的
    SELECT * FROM emp WHERE emp.salary = 9000;子查询不同情况


1. 子查询的结果是单行单列的:
      * 子查询可以作为条件,使用运算符去判断。 运算符: > >= < <= =
      * 
      -- 查询员工工资小于平均工资的人
      SELECT * FROM emp WHERE emp.salary < (SELECT AVG(salary) FROM emp);
  2. 子查询的结果是多行单列的:
      * 子查询可以作为条件,使用运算符in来判断
      -- 查询'财务部'和'市场部'所有的员工信息
      SELECT id FROM dept WHERE NAME = '财务部' OR NAME = '市场部';
  3. 子查询的结果是多行多列的:
      * 子查询可以作为一张虚拟表参与查询
      -- 查询员工入职日期是2011-11-11日之后的员工信息和部门信息
      -- 子查询
      SELECT * FROM dept t1 ,(SELECT * FROM emp WHERE emp.`join_date` > '2011-11-11') t2
      WHERE t1.id = t2.dept_id;

新创建一个公众号 Rockey小何同学 想相互交流的同学可以关注一下哈! 感谢支持!

相关文章
|
6月前
|
SQL 存储 关系型数据库
轻松入门MySQL:数据库关联与多表查询,构建高效的业务决策引擎(6)
轻松入门MySQL:数据库关联与多表查询,构建高效的业务决策引擎(6)
158 0
|
6月前
|
SQL 关系型数据库 MySQL
⑧【MySQL】数据库查询:内连接、外连接、自连接、子查询、多表查询
⑧【MySQL】数据库查询:内连接、外连接、自连接、子查询、多表查询
205 0
|
5月前
|
关系型数据库 MySQL 数据库
关系型数据库MySQL开发要点之多表查询2024详解
关系型数据库MySQL开发要点之多表查询2024详解
34 2
|
5月前
|
关系型数据库 MySQL 数据库
MySQL数据库开发之多表查询数据准备及案例实操
MySQL数据库开发之多表查询数据准备及案例实操
47 1
|
5月前
|
关系型数据库 MySQL 数据库
MySQL数据库基础第四篇(多表查询与事务)
MySQL数据库基础第四篇(多表查询与事务)
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库——基础篇总结(概述、SQL、函数、约束、多表查询、事务)一
MySQL数据库——基础篇总结(概述、SQL、函数、约束、多表查询、事务)一
45 5
|
5月前
|
关系型数据库 MySQL 数据库
MySQL数据库——多表查询(4)-实例练习、多表查询总结
MySQL数据库——多表查询(4)-实例练习、多表查询总结
135 1
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库——多表查询(3)-自连接、联合查询、子查询
MySQL数据库——多表查询(3)-自连接、联合查询、子查询
218 1
|
5月前
|
关系型数据库 MySQL 数据库
MySQL数据库——多表查询(2)-内连接、外连接
MySQL数据库——多表查询(2)-内连接、外连接
40 1
|
5月前
|
SQL 数据库 数据库管理
逆向学习数据库篇:多表查询技术详解
逆向学习数据库篇:多表查询技术详解
51 0