引言

假设有这样四个表student、teacher、score和course它们的定义如下:

create table student(学号 int primary key,姓名 varchar(20)
);
create table teacher(工号 int primary key,姓名 varchar(20)
);
create table course(课号 int primary key,课名 varchar(20),教师 int references teacher(工号)
);
create table score(学号 int references student(学号),课号 int references course(课号),成绩 int
);

若要完成以下任务:

  • 任务1:连接course和score(按课号相同的策略连接) [course和score符合条件的只有314行,交叉连接有1000行]
  • 任务2:连接teacher和course(按工号和教师相同的策略) [teacher和course符合条件的只有10行,交叉连接有200行]

1.等值连接(join on)

任务1

select *
from score join course
on score.课号=course.课号;

任务2

SELECT *
FROM teacher JOIN course
ON teacher.`工号`=course.`教师`;

2.自然连接(natural join)

SELECT *
FROM score natural JOIN course;

SELECT *
FROM teacher NATURAL JOIN course;

[注意]natural join不能加on

SELECT *
FROM teacher NATURAL JOIN course
ON teacher.`工号`=course.`教师`;

3.内连接(inner join on)

SELECT *
FROM score INNER JOIN course
ON score.`课号`=course.`课号`;

SELECT *
FROM teacher INNER JOIN course
ON teacher.`工号`=course.`教师`;

[总结]

  • 内连接和等值连接效果一样,只是叫法不一样
  • 在运算的两个联系中,如果两个联系有公共属性(同名属性),则自然连接会去除其中一个联系的共有属性,只留下另一个的共有属性,等值连接和内连接则会保留两者的共有属性
  • 在运算的两个联系中,如果两个联系没有公共属性(同名属性),则自然连接的笛卡儿积的结果一样。

等值连接、自然连接和内连接之间的区别相关推荐

  1. 数据库表连接总结:等值连接, 自然连接,左外连接,右外连接,内连接,全外连接;

    [1]等值连接 1)连接:凡是查询涉及到两个以上的表,就需要将表连接: 2)就是用where子句做的连接查询:连接查询的列名可以不同: [2]自然连接: select * from  a_tbl na ...

  2. 图解SQL的连接:左连接、右连接、全连接、内连接、自然连接

    SQL的连接分为三类: 外连接(包括左连接left join.右连接right join.全连接full join) 内连接 inner join 自然连接 natural join 我们来看一个超级 ...

  3. Mysql表连接:内连接、外连接、交叉连接、自然连接真的都不一样吗

    文章目录 前言 测试环境 创建测试数据 对比测试 内连接 交叉连接 外连接 左外连接 右外连接 自然连接 一般自然连接 自然左外连接 自然右外连接 STRAIGHT_JOIN 逗号分隔连接表 各种连接 ...

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

    作者:初行 – 博客园 SQL连接可以分为内连接.外连接.交叉连接. 数据库数据: book表:                                         stu表:       ...

  5. SQL 四种连接:内连接、左外连接、右外连接、全连接--转载

    原文:http://zwdsmileface.iteye.com/blog/2191730 个人理解  内连接(INNER JOIN)(典型的连接运算,使用像   =   或   <>   ...

  6. mysql外连接插座_深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接...

    1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接. 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 students和 ...

  7. 数据库外连接和内连接详解

    SQL语句中有关的连接主要有: 外连接.内链接.全连接. 内连接: INNER  JOIN 内连接为 两个表中必须都同时满足条件 内连接,即最常见的等值连接 自然连接和等值连接的区别: 等值连接会将等 ...

  8. SQL 左外连接,右外连接,全连接,内连接 4种连接的区别

    ?连接条件可在FROM或WHERE子句中指定,建议在FROM子句中指定连接条件.WHERE和HAVING子句也可以包含搜索条件,以进一步筛选连接条件所选的行. 连接可分为以下几类: 内连接.(典型的连 ...

  9. mysql 左外连接原理_深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接...

    1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接. 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 students和 ...

  10. SQL 左外连接,右外连接,全连接,内连接带图详细介绍

    SELECT id, name,description,img_url,sort,is_display ​ from bbs_brand ORDER BY id DESC ​ limit startR ...

最新文章

  1. There is no isNullOrEmpty for collections in Guawa
  2. 异步编程(asyncawait)
  3. HDU - 5876 Sparse Graph(bfs+set)
  4. 恐怖如斯,阿里P9总结的这份Java八股文,已经帮近百人拿到offer了
  5. Codeforces 1065 E. Side Transmutations
  6. pyinstaller安装失败解决
  7. Schedulerx2.0工作流支持数据传输
  8. 从零开始编写自己的C#框架(27)——什么是开发框架
  9. java byte 正数最大_关于JAVA中Byte类型的取值范围的推论(*零为正数,-128在计算机中的表示方法...)...
  10. 无需SherlockActionbar的SlidingMenu使用详解(二)——向Fragment中添加ViewPager和Tab
  11. python调用rest api_调用rest api使用python将数据推送到运动学
  12. 关于Action模型驱动无法获取属性的问题
  13. 链表的基本操作Basic Operation of LinkList
  14. C++ 派生类和virtual
  15. Python二维数组,坑苦了
  16. synaptics触摸板_使用Dell Synaptics触摸板修复Firefox滚动问题
  17. 3ds max 旋转及角度
  18. 没完全读懂的《人间失格》
  19. 线性代数---之基向量
  20. 信号(进程间的通信方式)

热门文章

  1. html标签中文字换行
  2. 生成组合对象的算法——Johnson-Trotter算法的python实现
  3. 大数据【big data 4v】
  4. jmeter监听器---聚合数据样本展示
  5. 有偏估计 无偏估计
  6. 大数据工程师(开发)面试系列
  7. 职称英语与计算机考试试题,2017职称计算机考试Word模拟题及答案
  8. Hadoop 入门总结
  9. 视频侦查实战应用平台
  10. Arduino_mega2560+DynamixelShield控制MX-64R舵机