Skip to content

Latest commit

 

History

History
130 lines (76 loc) · 2.28 KB

File metadata and controls

130 lines (76 loc) · 2.28 KB

第7节 多表查询

❤️💕💕数据库的高级指南,如何在 MySQL、SQL Server、MS Access、Oracle、Sybase、Informix、Postgres 和其他数据库系统中使用 SQL,如何从头实现一个数据库系统,我们开始吧!Myblog:http://nsddd.top


[TOC]

多表查询

多表查询比较简单~

多表查询的sql和单表查询类似 第四节也见过一部分多表查询

多表查询分类:

  • 多表查询 – 内连接&外连接
  • 多表查询 – 子查询

内连接查询

内连接也分为隐式查询和显示连接

隐式内连接

select 字段列表 from 表1,表2.... where 条件

显式内连接

select 字段列表 from 表1 [inner] join 表2 on 条件
  • join表示连接
  • on表示条件

外连接

左外连接

select 字段列表 from1 left join2 on 条件

右外连接

select 字段列表 from1 right join2 on 条件

一般左右外连接可以互换,但是一般左外连接用的多

嵌套查询

例如: 我们需要查询工资高于猪八戒的员工信息:

  • 先查询猪八戒的工资
select salary from emp where name = '猪八戒';
  • 再查询工资高于猪八戒工资的员工
select * from emp where salary > 3600;

可以把上面的综合起来

select * from emp where salary > (select salary from emp where name = '猪八戒');

子查询分类

根据子查询的查询结果不同经历过,作用不同:

  • 单行单列:作为条件值,使用= ! = > <等条件判断(和上面一样)
select 字段列表 fromwhere 字段名 = (子查询); 
  • 多行多列:作为条件值,使用in等关键字进行条件判断
select 字段列表 fromwhere 字段名 in (子查询)
  • 多行多列:作为虚拟表
select 字段列表 from (子查询) where 条件;

END 链接