Previous: from 句
Up: from 句
Previous Page: from 句
Next Page: where句

テーブルの積

その前に、二つのテーブルの「積」という演算を定義してみよう。
項目 a1 , a2 からなるテーブルAと、項目 b1 , b2 , b3 からなるテーブルBがあっ たとしよう。いま、単純化して、テーブルAとBには、下の図式で表されるようなデー タが入っており、それぞれ2行と3行からなっているとしよう。

テーブルA               テーブルB
           a1       a2                   b1        b2       b3
     -------- --------            --------- --------- --------
           10       01                    a         1        x
           20       02                    b         2        y
                                          c         3        z

こうした時2つのテーブルの「積」A×Bは、次のように作られる。
まず、テーブルAの第一行を取り出し、その一行と、テーブルBの全ての行を組み合わ せて新しい行を作る。次に、テーブルAの第二行目と、テーブルBの全ての行を組み合 わせて行を作る。こうした操作を、テーブルAの行が無くなるまで繰り返す。
先のテーブルA、Bの例では、A×Bは、次のようになる。

           a1       a2        b1        b2       b3
             -------- -------- --------- --------- --------
                   10       01         a         1        x
                   10       01         b         2        y
                   10       01         c         3        z
                   20       02         a         1        x
                   20       02         b         2        y
                   20       02         c         3        z

明らかに、A×Bは、新しいテーブルである。一般に、テーブルAがa個の行からな り、テーブルBがb個の行からなる時、テーブルA×Bは、a×b個の行からなる。

select を使えば、テーブルAの内容は、

select * from A
で見ることが出来るし、テーブルBの内容は、
select * from B
で表示される。この時、テーブルA×Bの内容は、次のselect文で得られる。
select * from A , B

これまでは、from句には、単一のテーブルしか現れてこなかったが、この例のように、 コンマ(,)で区切って、複数のテーブル名を指定することが出来る。

maruyama@wakhok.ac.jp
1995年02月10日 (金) 00時49分16秒 JST