引言

假设有这样四个表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. 工作之余如何提高个人技术水平
  2. 一致性hash算法虚拟节点_Hash算法和一致性Hash算法
  3. linux elf 视频,linux 实例讲解elf文件
  4. 使用jackson对Java对象与JSON字符串相互转换的一些总结
  5. CALayers详解
  6. 软件测试---正交试验法
  7. 阿里云解决方案架构师李晨:百万级价签系统的实时洞察与创新实践
  8. jmeter导入已有的脚本_jmeter 开发导入excel脚本
  9. 600个超实用ICON图标矢量
  10. 利用MTviz绘制线粒体基因组结构图
  11. linux监控工具gotop
  12. 【软件测试】BUG的管理
  13. matlab eigs 求特征值函数
  14. 《the Great Gatsby》Day 33
  15. 孤独后厂村,IT人百态:30万互联网人跳不出的中国硅谷
  16. 丢手帕问题 java_java基于双向环形链表解决丢手帕问题的方法示例
  17. css overflow属性及使用方法(场景)
  18. 正弦函数的傅里叶级数展开计算
  19. JAVA社交平台项目第七天 JUC多线程
  20. 2019年度区块链安全复盘总结

热门文章

  1. 分析器错误消息: 该配置节不能包含 CDATA 或文本元素。
  2. go语言比java高级在哪里
  3. epoll与reactor模式
  4. 关于人工智能不会使大脑变懒惰的议论文_自律,拒绝懒惰和放纵,不枉余生
  5. springboot整合liquibase(补充)
  6. Java就业企业面试问题-电商项目
  7. 手机红米5android7.11,这些是不支持ANDROID 11更新的小米和红米手机
  8. abaqus导出全部节点应力值
  9. asp.net909-大型社区包裹代收与分发系统
  10. sql server 添加表注释、字段注释