【Access】SQL语句中自然连接的使用

大家好,上次课程我们讲了等值连接,本节课跟随小编来学习一下自然连接。自然连接是按照公共属性值相等的条件进行连接,是一种特殊的等值连接,公共属性值不相等的行会被删除,同时在结果中消除重复的属性列。

我们用一个例子来演示一下如何在Access数据库中使用自然连接来完成查询,如下图是Access数据库中的两个表:

表一:

表二:

仔细观察一下,我们会发现有如下的等值情况:

1、表一的a字段和表二c字段有相同的值5;

2、表一的b字段和表二c字段有相同的值6;

3、表一的b字段和表二d字段有相同的值6;

4、表一的c字段和表二c字段有相同的值5和7;

5、表一的c字段和表二d字段有相同的值7;

6、表一的c字段和表二e字段有相同的值7;

然而表一和表二的公共属性列是c列,所以自然连接就只是比较c列中的等值,其它列等值的情况不管,这就是“自然连接是一种特殊的等值连接”的原因,在Access中建立自然连接很简单,在查询设计器中按如下操作:

这个等值连接对应的SQL语句是:

我们可以看到用SQL语句中使用的是WHERE子句,然后用=连接两个表的公共属性列(c列),这就是自然连接,下图是这个自然连接的结果:

在这个案例中,我们可以看出表一和表二的公共属性列是c列,表一c列中的数据3和表二c列中的3相等,所以表一c列中的数据3所在行的数据和表二c列中的数据3所在行的数据会被保留下来,表一和表二c列中不相等的数据所在行全部被删除掉了,并且在结果中消除重复属性列c列了,只保留一个共同的c列。自然连接是Access数据库中最常用的连接类型了,我们不经意间用的连接基本上都是自然连接,只是你在用的时候没注意罢了。

快捷查看
(0)

相关推荐

  • kettle

    上一节:kettle--(1)介绍和Execl输出举例 最近公司在做数据总线的工作,需要用kettle这个ETL工具,所以花了一些时间来研究研究,喜欢的话点个赞 kettle抽取一个数据库中数据,同步 ...

  • Mysql:初识MySQL

    转载自:https://www.cnblogs.com/hellokuangshen/archive/2019/01/09/10246029.html Mysql:初识MySQL 只会写代码的是码农: ...

  • Access数据库、Excel表格与VB编程完美结合实现Excel表格透视功能

    现有9个班级的学生成绩表,包括三门课的成绩: 要求在Excel中画出每个班级每科平均成绩柱状图. 如果单纯的用Excel整理数据很是麻烦,一共九个班级,每个班级都要求三门课的平均成绩,费时费力. 可以 ...

  • 【Access】SQL语句中内连接的使用

    大家好,上次课程我们讲了自然连接的使用,本节课再跟随小编来学习一下内连接.内连接的效果和等值连接是一样的,只不过在Access数据库中的操作不一样罢了,这里先放上内连接的SQL语法格式: SELECT ...

  • 【Access】SQL语句中全外连接的使用

    大家好,上次Access课程我们讲了右(外)连接使用,本节课再跟随小编来学习一下全外连接.全外连接是在两表进行自然连接,只把左表和右表要舍弃的都保留在结果集中,相对应的列上填NULL.全外连接的语法格 ...

  • 【Access】SQL语句中WHERE子句和HAVING 子句的异同

    初学SQL语句的时候,很多朋友总是无法理解HAVING 子句和WHERE子句之间区别,今天我们就来细细谈一谈这个问题.首先列出它们之间的相同和区别,然后我们举例说明. 一.相同点: 二者的相同点是在功 ...

  • 【Access】SQL语句中别名的使用之字段名别名

    别名主要使我们得到的查询结果更容易理解和阅读,关于别名的使用,我们还是先看个例子吧,如下图是一份简易的销售表: 现在假如我们想要查询每个员工的总销售额,我们可以建立如下的SQL查询: 运行一下得到如下 ...

  • 【Access】SQL语句中别名的使用之表名别名

    大家好,上次课我们学习了SQL语句中别名的使用之字段名别名的用法,今天我们学习SQL语句中别名的使用之表名别名,顾名思义,表名别名就是给表取一个别名,那么你会问有什么用呢,瞎折腾吗?肯定不是啦,我们看 ...

  • 成功sql语句中直接写变量

    public static PagedResultInOut<T> SqlPage<T>(string sql, string order, int page, int siz ...

  • mybatis sql语句中 in() 长度为0或null的情况

    比如: select * from A where colName IN <foreach collection="moCodeList" item="item&q ...

  • oracle sql语句中like %参数%的用法

    oracle sql语句中like %参数%的用法,在网上找了很久没找到类似的帖子,因此分享一下我的收获,希望对看到的人有帮助 今天在处理oracle数据库数据merge的时候遇到一个问题: 在mer ...

  • SQL 语句中 where 条件后 写上1=1 是什么意思

    在编程过程中,经常会在代码中使用到"where 1=1",这是为什么呢? SQL注入 初次看到这种写法的同学肯定很纳闷,加不加where 1=1,查询不都一样吗?例如: selec ...