国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Oracle數(shù)據(jù)庫(kù)表連接方式及常見用法

數(shù)據(jù)庫(kù) Oracle
Oracle數(shù)據(jù)庫(kù)表連接方式根據(jù)應(yīng)用場(chǎng)景的不同會(huì)有不同的方法,本文向您介紹相等連接、外連接、不等連接、自連接和哈希連接等。

一個(gè)SQL語(yǔ)句的關(guān)聯(lián)表超過兩個(gè),那么連接的順序如何呢?ORACLE首先連接其中的兩個(gè)表,產(chǎn)生一個(gè)結(jié)果集;然后將產(chǎn)生的結(jié)果集與下一個(gè)表再進(jìn)行關(guān)聯(lián);繼續(xù)這個(gè)過程,直到所有的表都連接完成;***產(chǎn)生所需的數(shù)據(jù),,本文將主要從以下幾個(gè)典型的例子來(lái)分析Oracle表的幾種不同連接方式:

1. 相等連接

通過兩個(gè)表具有相同意義的列,可以建立相等連接條件。

只有連接列上在兩個(gè)表中都出現(xiàn)且值相等的行才會(huì)出現(xiàn)在查詢結(jié)果中。

例 查詢員工信息以及對(duì)應(yīng)的員工所在的部門信息;

  1.    SELECT * FROM EMP,DEPT;   
  2.   SELECT * FROM EMP,DEPT  
  3.  
  4.   WHERE EMP.DEPTNO = DEPT.DEPTNO;  

REM 顯示工資超過2000的員工信息以及對(duì)應(yīng)的員工的部門名稱。

2. 外連接

對(duì)于外連接,Oracle中可以使用“(+)”來(lái)表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN,下面將配合實(shí)例一一介紹。除了顯示匹配相等連接條件的信息之外,還顯示無(wú)法匹配相等連接條件的某個(gè)表的信息。

外連接采用(+)來(lái)識(shí)別。

◆左條件(+) = 右條件;

代表除了顯示匹配相等連接條件的信息之外,還顯示右條件所在的表中無(wú)法匹配相等連接條件的信息。

此時(shí)也稱為"右外連接".另一種表示方法是:

SELECT ... FROM 表1 RIGHT OUTER JOIN 表2 ON 連接條件

◆左條件 = 右條件(+);

代表除了顯示匹配相等連接條件的信息之外,還顯示左條件所在的表中無(wú)法匹配相等連接條件的信息。

此時(shí)也稱為"左外連接".

SELECT ... FROM 表1 LEFT OUTER JOIN 表2 ON 連接條件

例 顯示員工信息以及所對(duì)應(yīng)的部門信息

--無(wú)法顯示沒有部門的員工信息

--無(wú)法顯示沒有員工的部門信息

--SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO;

--直接做相等連接:

SELECT * FROM EMP JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO;

REM 顯示員工信息以及所對(duì)應(yīng)的部門信息,顯示沒有員工的部門信息

--SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO(+) = DEPT.DEPTNO;

SELECT * FROM EMP RIGHT OUTER JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO;

REM 顯示員工信息以及所對(duì)應(yīng)的部門信息,顯示沒有部門的員工信息

--SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO(+);

SELECT * FROM EMP LEFT OUTER JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO;

3. 不等連接

兩個(gè)表中的相關(guān)的兩列進(jìn)行不等連接,比較符號(hào)一般為>,<,...,BETWEEN.. AND..

REM SALGRADE

--DESC SALGRADE;

--SELECT * FROM SALGRADE;

REM 顯示員工的編號(hào),姓名,工資,以及工資所對(duì)應(yīng)的級(jí)別。

SELECT EMPNO,ENAME,SAL,SALGRADE.* FROM SALGRADE,EMP

WHERE EMP.SAL BETWEEN LOSAL AND HISAL;

REM 顯示雇員的編號(hào),姓名,工資,工資級(jí)別,所在部門的名稱;

SELECT EMPNO,ENAME,SAL,GRADE,DNAME FROM EMP,DEPT,SALGRADE

WHERE EMP.DEPTNO = DEPT.DEPTNO AND EMP.SAL BETWEEN LOSAL AND HISAL;

4. 自連接

自連接是數(shù)據(jù)庫(kù)中經(jīng)常要用的連接方式,使用自連接可以將自身表的一個(gè)鏡像當(dāng)作另一個(gè)表來(lái)對(duì)待,從而能夠得到一些特殊的數(shù)據(jù)。下面介紹一下自連接的方法:

將原表復(fù)制一份作為另一個(gè)表,兩表做笛卡兒相等連接。

例 顯示雇員的編號(hào),名稱,以及該雇員的經(jīng)理名稱

