データベース 外結合
ホーム > 発行済み
読者の情報処理試験合格(シスアドから高度まで)を目指しています。
作者は、アプリケーションの開発を行なっているエンジニアです。
情報処理試験の知識(理論)を、日々の業務(実践)にどう生かしていくか、その辺りの事を意識
して、発行していきます。

データベース 外結合とは


                                           
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        ★★ 『情報処理試験のお勉強(千里の道も一歩から)』 ★★
                           2004/06/20 第24号
        知識の習得は、本当に楽しいものです。
        それぞれの目標に向かって、一歩ずつ踏出して行きましょう。
     
     ----------------------------------------------------------------------
        まぐまぐ:780 めろんぱん:92 メル天:64 カプライト:73
        E-Magazine:70 Macky!:26 melma:17      総発部数:1122
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
     
      秋期にネットワークに関する出題がある科目を受験しようと考えている方。
     
      テクニカルエンジニア(ネットワーク)、情報セキュアド、ソフ開、基本情報、
      上級・初級シスアド、アプリケーションエンジニアを受験しようかと考えている
      方は、まちがいなく、申込みしておいた方が良いですよ。
      
      試験範囲の技術習得の手助けになります。
      
      ・「5分でわかる最新キーワード解説」
      ・「ネットワーク早わかり講座」
      ・「運用コストを減らすワザ50」
      ・「すご腕アナリスト市場予測」
     
      今すぐ、無料登録をして、試験対策の準備が出来る環境を、作っておくことを
      お薦めしています。
     
       実力の習得は、日頃の努力です。 貪欲に知識の習得をしましょう。
       
       ▽ http://jstudy.fc2web.com/keyman2.html
     
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


       『テクニカルエンジニア(データベース) 午前平成16年問32』
     
     
      "商品"表と"売上明細"表に対して,次の SQL 文を実行した結果の表として,
     正しいものはどれか。 ここで,結果の表中の"-"は,値が空値(NULL)であるこ
     とを示す。
     
       SELECT X.商品番号, 商品名, 数量
           FROM 商品 X LEFT OUTER JOIN 売上明細 Y
              ON X.商品番号 = Y.商品番号
     
     
       商品
     ┌────┬───┐
     │商品番号│商品名│
     ├────┼───┤
     │  S101  │  A   │
     ├────┼───┤
     │  S102  │  B   │
     ├────┼───┤
     │  S103  │  C   │
     ├────┼───┤
     │  S104  │  D   │
     └────┴───┘
     
       売上明細
     ┌────┬─────┬────┬──┬────┐
     │売上番号│  売上日  │商品番号│数量│売上金額│
     ├────┼─────┼────┼──┼────┤
     │  U001  │2004/02/10│  S101  │  5 │  7,500 │
     ├────┼─────┼────┼──┼────┤
     │  U002  │2004/02/26│  S104  │  2 │  4,000 │
     ├────┼─────┼────┼──┼────┤
     │  U002  │2004/02/26│  S101  │ 10 │ 15,000 │
     ├────┼─────┼────┼──┼────┤
     │  U003  │2004/03/05│  S103  │  5 │  5,000 │
     ├────┼─────┼────┼──┼────┤
     │  U003  │2004/03/05│  S104  │  8 │ 16,000 │
     └────┴─────┴────┴──┴────┘
     
     
      ア
      ┌────┬───┬──┐
      │商品番号│商品名│数量│
      ├────┼───┼──┤
      │  S101  │  A   │  5 │
      ├────┼───┼──┤
      │  S101  │  A   │ 10 │
      ├────┼───┼──┤
      │  S102  │  B   │  - │
      ├────┼───┼──┤
      │  S103  │  C   │  5 │
      ├────┼───┼──┤
      │  S104  │  D   │  2 │
      ├────┼───┼──┤
      │  S104  │  D   │  8 │
      └────┴───┴──┘
     
      イ
      ┌────┬───┬──┐
      │商品番号│商品名│数量│
      ├────┼───┼──┤
      │  S101  │  A   │  5 │
      ├────┼───┼──┤
      │  S101  │  A   │ 10 │
      ├────┼───┼──┤
      │  S103  │  C   │  5 │
      ├────┼───┼──┤
      │  S104  │  D   │  2 │
      ├────┼───┼──┤
      │  S104  │  D   │  8 │
      └────┴───┴──┘
     
      ウ
      ┌────┬───┬──┐
      │商品番号│商品名│数量│
      ├────┼───┼──┤
      │  S101  │  A   │ 15 │
      ├────┼───┼──┤
      │  S102  │  B   │  - │
      ├────┼───┼──┤
      │  S103  │  C   │  5 │
      ├────┼───┼──┤
      │  S104  │  D   │ 10 │
      └────┴───┴──┘
     
      エ
      ┌────┬───┬──┐
      │商品番号│商品名│数量│
      ├────┼───┼──┤
      │  S101  │  A   │ 15 │
      ├────┼───┼──┤
      │  S103  │  C   │  5 │
      ├────┼───┼──┤
      │  S104  │  D   │ 10 │
      └────┴───┴──┘
     
     
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
      メールマガジンがずれて見える方は、
       http://www.mag2.com/faq/mua.htm を参考にしてください。
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━



