我的编程空间,编程开发者的网络收藏夹
学习永远不晚

数据库中表连接方式有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

数据库中表连接方式有哪些

这篇文章将为大家详细讲解有关数据库中表连接方式有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

1 nested loop join

循环嵌套连接:行源1的每一条记录,依次去匹配行源2的每条记录,将符合连接条件的记录放在结果集中,直到行源1的所有记录都完成这个操作。循环嵌套连接是最基本也是最古老的表连接方式。

数据库中表连接方式有哪些

2 sort merge join

排序合并连接:行源1和行源2的数据分别排序,然后将两个排序的源表合并,符合连接条件的记录放到结果集中。由于排序需要内存空间,sort merge join对内存有比较大的消耗,如果内存空间(8i为sort_area_size,9i及以上使用PGA)不足,则会使用临时表空间,这样会降低排序合并连接的效率。排序合并连接是最古老的表连接方式之一。

 

附上tom哥哥的解释:

You Asked 
Tom,

What is the difference between "Sort Merge" and "Hash" Joins. Don't they both do a one
FULL scan each on the joining tables and join them?

I know Sort Merge is used in the case of "ALL ROWS" and Nested Loops in the case of
"FIRST ROWS" hints. How about Has Join? When is it used?

Would really appreciate if you could explain it with a couple of examples.

Thanks in advance. 


and we said...
Well, a sort merge of A and B is sort of like this:

   read A and sort by join key to temp_a
   read B and sort by join key to temp_b

   read a record from temp_a
   read a record from temp_b
   while NOT eof on temp_a and temp_b
   loop
        if ( temp_a.key = temp_b.key ) then output joined record
        elsif ( temp_a.key <= temp_b.key ) read a record from temp_a
        elsif ( temp_a.key >= temp_b.key ) read a record from temp_b )
   end loop

(its more complex then that, the above logic assumed the join key was unique -- we really
need to join every match in temp_a to every match in temp_b but you get the picture)

The hash join is conceptually like:

   create a hash table on one of A or B (say A) on the join key creating temp_a.

   while NOT eof on B
      read a record in b
      hash the join key and look up into temp_a by that hash key for matching 
      records
      output the matches
   end loop

So, a hash join can sometimes be much more efficient (one hash, not two sorts)

Hash joins are used any time a sort merge might be used in most cases.  If you don't see
hash joins going on, perhaps you have hash_join_enabled turned off...

数据库中表连接方式有哪些

3  hash join

哈希连接:将行源1计算成一张基于连接键的hash表,行源2的每条记录依次扫描这张hash表,找到匹配的记录放到结果集。计算hash表需要内存空间,hash join同样对于内存有比较大的消耗,如果内存空间(8i为hash_area_size,9i及以上使用PGA)不足,则会使用临时表空间,这样会降低哈希连接的效率。

数据库中表连接方式有哪些

关于“数据库中表连接方式有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

数据库中表连接方式有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

PHP中有哪些连接数据库的方式

本篇文章给大家分享的是有关PHP中有哪些连接数据库的方式,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。PHP连接数据库之PHP连接MYSQL数据库代码< ?php $mys
2023-06-17

MySQL连接数据库的方式有哪些

MySQL连接数据库的方式有以下几种:1. 使用命令行连接:在命令行窗口中使用mysql命令连接数据库,例如:mysql -h 主机名 -u 用户名 -p 密码2. 使用图形界面工具连接:使用MySQL提供的图形界面工具(如MySQL Wo
2023-09-09

php中有哪些连接myql数据库的方式

本篇文章给大家分享的是有关php中有哪些连接myql数据库的方式,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。PHP开发环境搭建工具有哪些一、phpStudy,是一个新手入门最
2023-06-14

python连接clickhouse数据库的方式有哪些

这篇文章主要介绍“python连接clickhouse数据库的方式有哪些”,在日常操作中,相信很多人在python连接clickhouse数据库的方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”pyt
2023-06-30

java连接oracle数据库的方式有哪些

Java连接Oracle数据库指南Java可通过多种方式连接Oracle数据库,包括JDBC、OJDBC、ODAC、Hibernate和JPA。JDBC是最常用的方式,提供标准化API。OJDBC是Oracle专门的JDBC驱动程序,具有增强功能。ODAC提供无缝连接和高级功能。Hibernate和JPA是ORM框架,使与数据库的交互更简单。选择连接方式取决于应用程序需求:高性能(ODAC、OJDBC)、简单性(JDBC)、ORM(Hibernate、JPA)、Oracle特定功能(OJDBC、ODAC)
java连接oracle数据库的方式有哪些
2024-04-11

java连接oracle数据库的方式有哪些

使用JDBC连接:可以通过JDBC(Java Database Connectivity)来连接Oracle数据库。首先需要下载Oracle JDBC驱动程序,然后在Java代码中使用标准的JDBC API来连接和操作数据库。使用Hiber
java连接oracle数据库的方式有哪些
2024-04-09

MySQL数据库连接方式及工具有哪些

这篇“MySQL数据库连接方式及工具有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL数据库连接方式及工具有哪些
2023-03-31

C#中有哪些连接数据库的方法

C#中有哪些连接数据库的方法,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。C#连接数据库1、用MySQL DriverCS连接MySQL数据库在安装文件夹下面找
2023-06-17

oracle表连接的方式有哪些

在Oracle数据库中,表连接的方式主要有以下几种:内连接(INNER JOIN):内连接是最常用的连接方式,它只返回两个表之间满足连接条件的行。可以使用关键字INNER JOIN 或者简化的语法(使用WHERE子句进行条件连接)来进行内连
oracle表连接的方式有哪些
2024-05-08

oracle数据库连接方式有哪几种

Oracle数据库连接方式有以下几种:1. 使用SQL*Plus连接:SQL*Plus是Oracle数据库自带的一个命令行工具,可以通过命令行输入用户名、密码、连接字符串等信息来连接数据库。2. 使用JDBC连接:JDBC(Java Dat
2023-10-12

mysql表连接的方式有哪些

MySQL表连接的方式有以下几种:1. 内连接(INNER JOIN):返回两个表中匹配的行。只有在连接条件为真的情况下,才返回行。2. 左连接(LEFT JOIN):返回左表中的所有行,以及右表中匹配的行。如果右表中没有匹配的行,则返回空
2023-08-11

C#连接数据库的方法有哪些

这篇文章主要讲解了“C#连接数据库的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#连接数据库的方法有哪些”吧!一、Oracle查询 public static DataT
2023-06-30

wpf连接数据库的方法有哪些

在WPF中连接数据库的方法有以下几种:1. 使用ADO.NET:ADO.NET是.NET Framework中用于访问数据库的一组类和API。可以使用ADO.NET中的类如SqlConnection、SqlCommand、SqlDataRe
2023-08-09

jdbc连接数据库的方法有哪些

JDBC(Java Database Connectivity)是Java语言用于连接数据库的一种标准接口。JDBC提供了一组类和接口,可以通过这些类和接口来连接和操作数据库。下面是一些常用的JDBC连接数据库的方法:1. 使用Driver
2023-09-26

数据库连接超时java处理的方式有哪些

这篇文章主要讲解了“数据库连接超时java处理的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库连接超时java处理的方式有哪些”吧!数据库连接超时java处理的方式在测试一套
2023-07-06

编程热搜

目录