SELECT WORKER.ENAME,WORKER.MGR,MANAGER.EMPNO,MANAGER.ENAME FROM EMP WORKER,EMP MANAGER

WHERE WORKER.MGR = MANAGER.EMPNO;

5.哈希連接

當(dāng)內(nèi)存能夠提供足夠的空間時(shí),哈希(HASH)連接是Oracle優(yōu)化器通常的選擇。哈希連接中,優(yōu)化器根據(jù)統(tǒng)計(jì)信息,首先選擇兩個(gè)表中的小表,在內(nèi)存中建立這張表的基于連接鍵的哈希表;優(yōu)化器再掃描表連接中的大表,將大表中的數(shù)據(jù)與哈希表進(jìn)行比較,如果有相關(guān)聯(lián)的數(shù)據(jù),則將數(shù)據(jù)添加到結(jié)果集中。

當(dāng)表連接中的小表能夠完全cache到可用內(nèi)存的時(shí)候,哈希連接的效果***。哈希連接的成本只是兩個(gè)表從硬盤讀入到內(nèi)存的成本。

但是,如果哈希表過大而不能全部cache到可用內(nèi)存時(shí),優(yōu)化器將會(huì)把哈希表分成多個(gè)分區(qū),再將分區(qū)逐一cache到內(nèi)存中。當(dāng)表的分區(qū)超過了可用內(nèi)存時(shí),分區(qū)的部分?jǐn)?shù)據(jù)就會(huì)臨時(shí)地寫到磁盤上的臨時(shí)表空間上。因此,分區(qū)的數(shù)據(jù)寫磁盤時(shí),比較大的區(qū)間(EXTENT)會(huì)提高I/O性能。ORACLE推薦的臨時(shí)表空間的區(qū)間是1MB。臨時(shí)表空間的區(qū)間大小由UNIFORM SIZE指定。

當(dāng)哈希表構(gòu)建完成后,進(jìn)行下面的處理:

1) 第二個(gè)大表進(jìn)行掃描

2) 如果大表不能完全cache到可用內(nèi)存的時(shí)候,大表同樣會(huì)分成很多分區(qū)

3) 大表的***個(gè)分區(qū)cache到內(nèi)存

4) 對(duì)大表***個(gè)分區(qū)的數(shù)據(jù)進(jìn)行掃描,并與哈希表進(jìn)行比較,如果有匹配的紀(jì)錄,添加到結(jié)果集里面

5) 與***個(gè)分區(qū)一樣,其它的分區(qū)也類似處理。

6) 所有的分區(qū)處理完后,ORACLE對(duì)產(chǎn)生的結(jié)果集進(jìn)行歸并,匯總,產(chǎn)生最終的結(jié)果。

當(dāng)哈希表過大或可用內(nèi)存有限,哈希表不能完全CACHE到內(nèi)存。隨著滿足連接條件的結(jié)果集的增加,可用內(nèi)存會(huì)隨之下降,這時(shí)已經(jīng)CACHE到內(nèi)存的數(shù)據(jù)可能會(huì)重新寫回到硬盤去。如果出現(xiàn)這種情況,系統(tǒng)的性能就會(huì)下降。

當(dāng)連接的兩個(gè)表是用等值連接并且表的數(shù)據(jù)量比較大時(shí),優(yōu)化器才可能采用哈希連接。哈希連接是基于CBO的。只有在數(shù)據(jù)庫(kù)初始化參數(shù)HASH_JOIN_ENABLED設(shè)為True,并且為參數(shù)PGA_AGGREGATE_TARGET設(shè)置了一個(gè)足夠大的值的時(shí)候,Oracle才會(huì)使用哈希邊連接。HASH_AREA_SIZE是向下兼容的參數(shù),但在Oracle9i之前的版本中應(yīng)當(dāng)使用HASH_AREA_SIZE。當(dāng)使用ORDERED提示時(shí),FROM子句中的***張表將用于建立哈希表。

  1.    select a.user_name,b.dev_no   
  2.   from user_info a, dev_info b  
  3.  
  4.   where a.user_id = b.user_id;  
  5.  
  6.   Plan  
  7.  
  8.   ----------------------------------------------------------  
  9.  
  10.   0 SELECT STATEMENT Optimizer=CHOOSE (Cost=5 Card=82 Bytes=3936  
  11.  
  12.   )  
  13.  
  14.   1 0 HASH JOIN (Cost=5 Card=82 Bytes=3936)  
  15.  
  16.   2 1 TABLE ACCESS (FULLOF 'USER_INFO' (Cost=2 Card=82 Bytes  
  17.  
  18.   =1968)  
  19.  
  20.   3 1 TABLE ACCESS (FULLOF 'DEV_INFO' (Cost=2 Card=82 Bytes=  
  21.  
  22.   1968)  

可以通過在SQL語(yǔ)句中添加HINTS,強(qiáng)制ORACLE優(yōu)化器產(chǎn)生哈希連接的執(zhí)行計(jì)劃。

  1. select /*+ use_hash(a b)*/ a.user_name,b.dev_no   
  2.  
  3. from user_info a, dev_info b  
  4.  
  5. where a.user_id = b.user_id; 

當(dāng)缺少有用的索引時(shí),哈希連接比嵌套循環(huán)連接更加有效。哈希連接也可能比嵌套循環(huán)連接更快,因?yàn)樘幚韮?nèi)存中的哈希表比檢索B_樹索引更加迅速。

 