合格を勝取るにはコレ!! 絶対に読んでおくべきです。

▽ http://www.mag2.com/m/0000120201.htm



     『解説』
     
      今回は、SQLの外結合についての問題です。
      仕事でSQLを使用している方は、戸惑うかもしれません。
      Oracleやサイベース、SQLサーバとは、記述の方法が異なっています。
     
      情報処理試験で出題されるSQLは、SQL99という言語仕様に基づいて
      出題されています。
      なので、出題に沿った構文をしっかりと覚えておく必要があります。
      試験のためと、割りきってしっかり覚えておきましょう。
      ちなみに上記のベンダー同士でも、外結合の書き方は異なっています。
     
     
      また今回の出題は、テクニカルエンジニア(データ―ベース)ですが、ソフ開、
      基本情報にも、いづれ出題されるでしょう。
      出題された時に、慌てない様にしっかりマスタしておきましょう。
     
     
     
     >  SELECT X.商品番号, 商品名, 数量
     >      FROM 商品 X LEFT OUTER JOIN 売上明細 Y
     >         ON X.商品番号 = Y.商品番号
     
      これが、左外結合のSQL文です。
      LEFT OUTER JOIN  で左外結合、
      RIGHT OUTER JOIN で右外結合 です。
     
     
      また、通常、SQL文は結合の条件を、WHERE句に記述します。
      しかし、外結合ではFROM句内のONで、結合する列を記述していますね。
     
       [通常の結合]
        SELECT X.商品番号, 商品名, 数量
           FROM  商品 X , 売上明細 Y
              WHERE X.商品番号 = Y.商品番号
     
     
     
     
      左外結合は、左側の表を優先して結合します。
      右外結合は、右側の表を優先して結合します。
     
      つまり、[通常の結合]では現れない行が、現れます。(ポイント)
     
     
       [通常の結合]
        SELECT X.商品番号, 商品名, 数量
           FROM  商品 X , 売上明細 Y
              WHERE X.商品番号 = Y.商品番号
           ORDER BY 商品番号  ←付加しました。
     
      の検索結果としては
     
     > イ
     > ┌────┬───┬──┐
     > │商品番号│商品名│数量│
     > ├────┼───┼──┤
     > │  S101  │  A   │  5 │
     > ├────┼───┼──┤
     > │  S101  │  A   │ 10 │
     > ├────┼───┼──┤
     > │  S103  │  C   │  5 │
     > ├────┼───┼──┤
     > │  S104  │  D   │  2 │
     > ├────┼───┼──┤
     > │  S104  │  D   │  8 │
     > └────┴───┴──┘
     
      となりますね。
     
     
      しかし、外結合では、この表に、優先された表の結合されていない行
      が追加されたものが現れます。
     
     >  SELECT X.商品番号, 商品名, 数量
     >      FROM 商品 X LEFT OUTER JOIN 売上明細 Y
     >         ON X.商品番号 = Y.商品番号
     
      では、商品が優先されています。
      なので、商品にある行は全て表示されないといけません。
     
      ところが「イ」には
     
      商品の
         ┌────┬───┐
         │  S102  │  B   │
         └────┴───┘
      が現れていないことがわかります。
      そこで、この行を付加します。
      しかし、売上明細には 商品番号「S102」が存在しないので、数量を取得
      できません。
     
      そのため、問題文の空値(NULL) "-"を設定します。
     
      すると
     
     > ア
     > ┌────┬───┬──┐
     > │商品番号│商品名│数量│
     > ├────┼───┼──┤
     > │  S101  │  A   │  5 │
     > ├────┼───┼──┤
     > │  S101  │  A   │ 10 │
     > ├────┼───┼──┤
     > │  S102  │  B   │  - │    ←これが挿入されました。
     > ├────┼───┼──┤
     > │  S103  │  C   │  5 │
     > ├────┼───┼──┤
     > │  S104  │  D   │  2 │
     > ├────┼───┼──┤
     > │  S104  │  D   │  8 │
     > └────┴───┴──┘
     
      これが、正解ですね。
     
     
     
      ちなみにウとエは、アとイを商品番号、商品名でサマリしたものですね。
      SUM関数とGROUP BYで実現できますね。
     
      ウ
        SELECT X.商品番号, 商品名, SUM(数量)
        FROM 商品 X LEFT OUTER JOIN 売上明細 Y
          ON X.商品番号 = Y.商品番号
        GROUP BY X.商品番号, 商品名,
     
      エ
        SELECT X.商品番号, 商品名, SUM(数量)
        FROM  商品 X , 売上明細 Y
        WHERE X.商品番号 = Y.商品番号
        GROUP BY X.商品番号, 商品名,
     
       こんな感じですね。
     



