数据库——自然连接、内连接、外连接(左外连接、右外连接、全外连接)、交叉连接

标签: mysql sql 数据库
64人阅读 评论(1) 收藏 举报
分类:

1. 自然连接(*natural join)*
学生表这里写图片描述
自然连接不用指定连接列,也不能使用ON语句,它默认比较两张表里相同的列,

 `SELECT*FROM student NATURAL JOIN score;`

显示结果如下:
这里写图片描述
2. 内连接(inner join
和自然连接区别之处在于内连接可以自定义两张表的不同列字段。
内连接有两种形式:显式和隐式。
例:以下语句执行结果相同。
这里写图片描述

①隐式的内连接,没有INNER JOIN,形成的中间表为两个表的笛卡尔积。

SELECT student.name,score.codeFROM student,score WHERE score.code=student.code;

② 显示的内连接,一般称为内连接,有INNER JOIN,形成的中间表为两个表经过ON条件过滤后的笛卡尔积。

SELECT student.name,score.codeFROM student INNER JOIN score ON score.code=student.code;

3.外连接(outer join
①左外连接(left outer join):返回指定左表的全部行+右表对应的行,如果左表中数据在右表中没有与其相匹配的行,则在查询结果集中显示为空值。
例:SELECT student.name,score.codeFROM student LEFT JOIN score ON score.code=student.code;
查询结果如下:
这里写图片描述
②右外连接(right outer join):与左外连接类似,是左外连接的反向连接。

SELECT student.name,score.codeFROM student RIGHT JOIN score ON score.code=student.code;
这里写图片描述
②全外连接(full outer join):把左右两表进行自然连接,左表在右表没有的显示NULL,右表在左表没有的显示NULL。(MYSQL不支持全外连接,适用于Oracle和DB2。)

在MySQL中,可通过求左外连接与右外连接的合集来实现全外连接。
例:

SELECT student.name,score.codeFROM student LEFT JOIN score ON
score.
code=student.codeUNION SELECT student.name,score.code
FROM student RIGHT JOIN score ON score.
code=student.code;

4.交叉连接(cross join:相当与笛卡尔积,左表和右表组合。
SELECT student.name,score.code FROM student CROSS JOIN score ON score.code=student.code;
这里写图片描述

查看评论

理解MySQL数据库中四种连接-内连接、左外连接、右外连接、交叉连接

本文章主要对目前比较常用的SQL四种连接方式进行介绍,文笔略有粗糙,还请阅读的朋友多提些建议。四种连接方式: 内连接(INNER JOIN) 左外连接(LEFT JOIN) 右外连接(RIGHT JO...
  • lujianhao_ios
  • lujianhao_ios
  • 2017-08-03 11:17:43
  • 421

内连接、左外连接、右外连接、交叉连接及其区别

首先建立两张表A、B。 表A: Aid:int类型,无符号递增,主键 name:varchar类型 表B: Bid:int类型,无符号递增,主键 name:varchar类型 age:int类型 ...
  • xukun5137
  • xukun5137
  • 2016-06-20 19:49:09
  • 3722

数据库的内连接、外连接(左外连接、右外连接、全外连接)以及交叉连接

SQL数据库的连接:内连接、和外连接(左外连接、右外连接、和全连接)本次实验在MySQL数据库中进行,数据库初始表如下:一、内连接:结果仅包含符合连接条件的两表中的行。如下:二、外连接:结果包含符合条...
  • u012050154
  • u012050154
  • 2016-09-10 22:30:18
  • 7648

表连接+内连接+等值连接+不等值连接+自然连接+using+外连接+ 左外连接+右外连接+全连接+自连接+交叉连接

表连接 from tableName1 join_type tableName2 【 on (join_condition)】 【join_type tableNameN on join...
  • zhou920786312
  • zhou920786312
  • 2017-04-25 11:30:46
  • 1895

Oracle内连接、左外连接、右外连接、全外连接

表TESTA,TESTB,TESTC,各有A, B两列 A B 001 10A 002 20A A B 001 10B 00...
  • futdktyx
  • futdktyx
  • 2013-12-06 13:46:27
  • 1752

sql左外连接、右外连接、内连接、全外连接的区别

  • 2012年12月03日 11:20
  • 2KB
  • 下载

内连接、左外连接、右外连接、全外连接、交叉连接(CROSS JOIN)-----小知识解决大数据攻略

早就听说了内连接与外连接,以前视图中使用过这次自考也学习了,只是简单理解,现在深入探究学习(由于上篇博客的出现)与实践 概念 关键字: 左右连接 数据表的连接有: 1、内连接(自然连接): 只有两个...
  • lishehe
  • lishehe
  • 2013-10-23 21:36:35
  • 8512

内连接,外链接(左连接、右连接、全连接),交叉连接大总结

1.什么是连接查询呢?     概念:根据两个表或多个表的列之间的关系,从这些表中查询数据。     目的:实现多个表查询操作。 2.分类: 首先划分一下,连接分为三种:内...
  • basycia
  • basycia
  • 2016-08-14 20:17:20
  • 4332

sql的交叉连接,内连接,左外连接,右外连接,全外连接总结

实践是最好的检验,一直都对这几个连接查询出来的结果有什么不同不大理解,然后自己放一块查询比较了一下,用结果来说话~ 先建两张表如下: t1: id name age 1 张三 ...
  • u012599724
  • u012599724
  • 2015-05-23 10:39:48
  • 668

详解SQL Server连接(内连接、外连接、交叉连接)

在查询多个表时,我们经常会用“连接查询”。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。 什么是连接查询呢?     概念:根据两个表或多个表的列之间的关系,从这些表中...
  • jiuqiyuliang
  • jiuqiyuliang
  • 2013-08-30 11:42:40
  • 98511
    个人资料
    持之以恒
    等级:
    访问量: 4371
    积分: 170
    排名: 106万+
    文章分类
    文章存档