【編輯推薦】

  1. MySQL左連接、右連接和內(nèi)連接詳解
  2. 數(shù)據(jù)庫(kù)連接性能深度探索
  3. ADO.NET數(shù)據(jù)庫(kù)連接、操作SQL舉例a>
  4. 如何處理幾種常見的數(shù)據(jù)庫(kù)不當(dāng)連接
  5. 多數(shù)據(jù)庫(kù)環(huán)境的連接策略
責(zé)任編輯:佚名 來(lái)源: IT專家網(wǎng)
相關(guān)推薦

2010-03-31 16:28:11

Oracle數(shù)據(jù)庫(kù)

2010-04-06 11:02:30

Oracle 數(shù)據(jù)庫(kù)

2010-10-26 16:07:45

連接oracle數(shù)據(jù)庫(kù)

2011-03-25 09:05:02

Oracle數(shù)據(jù)庫(kù)共享連接專用連接

2010-04-07 18:26:43

Oracle數(shù)據(jù)庫(kù)

2010-04-08 18:45:35

Oracle數(shù)據(jù)庫(kù)

2010-10-26 15:54:02

連接oracle數(shù)據(jù)庫(kù)

2010-04-08 18:54:32

Oracle數(shù)據(jù)庫(kù)

2010-04-06 10:52:06

Oracle數(shù)據(jù)庫(kù)

2018-01-04 10:43:43

OracleMysqlJava

2019-12-03 09:00:59

Oracle數(shù)據(jù)庫(kù)等待事件

2011-07-26 16:05:19

Oracle數(shù)據(jù)庫(kù)服務(wù)器

2010-10-26 14:06:43

oracle連接遠(yuǎn)程數(shù)

2010-09-28 09:08:40

Oracle

2011-03-21 12:51:16

Oracle數(shù)據(jù)庫(kù)表連接

2010-04-28 16:23:18

Oracle數(shù)據(jù)庫(kù)

2011-05-25 09:45:40

Oracle數(shù)據(jù)庫(kù)

2010-10-26 16:15:33

連接Oracle數(shù)據(jù)庫(kù)

2011-05-26 14:49:50

ORACLE數(shù)據(jù)庫(kù)

2010-10-26 15:21:11

連接Oracle數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

