様々ãªé€£çµãƒ†ãƒ¼ãƒ–ルãŒä½œæˆã§ãã‚‹ãŒã€è‰¯ãä‹Éã†ã‚‚ã®ã¯ãƒ“ュãƒ?create view) ã? ã—ã¦ãŠãã¨åŠ¹çŽ‡ãŒè‰¯ã„ã€?font color="#000000">å„ç§å„æ ·çš„è¿žæŽ¥è¡¨ä¸ï¼Œæœ‰çš„对视图也起作用ã€?br /> ¾iåˆã¯ã€ãƒ†ãƒ¹{ƒ–ルã¨ãƒ†ãƒ¼ãƒ–ルã€ãƒ“ューã¨ãƒ“ューã€ãƒ†ãƒ¹{ƒ– ルã¨ãƒ“ュヹ{ªã©è¤‡é›‘ã«ã§ãã‚‹ã€?テーブル連çµ)˜qžæŽ¥å¯ä»¥åœ¨æ•°æ®è¡¨å’Œæ•°æ®è¡¨ä¹‹é—´åQŒè§†å›‘Ö’Œè§†å›¾ä¹‹é—´åQŒæ•°æ®è¡¨å’Œè§†å›¾ä¹‹é—´å¤æ‚çš„˜q›è¡Œã€?/font>
â– å˜ç´”çµå?½Ž€å•连æŽ?/span> ãƒÈ¾å®Ÿçš„ã«å˜ç´”çµåˆã‚’ä½Ñ†Š™Ÿä¼šã¯ãªã„ã ã‚ã†ã€?span style="color: #ff0000">实际上简å•ç»“åˆæ²¡æœ‰ä»€ä¹ˆä‹É用的æœÞZ¼šã€?br /> ‹Æ¡ã®ä¾‹ã§ã¯ã€å—注m ã®å„レコヹ{ƒ‰ã?å“番m ã®å…¨ãƒ¬ã‚³ãƒ¹{ƒ‰ãŒçµåˆã•れるã€?br /> 在下é¢çš„例åä¸ï¼Œåœ¨å—注m的儿U记录里åQŒå“番m的所有记录都被结åˆäº†ã€?br /> å—æ³¨m ã®ãƒ¬ã‚Ÿëƒ¼ãƒ‰æ•° x å“番m ã®ãƒ¬ã‚Ÿëƒ¼ãƒ‰æ•°ã®çµæžœãŒå•ã„åˆã‚ã•れるã€?br /> å—æ³¨m的记录数*å“番m的记录数的结果被查询出æ¥ã€?/span> select * from sak.å—æ³¨m, sak.å“番m; â– ç‰ä¾¡çµå?½{‰äh˜qžæŽ¥ ãƒÈ‰ä¾¡çµåˆã¯ã€ç‰¹å®šã®ã‚ーã§è¡¨ã‚’çµåˆã—ã¾ã™ã€?span style="color: #ff0000">½{‰äh˜qžæŽ¥æ˜¯ç”¨ç‰¹å®šçš„é”®æ¥è¿›è¡Œè¡¨çš„结åˆçš„ã€?/span>
æ¡äšgã®ã©ã¡ã‚‰ã‹ã®ãƒ‡ãƒ¼ã‚ÑŒå˜åœ¨ã—ãªã„å ´åˆã€çµæžœã‚»ãƒƒãƒˆã«ã¯å«ã¾ã‚Œã¾ã›ã‚“ã€?br /> 如果有æ¡ä»¶åœ¨æ•°æ®è¡¨é‡Œä¸å˜åœ¨ï¼Œåœ¨ç»“果集里就没有˜q™ä¸€æ¡è®°å½•ã€?/span>
ç‘Ö®Ÿçš„ã«ã¯å¤–部çµåˆãŒä¸€ç•ªä‹Éã„ã‚„ã™ã„ã¨æ€ã„ã¾ã™ã€?span style="color: red">在实际上åQŒå¤–éƒ¨ç»“åˆæ˜¯æœ€å®ÒŽ˜“使用的ã€?br /> select å—æ³¨ç•ªå·, å—æ³¨m.å“番 å“番, å“番m.å…¥åínæ•?å…¥åínæ•? from sak.å—æ³¨m, sak.å“番m where å—æ³¨m.å“番 = å“番m.å“番 ; ãƒÕdˆ—ã®åˆ¥å定¾Ÿ©ã¯ã€as を指定ã—ã¦ã‚‚よã„ã€?span style="color: #ff0000">åˆ—çš„åˆ«åæŒ‡å®šåQŒä¹Ÿå¯ä»¥ç”¨asæ¥å®žçްã€?/span>
¾iåˆãƒ†ãƒ¼ãƒ–ルã«åŒã˜é …ç›®åãŒå˜åœ¨ã™ã‚‹å ´åˆã¯ã€ã©ã¡ã‚‰ã®ãƒ†ãƒ¹{ƒ–ãƒ«é …ç›®ã‹æŒ‡å®šã™ã‚‹ãŸã‚ã€ãƒ†ãƒ¹{ƒ–ルåã§ä¿®é£¾ã™ã‚‹ã€?å—æ³¨m.å“番)
在连接表ä¸å¦‚果有相åŒçš„项目åå˜åœ¨åQŒäؓ了让æ¯ä¸€ä¸ªé¡¹ç›®éƒ½è¢«æŒ‡å®šï¼Œž®Þq”¨™å¹ç›®åæ¥ä¿®é¥°ã€?br /> select å—æ³¨ç•ªå·, å—æ³¨m.å“番 as å“番, å“番m.å…¥åínæ•?as å…¥åínæ•? from sak.å—æ³¨m, sak.å“番m where å—æ³¨m.å“番 = å“番m.å“番; ・inner join ã‚’ä‹É用ã—ã¦ã€ç‰ä¾¡çµåˆã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€?インナージョイン)
使用inner joinåQŒä¹Ÿå¯ä»¥˜q›è¡Œ½{‰äh˜qžæŽ¥ã€?br /> select å—æ³¨ç•ªå·, å—æ³¨m.å“番 as å“番, å“番m.å…¥åínæ•?as å…¥åínæ•? from sak.å—æ³¨m inner join sak.å“番m on å—æ³¨m.å“番 = å“番m.å“番; ãƒ? ã¤ä»¥ä¸Šã®¾iåˆã‚?inner join ã§æŒ‡å®šã™ã‚‹ã«ã¯ã€æ¬¡ã®ã‚ˆã†ã«ã™ã‚‹ã€?br /> å¦‚æžœæœ‰ä¸‰ä¸ªä»¥ä¸Šè¦æŒ‡å®šinner join æ¥è¿›è¡Œè¿žæŽ¥çš„æ—¶å€™ï¼Œå¯ä»¥åƒä¸‹é¢è¿™æ ·åšã€?br /> select * from (sak.å—æ³¨m inner join sak.å“番m on å—æ³¨m.å“番 = å“番m.å“番) inner join sak.å¾—æ„å…ˆm on å—æ³¨m.å¾—æ„å…ˆCD = å¾—æ„å…ˆm.å¾—æ„å…ˆCD; â– éž½{‰ä±M¾iåˆ éžç‰ä»¯‚¿žæŽ?/span> ・éžå¸¸ã«æ™‚é–“ã®ã‹ã‹ã‚‹¾iåˆã§ã™ãŒã€å¿…è¦ãªå ´é¢ãŒã‚ã‚‹ã‹ã‚‚ã—れãªã„ã€?span style="color: red">虽然很花旉™—´åQŒä½†æœ‰æ—¶å€™ä¹Ÿè¦è¿›è¡Œä¸‹é¢çš„‹‚€ç´¢ã€?br /> ãªã«ãŒã—ã‹ã®½‹„囲æ¡äšgã§çµåˆã™ã‚‹å ´åˆã«ä½Ñ„ã¾ã™ã€?span style="color: red">和检索æ¡ä»¶çš„一部分˜q›è¡Œ˜qžæŽ¥ã€?
select å—æ³¨ç•ªå·, å—æ³¨m.å“番 å“番, å“番m.å…¥åínæ•?å…¥åínæ•? from sak.å—æ³¨m, sak.å“番m where å—æ³¨m.Š™Ÿç¨® like substr(å“番m.Š™Ÿç¨®, 1, 2);
■外部çµå?外çµåˆã€è¡Œ¾iåˆã€è¡Œé€£çµã€ãƒ†ãƒ¹{ƒ–ルçµåˆã€å¤–部接å?br /> 外部˜qžæŽ¥ 外连接,行连接,表连接,外部˜qžæŽ¥
ãƒÕd¤–部çµåˆã¯ã€ä¸€ç•ªã‚ˆãä‹É用ã—ã¾ã™ã€?span style="color: red">外部˜qžæŽ¥æ˜¯æœ€¾l常使用的ã€?br /> 一æ–V®æ¡äšgã«å¯¾ã™ã‚‹ãƒ‡ãƒ¼ã‚ÑŒå˜åœ¨ã—ãªã‹ã£ãŸå ´åˆã§ã‚‚片æ–V®ãƒ‡ãƒ¼ã‚Ñ‚’¾iæžœã‚? ットã«å«ã‚る指定ãŒã§ãã¾ã™ã€?br /> 对于一方的æ¡äšgå³ä‹Éä¸å˜åœ¨ï¼Œä¹Ÿå¯ä»¥ä‹É¾l“果集包å«ä¸€è¾¹çš„æ•°æ®ã€?br /> ‹Æ¡ã®ä¾‹ã§ã¯ã€å“番m ã«ãªã„å“番ã®å—注m レコヹ{ƒ‰ã‚‚çµæžœã«å«ã¾ã‚Œã¾ã™ã€?br /> 在下é¢çš„例åä¸ï¼Œåœ¨å“番m䏿²¡æœ‰çš„å“ç•ªå—æ³¨m记录的结果也包å«äº†è¿›æ¥ã€?br /> ã“ã®å ´åˆã€å…¥åº«æ•°ãªã©ã?å“番m é …ç›®ã«ã¯ NULL ãŒã‚»ãƒƒãƒˆã•れã¦å•ã„åˆã‚㕠れã¾ã™ã€‚Oracle ã§ã¯ã€left joinã€right join ã‚?(+) ã§æŒ‡å®šã§ãã¾ã™ã€?br /> ˜q™æ—¶å€™ï¼Œå…¥åº“æ•°ç‰çš„å“番m™å¹ç›®é‡Œè¢«è®‘Ö®šäº†NULL倹{€‚在oracle里,left join,right join å¯ä»¥ç”?+)æ¥æŒ‡å®šã€?br /> (å·¦çµåˆã€å³¾iåˆã€è¤‡æ•°ãƒ†ãƒ¹{ƒ–ルå•ã„åˆã‚ã›ã€è¤‡æ•°ãƒ†ãƒ¹{ƒ–ルå‚ç…? (複数å•ã„åˆã‚ã›ã€è¤‡åˆãƒ†ãƒ¹{ƒ–ルå‚ç…§ã€ãƒ¬ãƒ•トジョインã€ãƒ©ã‚¤ãƒˆã‚¸ãƒ§ã‚¤ãƒ³)
(左连接,匙¿žæŽ¥ï¼Œå¤šä¸ªè¡¨æŸ¥è¯¢ï¼Œå¤šä¸ªè¡¨å‚照,左连接,匙¿žæŽ?
select å—æ³¨ç•ªå·, å—æ³¨m.å“番 å“番, å“番m.å…¥åínæ•?å…¥åínæ•? from sak.å—æ³¨m, sak.å“番m where å—æ³¨m.å“番 = å“番m.å“番 (+); select å—æ³¨ç•ªå·, å—æ³¨m.å“番 å“番, å“番m.å…¥åínæ•?å…¥åínæ•? from sak.å—æ³¨m left join sak.å“番m on å—æ³¨m.å“番 = å“番m.å“番; ・逆ã«å—注m ã«ãªã„å“番ã®å“番m レコヹ{ƒ‰ã‚’çµæžœã«å«ã¾ã›ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€? ç‘Ö®Ÿçš„ã«ã¯ã€ã“ã†ã„ã†çµåˆã«æ„味ã¯ã‚りã¾ã›ã‚“ãŒã€é€†ã®å’Œã‚‚ã§ãã‚‹ã¨a€ã†ã“ ã¨ã§ã™ã€?br /> ãƒÈ›¸åä¸åœ¨å—注m里的å“番m记录也å¯ä»¥åœ¨¾l“果里包å«ã€‚在实际ä¸ï¼Œè™½ç„¶æ²¡æœ‰˜q™ä¹ˆç”¨çš„åQŒä½†æ˜?+)也å¯ä»¥æ”¾åœ?之å‰ã€?br /> select å—æ³¨ç•ªå·, å—æ³¨m.å“番 å“番, å“番m.å…¥åínæ•?å…¥åínæ•? from sak.å—æ³¨m, sak.å“番m where å—æ³¨m.å“番 (+) = å“番m.å“番; select å—æ³¨ç•ªå·, å—æ³¨m.å“番 å“番, å“番m.å…¥åínæ•?å…¥åínæ•? from sak.å—æ³¨m right join sak.å“番m on å—æ³¨m.å“番 = å“番m.å“番; ãƒÖM¸‰ã¤ä»¥ä¸Šã®è¡¨ã‚’¾iåˆã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€?3 テーブル¾iåˆ)
ãƒÖM¹Ÿå¯ä»¥˜q›è¡Œä¸‰ä¸ªè¡¨ä»¥ä¸Šçš„表连接。(三表˜qžæŽ¥åQ?/span>
‹Æ¡ã®ä¾‹ã§ã¯ã€å“番ã«å¯¾ã™ã‚‹å“番m.å…¥åínæ•°ã€å¾—æ„å…ˆCD ã«å¯¾ã™ã‚‹å¾—æ„å…ˆm.å¾—æ„ å…ˆåã‚’çµåˆã—ã¦ã„ã¾ã™ã€?left join ã‚’ä‹É用ã—ã¦ã‚‚良ã„ã€?
在下é¢çš„例åä¸ï¼Œå¯¹äºŽå“番的å“番m.入库敎ͼŒå¯¹äºŽå¾—æ„å…ˆCD的得æ„å…ˆm.å¾—æ„å…ˆåæ¥è¿›è¡Œè¿žæŽ¥ã€‚ï¼ˆä¹Ÿå¯ä»¥ä‹É用左˜qžæŽ¥åQ?br /> select å—æ³¨ç•ªå·, å—æ³¨m.å“番 å“番, å“番m.å…¥åínæ•? å…¥åínæ•? å—æ³¨m.å¾—æ„å…ˆCD å¾—æ„å…ˆCD, å¾—æ„å…ˆm.å¾—æ„å…ˆå å¾—æ„å…? from sak.å—æ³¨m, sak.å“番m, sak.å¾—æ„å…ˆm where å—æ³¨m.å“番 = å“番m.å“番 (+) and å—æ³¨m.å¾—æ„å…ˆCD = å¾—æ„å…ˆm.å¾—æ„å…ˆCD (+); select å—æ³¨ç•ªå·, å—æ³¨m.å“番 å“番, å“番m.å…¥åínæ•? å…¥åínæ•? å—æ³¨m.å¾—æ„å…ˆCD å¾—æ„å…ˆCD, å¾—æ„å…ˆm.å¾—æ„å…ˆå å¾—æ„å…? from (sak.å—æ³¨m left join sak.å“番m on å—æ³¨m.å“番 = å“番m.å“番) left join sak.å¾—æ„å…ˆm on å—æ³¨m.å¾—æ„å…ˆCD = å¾—æ„å…ˆm.å¾—æ„å…ˆCD; ・複数ã®è¡¨ã‚’¾iåˆã™ã‚‹ã¨ä¿®é£¾ãŒé›£è§£ã«ãªã‚ŠãŒã¡ãªã®ã§ã€ãƒ†ãƒ¹{ƒ–ル別åã‚’ä½Ñ†ã? 良ã„ã§ã™ã€?br /> 如果多个表进行连接,修饰会å˜å¾—å¾ˆå¤æ‚åQŒä¹Ÿå¯ä»¥ä½¿ç”¨è¡¨åˆ«åã€?br /> select å—æ³¨ç•ªå·, a.å“番 å“番, b.å…¥åínæ•? å…¥åínæ•? a.å¾—æ„å…ˆCD å¾—æ„å…ˆCD, c.å¾—æ„å…ˆå å¾—æ„å…? from sak.å—æ³¨m a, sak.å“番m b, sak.å¾—æ„å…ˆm c where a.å“番 = b.å“番 (+) and a.å¾—æ„å…ˆCD = c.å¾—æ„å…ˆCD (+); ** 外部¾iåˆã‚’明½Cºã™ã‚‹ãŸã‚ã« left join ã‚?left outer joinã€right join ã‚?right outer join ã¨æ›¸ãã“ã¨ã‚‚ã§ãã‚‹ã€?br /> ** ä¸ÞZº†æ˜Žç¡®å¤–部˜qžæŽ¥åQŒä¹Ÿå¯ä»¥æŠŠleft join å†™æˆ left outer join, right join写æˆright outer joinã€?br /> (アウã‚у¼ã‚¸ãƒ§ã‚¤ãƒ³ã€ãƒ¬ãƒ•トアウã‚у¼ã‚¸ãƒ§ã‚¤ãƒ³ã€ãƒ©ã‚¤ãƒˆã‚¢ã‚¦ã‚у¼ã‚¸ãƒ§ã‚¤ãƒ³)
åQˆouter join, left outer join, right outer joinåQ?br /> â– å†å¸°çµå?内部¾iåˆ) 回归˜qžæŽ¥åQˆå†…部结åˆï¼‰ ãƒÕd†å¸°çµåˆã¯ã€åŒã˜ãƒ†ãƒ¹{ƒ–ルをテーブル別åã‚’ä‹É用ã—ã¦çµåˆã—ã¾ã™ã€?br /> ãƒÕd›žå½’连接是相åŒçš„表æ¥ç”¨åˆ«åæ¥è¿›è¡Œè¿žæŽ¥çš„ã€?br /> ‹Æ¡ã®ä¾‹ã§ã¯ã€å¾—æ„å…ˆm ã«è¦ªå¾—æ„å…ˆCD ãŒã‚ã‚‹ã¨ã—ã¦ã€ãã®å¾—æ„å…ˆåを自分è‡? íw«ã¨¾iåˆã—ã¦ã„ã¾ã™ã€?自己¾iåˆ)
在下é¢çš„例åä¸ï¼Œä»¥å¾—æ„å…ˆä½œäØ“çˆ¶å¾—æ„å…ˆåQŒç„¶åŽç”¨˜q™ä¸ªåå—æ¥è¿›è¡Œè‡ªíw«è¿žæŽ¥ã€?br /> select a.å¾—æ„å…ˆCD å¾—æ„å…ˆCD, a.å¾—æ„å…ˆå å¾—æ„å…? a.親得æ„å…ˆCD 親得æ„å…ˆCD, b.å¾—æ„å…ˆå å¾—æ„å…? from sak.å¾—æ„å…ˆm a, sak.å¾—æ„å…ˆm b where a.å¾—æ„å…ˆCD = b.親得æ„å…ˆCD (+);
 å˜ä½“テスト迄ã§ã™ã®ã§ã€OSãªã©ã¯å޳坆ã«åˆã‚ã›ã‚‹å¿…è¦ã?br />  ã‚りã¾ã›ã‚“ã®ã§ã€ãã®è¸‚りã¯å‚考ã«ã—ã¦ä¸‹ã•ã„ã€?/p>
--------------------------------------------------------------
 åQ¡ï¼°ã‚ücƒ¼ãƒï¼šWebOTX Application Server Web Edition V8.1
       Apache HTTP Server 2.0.x
       Tomcat 6.0.xã€J2SE 5.0.x
       Windows Server 2008 Standard (EMT64)
 フレヹ{ƒ ワーク:R21開発基盤(Java/Strus)
 帳票åQšPDFæ“作åQˆCoReports for java)
    EXCELæ“作(Microsoft Office 2007)
 åQ¤ïð‡ã‚ücƒ¼ãƒ?Oracle 11g/R1 (11.0.x)
      HP-UX 11iv3
--------------------------------------------------------------