等值连接、自然连接和内连接之间的区别
引言
假设有这样四个表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)连接:凡是查询涉及到两个以上的表,就需要将表连接: 2)就是用where子句做的连接查询:连接查询的列名可以不同: [2]自然连接: select * from a_tbl na ...
- 图解SQL的连接:左连接、右连接、全连接、内连接、自然连接
SQL的连接分为三类: 外连接(包括左连接left join.右连接right join.全连接full join) 内连接 inner join 自然连接 natural join 我们来看一个超级 ...
- Mysql表连接:内连接、外连接、交叉连接、自然连接真的都不一样吗
文章目录 前言 测试环境 创建测试数据 对比测试 内连接 交叉连接 外连接 左外连接 右外连接 自然连接 一般自然连接 自然左外连接 自然右外连接 STRAIGHT_JOIN 逗号分隔连接表 各种连接 ...
- SQL的几种连接:内连接、左联接、右连接、全连接、交叉连接
作者:初行 – 博客园 SQL连接可以分为内连接.外连接.交叉连接. 数据库数据: book表: stu表: ...
- SQL 四种连接:内连接、左外连接、右外连接、全连接--转载
原文:http://zwdsmileface.iteye.com/blog/2191730 个人理解 内连接(INNER JOIN)(典型的连接运算,使用像 = 或 <> ...
- mysql外连接插座_深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接...
1.内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符).包括相等联接和自然联接. 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 students和 ...
- 数据库外连接和内连接详解
SQL语句中有关的连接主要有: 外连接.内链接.全连接. 内连接: INNER JOIN 内连接为 两个表中必须都同时满足条件 内连接,即最常见的等值连接 自然连接和等值连接的区别: 等值连接会将等 ...
- SQL 左外连接,右外连接,全连接,内连接 4种连接的区别
?连接条件可在FROM或WHERE子句中指定,建议在FROM子句中指定连接条件.WHERE和HAVING子句也可以包含搜索条件,以进一步筛选连接条件所选的行. 连接可分为以下几类: 内连接.(典型的连 ...
- mysql 左外连接原理_深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接...
1.内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符).包括相等联接和自然联接. 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 students和 ...
- SQL 左外连接,右外连接,全连接,内连接带图详细介绍
SELECT id, name,description,img_url,sort,is_display from bbs_brand ORDER BY id DESC limit startR ...
最新文章
- 工作之余如何提高个人技术水平
- 一致性hash算法虚拟节点_Hash算法和一致性Hash算法
- linux elf 视频,linux 实例讲解elf文件
- 使用jackson对Java对象与JSON字符串相互转换的一些总结
- CALayers详解
- 软件测试---正交试验法
- 阿里云解决方案架构师李晨:百万级价签系统的实时洞察与创新实践
- jmeter导入已有的脚本_jmeter 开发导入excel脚本
- 600个超实用ICON图标矢量
- 利用MTviz绘制线粒体基因组结构图
- linux监控工具gotop
- 【软件测试】BUG的管理
- matlab eigs 求特征值函数
- 《the Great Gatsby》Day 33
- 孤独后厂村,IT人百态:30万互联网人跳不出的中国硅谷
- 丢手帕问题 java_java基于双向环形链表解决丢手帕问题的方法示例
- css overflow属性及使用方法(场景)
- 正弦函数的傅里叶级数展开计算
- JAVA社交平台项目第七天 JUC多线程
- 2019年度区块链安全复盘总结