情報処理技術者試験の午前問題対策のホームページです。
趣 旨 

当ホームページのアクセス数No.1の『SQL講座』です。
マイクロソフトのAccessというデータベースソフトを利用して、10回の講義形式で、SQLを学んでいきます。

初級シスアドから目指すSQLというコンセプトのもと、なるべく分かりやすく、かつ、注意すべき点などを随所に盛り込みながら、解説していきます。

SQL講座のTopへ戻る

MENU
第7時限目:表の結合

MS-AccessでSQL
基本SELECT文
関係関数指定
集合関数指定
GROUP BY と HAVING
並べ換え
表の結合
挿入・更新・削除
副問合せ
練習問題






■ 結合(join)


 SELECT ( <列名リスト> ) FROM <テーブル名リスト1> , <テーブル名リスト2>
 WHERE <テーブル名リスト1>.<列名リスト> = <テーブル名リスト2>.<列名リスト>


 
テーブル名リスト1 とテーブル名リスト2 から、テーブルの間で列名リストが一致する行を
 選択して表示します。


/* ch07-1 */

SELECT 受注.得意先コード , 受注明細.商品コード , 受注明細.単価
FROM 受注, 受注明細
WHERE 受注.受注コード = 受注明細.受注コード ;



 テーブル「受注」とテーブル「受注明細」から、
 2つのテーブルの間で受注コードが一致する行を選択して、
 列「得意先コード」、「商品コード」、「単価」を表示します。

 「受注.受注コード」のように列名、「受注コード」の前にテーブル「受注」をつけて修飾します。
 間は、区切りの .(ピリオド)です。

 これは、複数のテーブルを参照するので、どのテーブルの列かをはっきりさせるためにあります。


< 図ch07-1 >



/* ch07-2 */

SELECT 受注 . 得意先コード ,
受注明細 . 商品コード ,
受注 . 運送料 ,
受注明細 . 数量 ,
受注 . 運送料 * 受注明細 . 数量 AS 全運送料
FROM 受注 , 受注明細
WHERE 受注 . 受注コード = 受注明細 . 受注コード ;



 2つのテーブル「受注」と「受注明細」から、受注コードが等しい行を選択して、
 列「得意先コード」、「商品コード」、「運送料」、「数量」を表示するとともに、

 さらに「運送料×数量」で全運送料を計算して、それに「全運送料」という列名をつけて表示します。


< 図ch07-2 >




■ 直積


/* ch07-3 */

SELECT 商品区分 . * , 商品 . *
FROM 商品区分 , 商品 ;



 テーブル商品区分とテーブル商品とから、すべての行を対象に直積を作成し、すべての列を表示します。

 商品区分 . * という表現は、テーブル商品区分のすべての列という意味です。


< 図ch07-3 >




■ 相関名によるテーブルの略記


 テーブル名が長いとそれを列名の前につけて修飾するのは煩雑になります。

 そこで、FROM 句 で、「〜〜〜 X」(間にスペースをいれる)と書くと、
 テーブル〜〜〜を単に X というテーブル名で参照することができます。

 これを相関名または、エイリアスといいます。

/* ch07-4 */

SELECT X . 仕入先名 , Y . 商品名 , Y . 単価
FROM 仕入先 AS X , 商品 AS Y
WHERE X . 仕入先コード = Y . 仕入先コード ;



 テーブル「仕入先」( X )とテーブル「商品」( Y )とから、
 2つのテーブルの間で仕入先コードが一致する行を選択して、
 列「仕入先名」、「商品名」、「単価」を表示します。

< 図ch07-4 >




■ 相関名による同一テーブルの参照


 相関名を使うと同一テーブルに異なる相関名をつけて、
 あたかも異なるテーブルであるかのように扱うことができます。

 1つのテーブルの中の異なる行の間で比較したり、計算したりするのに有効です。

/* ch07-5 */

SELECT TAB1 . 単価 - TAB2 . 単価
FROM 商品 AS TAB1 , 商品 AS TAB2
WHERE TAB1 . 商品名 = 'ホワイトソルト'
AND TAB2 . 商品名 = 'ピリカラタバスコ' ;



 テーブル「TAB1」のホワイトソルトの単価と同じテーブル(「TAB2」)のピリカラタバスコの単価との
 計算して表示します。

< 図ch07-5 >






第6時限目へ  第8時限目へ


このページのTopへ戻る
インフォメーション



© 2005 情報処理技術者試験対策 All rights reserved.
[PR] 情報セキュリティアドミニストレータ試験対策セキュアド試験午前問題徹底攻略思い出のカケラ特訓PDCA式で学ぼう情報セキュリティ情報処理技術者試験 午前問題攻略
テクニカルエンジニア(情報セキュリティ)試験対策転職 就職ネイティブ音声日常英会話出世魚式昇進物語