一区二区三区电影| 国产精品久久久久久久浪潮网站 | 亚洲摸下面视频| 成人免费在线视频播放| 国产精品久久占久久| 中文字幕亚洲欧美日韩在线不卡 | 美女网站免费观看视频| 日韩天天综合| 国产a∨精品一区二区三区不卡| 成人在线高清免费| 自拍av一区二区三区| 97在线免费视频观看| 亚洲调教视频在线观看| 国产成人精品av| 久久婷婷国产| 97久久国产精品| 欧美2区3区4区| 日韩一区av在线| 亚洲成人短视频| 亚洲国产私拍精品国模在线观看| 诱受h嗯啊巨肉高潮| 国产亚洲成av人在线观看导航| 亚洲在线视频一区二区| 美国毛片一区二区| 久久久久久久久久久99| 亚洲国产婷婷| 最好看的2019的中文字幕视频| 99re在线视频免费观看| 天堂av最新在线| 国产欧美日韩| 欧美日本国产视频| 欧美极品少妇无套实战| 快播电影网址老女人久久| 国语对白精品一区二区| 91福利视频在线| 韩国一区二区三区美女美女秀 | 午夜在线小视频| 爱高潮www亚洲精品| 欧美极品少妇xxxxⅹ高跟鞋| 久久影视电视剧免费网站清宫辞电视| 精品不卡在线| av手机免费观看| 亚洲精品影片| 国产日韩高清在线| 国产免费一区二区三区| 日韩一级精品| 日本在线xxx| 亚洲图片有声小说| 成人在线视频亚洲| 亚洲视频在线看| 亚洲黄色录像| 久久精品日韩精品| 91女人视频在线观看| 天堂а√在线8种子蜜桃视频| 日韩欧美国产精品一区| 香蕉大人久久国产成人av| 久久久水蜜桃| 成人亚洲综合| 欧美性猛交xxxx免费看漫画 | 白白操在线视频| 99青草视频在线播放视| 欧美极品一区二区三区| 91麻豆精品91久久久久同性| 欧美成人性生活视频| 亚洲综合小说图片| 精品国产一区二区三区麻豆小说| 激情都市亚洲| 狠狠躁夜夜躁人人爽天天天天97| 欧美一区三区三区高中清蜜桃| 思思99re6国产在线播放| 精品久久久久中文字幕小说| 欧美小视频在线观看| 草b视频在线观看| 亚洲欧洲二区| 欧美在线视频免费播放| 国产成人8x视频一区二区| julia中文字幕久久亚洲蜜臀| 久久天天躁狠狠躁老女人| 日韩av一二三| 黄色精品免费看| 久久五月天婷婷| 欧美日韩国产美女| 在线亚洲伦理| 新版中文在线官网| 欧美xxxx黑人又粗又长密月| 在线观看www91| 欧美激情1区| 日韩在线观看www| 亚洲国产精品毛片| 亚洲精品视频在线观看视频| 久久66热re国产| 高清不卡av| 麻豆一区二区三区视频| 久久精品男人天堂| 日韩欧美高清在线视频| 国产午夜精品一区二区三区欧美 | 精品伊人久久| 一级毛片在线视频| 久久精品亚洲一区二区| 草草影院在线| 天天综合网日韩| 国产精品日韩一区二区| 国内成人自拍视频| 久久久久天天天天| 欧美日韩精品一本二本三本| 欧美精品一区二区高清在线观看| 一区二区三区四区在线免费视频| 国产免费一区视频观看免费| 精品国产乱码久久久久久婷婷| 99精品99| 日本99精品| 国产资源在线看| 中文字幕一区二区三区在线乱码| 欧美日韩福利电影| 欧美日韩一区三区四区| 波多野结衣亚洲一区| 一区二区三区国产盗摄 | 亚洲成人av资源网| 一区二区三区**美女毛片| 日本aⅴ免费视频一区二区三区 | 一区二区在线观看不卡| 日本在线播放一区二区三区| 精品福利久久久| 伊人久久大香伊蕉在人线观看热v 伊人久久大香线蕉综合影院首页 伊人久久大香 | 香蕉视频在线免费看| 日韩av综合在线观看| 午夜精品亚洲一区二区三区嫩草| 欧洲日本亚洲国产区| 亚洲精品av在线| 欧美人体做爰大胆视频| 亚洲成年人影院| 国产精品久久久久久久久动漫| 黄网站免费久久| 中文日韩欧美| 亚洲一级特黄| 日韩不卡一区| 天天精品视频| 精品中文字幕一区二区三区| 亚欧精品在线| 国产三级精品视频| 五月天久久久| 视频一区视频二区欧美| 超碰资源在线| 免费av不卡在线观看| 亚洲裸体视频| 最新中文字幕在线| 天海翼一区二区三区四区在线观看 | 国产精品无码av在线播放 | 国产成人午夜精品5599| 国内成人精品2018免费看| 豆国产96在线|亚洲| 国产精品一级| 日韩黄色在线观看| 国产精品正在播放| 国产午夜精品理论片a级大结局| 国产精品麻豆久久久| 亚洲国产综合色| 欧美日韩一区二区三区免费看| 91精品国产综合久久香蕉的特点 | 中文字幕在线视频久| 精品视频免费观看| 日韩av一区二区在线观看| 一区二区不卡在线视频 午夜欧美不卡在| 北条麻妃一区二区三区| 国产精品初高中害羞小美女文| 国产精品视频一二三区| 亚洲一区视频在线| 日韩一区二区三区在线视频| 亚洲欧美日韩中文在线| 国内精品一区二区三区| 国产精品天天狠天天看| 欧美亚洲另类久久综合| 国产成人亚洲精品无码h在线| 天天插天天狠天天透| 成人免费高清| 精品少妇3p| 久久精品人人| 国产色爱av资源综合区| 性感美女极品91精品| 亚洲欧美日韩一区二区三区在线| 精品日产卡一卡二卡麻豆| 另类视频在线观看| 日韩欧美激情一区二区| 人成在线视频| 亚洲精品一级二级| 亚洲国产婷婷| 黑人极品videos精品欧美裸| 欧美日韩在线第一页| 日本伊人色综合网| 日本欧美韩国| 色视频网站在线| 国产精品久久久久久久免费大片| 亚洲精品一区二区三区蜜桃下载 | 欧美猛男同性videos| 欧美xxxhd| av资源在线观看免费高清| 男人的天堂网av| 日本综合在线| 911精品美国片911久久久| 久久综合五月天婷婷伊人|