合格を勝取るにはコレ!! 絶対に読んでおくべきです。

▽ http://www.mag2.com/m/0000120201.htm



     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
      「編集後記」
     
       いよいよ、春試験の高度区分の合格発表が明日、6月21日(月)正午に
       行われる予定です。
     
       システム監査、システム管理、データベース、エンベデッド、
       ソフトウェア開発が発表の対象です。
     
       今回から、全ての区分で成績照会が可能になっています。
       受験票(受験番号とパスワード)を確認しておきましょう。
     
       「JITEC」
        http://www.jitec.jp/
     
     
     『お願い』
     
       無料メールマガジン同士の相互紹介、HPの相互リンクを募集して
       おります。せひ、宜しくお願いします。
     
       今回、受験を考えている方などに、情報処理試験のお勉強
       (千里の道も一歩から)を、紹介してあげてください。
       このメールマガジン自身も、千里の道を一歩ずつ、着実に歩んでいきます。
     
      「情報処理試験のお勉強(千里の道も一歩から)」
       まぐまぐ  :http://www.mag2.com/m/0000120201.htm
       めろんぱん :http://www.melonpan.net/mag.php?005485
       メル天   :http://melten.com/m/16380.html
       カプライト :http://cgi.kapu.biglobe.ne.jp/m/8670.html
       E-MAGAZINE :http://www.emaga.com/info/megafri.html
       Macky!   :http://macky.nifty.com/cgi-bin/bndisp.cgi?M-ID=megafriday
       melma!   :http://www.melma.com/mag/20/m00102220/index_bn.html
     
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
       『 情報処理試験のお勉強(千里の道も一歩から) 』
       作者  :メガフラ(megafriday@yahoo.co.jp)
       HP  :http://jstudy.fc2web.com/
       発行周期:週間
     
      以下のスタンドより、発行させて頂いています。
      配信登録、配信中止も以下のアドレスよりお願いします。
     
      まぐまぐ  :http://www.mag2.com/m/0000120201.htm
      めろんぱん :http://www.melonpan.net/mag.php?005485
      メル天   :http://melten.com/m/16380.html
      カプライト :http://cgi.kapu.biglobe.ne.jp/m/8670.html
      E-MAGAZINE :http://www.emaga.com/info/megafri.html
      Macky!   :http://macky.nifty.com/cgi-bin/bndisp.cgi?M-ID=megafriday
      melma!   :http://www.melma.com/mag/20/m00102220/index_bn.html
     
     ----------------------------------------------------------------------
     <免責事項>掲載されているいかなる情報により損害を被っ
           ても、当方では責任を負いませんことをご了承ください。
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
     





情報処理試験のお勉強(千里の道も一歩から) (マガジンID:0000120201)

メールアドレス:
メールアドレス:

Powered by まぐまぐ


メインメニューに戻る

SEO [PR] 住宅ローン フラワーギフト 必勝祈願 冷え対策 動画 無料レンタルサーバーSEO