`
独二无一1102
  • 浏览: 17385 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

内连接、外连接、全连接、where的区别

阅读更多
    1、where条件
       with student as(
           select '1' id,'张三' name,'1' tid from dual union all
           select '2' id,'李四' name,'2' tid from dual union all
           select '3' id,'王五' name,'1' tid from dual union all
           select '4' id,'赵六' name,'5' tid from dual
       ),
       teacher as(
           select '1' id,'李老师' name from dual union all
           select '2' id,'张老师' name from dual union all 
           select '3' id,'郑老师' name from dual
       )
       select * from student s,teacher t where s.tid=t.id
  
ID	NAME	TID	ID	NAME
1	张三	1	1	李老师
2	李四	2	2	张老师
3	王五	1	1	李老师
    
    2、内连接
with student as(
     select '1' id,'张三' name,'1' tid from dual union all
     select '2' id,'李四' name,'2' tid from dual union all
     select '3' id,'王五' name,'1' tid from dual union all
     select '4' id,'赵六' name,'5' tid from dual
),
teacher as(
     select '1' id,'李老师' name from dual union all
     select '2' id,'张老师' name from dual union all 
     select '3' id,'郑老师' name from dual
)
select * from student s join teacher t on s.tid=t.id

ID	NAME	TID	ID	NAME
1	张三	1	1	李老师
2	李四	2	2	张老师
3	王五	1	1	李老师

    3、外连接
       3.1 左外连接
with student as(
     select '1' id,'张三' name,'1' tid from dual union all
     select '2' id,'李四' name,'2' tid from dual union all
     select '3' id,'王五' name,'1' tid from dual union all
     select '4' id,'赵六' name,'5' tid from dual
),
teacher as(
     select '1' id,'李老师' name from dual union all
     select '2' id,'张老师' name from dual union all 
     select '3' id,'郑老师' name from dual
)
select * from student s left join teacher t on s.tid=t.id
或者select * from student s left join teacher t on s.tid=t.id(+)

ID	NAME	TID	ID	NAME
3	王五	1	1	李老师
1	张三	1	1	李老师
2	李四	2	2	张老师
4	赵六	5		

        3.2 右外连接
with student as(
     select '1' id,'张三' name,'1' tid from dual union all
     select '2' id,'李四' name,'2' tid from dual union all
     select '3' id,'王五' name,'1' tid from dual union all
     select '4' id,'赵六' name,'5' tid from dual
),
teacher as(
     select '1' id,'李老师' name from dual union all
     select '2' id,'张老师' name from dual union all 
     select '3' id,'郑老师' name from dual
)
select * from student s right join teacher t on s.tid=t.id
或者select * from student s left join teacher t on s.tid(+)=t.id

ID	NAME	TID	ID	NAME
1	张三	1	1	李老师
2	李四	2	2	张老师
3	王五	1	1	李老师
			3	郑老师

      4、全连接
with student as(
     select '1' id,'张三' name,'1' tid from dual union all
     select '2' id,'李四' name,'2' tid from dual union all
     select '3' id,'王五' name,'1' tid from dual union all
     select '4' id,'赵六' name,'5' tid from dual
),
teacher as(
     select '1' id,'李老师' name from dual union all
     select '2' id,'张老师' name from dual union all 
     select '3' id,'郑老师' name from dual
)
select * from student s full join teacher t on s.tid=t.id

ID	NAME	TID	ID	NAME
1	张三	1	1	李老师
2	李四	2	2	张老师
3	王五	1	1	李老师
4	赵六	5		
			3	郑老师

    总结:where条件和内连接查询出来的数据是一样的,只查询出来能关联上的数据
          外连接 是按照主表的数据多少展现出来的。如左外连接主表就是student;右外连                接主表就是teacher
          全连接 是把所有的数据都展现出来、不管有没有关联出来数据


分享到:
评论

相关推荐

    SQL_左外连接_右外连接_全连接_内连接

    全连接返回左表和右表的所有行,即使另一表中没有匹配。如果在任一表中找不到匹配的行,结果将填充NULL。 ```sql SELECT authors.*, publishers.* FROM authors FULL OUTER JOIN publishers ON authors....

    sql内连接和外连接

    ### SQL内连接与外连接详解 #### 一、SQL内连接(INNER JOIN) **定义**: 内连接(INNER JOIN)是一种最常用的连接方式,它仅返回两个数据集合中具有匹配关系的那些行。具体来说,它会从位于两个互相交叉的数据...

    SQL左外连接,右外连接,全连接,内连接4种连接的区别[归类].pdf

    全连接返回左右两个表的所有行,如果某行在另一个表中没有匹配项,相应列的值将为NULL。全连接显示了所有可能的组合,无论是否在另一个表中有对应项。 在使用外连接时,表的顺序非常重要,因为连接类型决定了哪个...

    外连接,内连接 图文详解

    本文将详细解释五种主要的连接类型:外连接(外连接)、内连接(内连接)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)、全连接(FULL JOIN)以及交叉连接(CROSS JOIN)。 1. **内连接(INNER JOIN)**: 内连接...

    Oracle左(外)、右(外)、全(外)、(内)连接语法与SQL标准的比较

    通过对比可以看出,Oracle在实现左(外)、右(外)、全(外)以及内连接时,其语法与SQL标准有所不同,尤其是在左(外)和右(外)连接上使用了独特的“+”符号来表示可选项。对于全(外)连接,Oracle通过组合左(外)和右(外)...

    自连接外连接

    本文将围绕“自连接外连接”这一主题展开,详细解析Oracle数据库中连接查询的具体实现方法,包括内连接、外连接以及自连接的概念、应用场景及语法示例。 #### 内连接(Inner Join) 内连接主要用来合并两个或多个...

    SQL 四种连接-左外连接、右外连接、内连接、全连接详解

    在上面的例子中,由于a表和b表的id完全匹配,全连接的结果与内连接相同。 在实际应用中,选择哪种连接方式取决于查询的需求。内连接通常用于获取两个表中匹配的数据,而外连接则用于保留至少一个表的所有数据,无论...

    数据库:左连接、右连接、全连接

    外连接(OUTER JOIN)是一种连接操作,用于查询多个表中的数据,但不 sadece 返回符合连接条件的数据行,而是返回左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中的所有数据行。外连接可以分为三种...

    SQL的几种连接:内连接、左联接、右连接、全连接、交叉连接

    根据连接的方式和结果,SQL连接可以分为内连接、左连接、右连接、全连接和交叉连接等多种类型。 内连接 内连接是最基本的连接类型,它将两个表格中的数据根据某个条件连接起来。内连接可以分为等值连接、不等值...

    内连接和外连接

    根据连接方式的不同,可以将连接分为几种类型,包括内连接(Inner Join)、左连接(Left Join)、右连接(Right Join)以及全连接(Full Outer Join)。此外,还有分组(Group By)、排序(Order By)、全文搜索等...

    SQL内连接与外连接.pdf

    全连接结合了左连接和右连接的结果,包括所有可能的行,即使在其中一个表中没有匹配项。 **注意事项**: - `WHERE`子句的放置位置很重要,当`WHERE`条件放在`ON`之后,它会应用于已经联接后的结果,而不是原始的...

    右连接、左连接、全连接、内连接、交叉连接、自连接.pdf

    全连接结合了左连接和右连接,返回两个表中所有记录,无论是否存在匹配。如果某条记录在其中一个表中没有匹配项,结果将用NULL填充缺失的列。 4. **内连接(Inner Join 或 Join)**: 内连接是最常见的连接类型,...

    Oracle外连接查询

    在理解外连接查询之前,我们首先要了解内连接,即最基础的相等连接。内连接查询通过比较两个表中的特定字段值来筛选出匹配的记录,例如`SELECT * FROM A, B WHERE A.id = B.id`,这将返回A表和B表中id字段值相同的...

    oracle数据库表左连接右连接全连接的认识

    * 全连接:简单说就是左右连接的全部表示,根据连接条件在任意一方表中出现无法匹配的情况,不满足条件的部分均用空值代替。 左连接和右连接 左连接和右连接的区别在于基准表的选择,左连接将左边的表作为基准表,...

    数据库表连接(内外、左右连接).docx

    `SELECT * FROM voteMaster vm LEFT OUTER JOIN voter vt ON vm.id=vt.id UNION ALL SELECT * FROM voteMaster vm RIGHT OUTER JOIN voter vt ON vm.id=vt.id WHERE vm.id IS NULL` 这样的查询可以模拟全外连接的...

    理解oracle中的外连接

    在Oracle数据库系统中,外连接(Outer Join)是一种高级的SQL联接操作,它扩展了标准的内连接(Inner Join)概念,允许我们查询不匹配的数据。外连接分为三种类型:左外连接(Left Outer Join)、右外连接(Right ...

    Oracle中的几种表连接区别

    本文将详细介绍Oracle中常见的几种表连接方式及其应用场景,包括内连接(Inner Join)、外连接(Outer Join)、左连接(Left Join)、右连接(Right Join)等,并通过具体的例子来帮助理解每种连接的特点与区别。...

Global site tag (gtag.js) - Google Analytics