リレーショナル・データベースの表操作
リレーショナル・データベースの表操作は、以下の3つがある。表操作のことを関係演算ともいう。
Point リレーショナル・データベースの表操作
- 選択(selection) → 行の抽出
- 射影(projection) → 指定した列を抽出
- 結合(join) → 複数の表を結合して1つの表にする
選択(selection)
選択は、表の中から条件に合った行を取り出す操作である。
Point 選択
行を取り出す行→すべての列を指定する
《例題》
学籍表より性別が’女’の行を取り出す。(選択)
性別が'女'のすべての列が表示されていることに注目して欲しい。選択をSQL文で書くと、以下のようになる。なお、リレーショナル・データベースの表操作は、SELECT文で行う。
選択をSQL(SELECT)文で記述
SELECT 学籍番号,氏名,性別
FROM 学籍表
WHERE 性別='女'
または
SELECT *
FROM 学籍表
WHERE 性別='女'
射影(projection)
射影は、表の中から必要な列だけを指定して、表から取り出す操作である。
Point 射影
必要な列だけを取り出す
《例題2》
学籍表より氏名と性別の列を取り出す(射影)
射影をSELECT文で記述すると次のようになる。
射影をSQL(SELECT)文で記述
SELECT 氏名,性別
FROM 学籍表
抽出条件は設定していないので、抽出条件のWHERE句は省略している。もちろんWHERE句を書いて抽出条件を設定してもよい。大切なことは、射影は必要な列を取り出していることである。
結合(join)
結合は、複数の表(テーブル)から1つの表にする操作である。
《例題3》
売上表と商品表を商品コードで結合する。
結合をSELECT文で記述すると次のようになる。
結合をSQL(SELECT)文で記述
SELECT 売上番号,数量,売上表.商品コード,商品表.商品コード,商品名,単価
FROM 売上表,商品表
WHERE 売上表.商品コード = 商品表.商品コード ← 表の結合
商品コードだけは、「表名.列名」と記述している。これは、同じ列名が他の表に存在するとき、どの表の列であるか明示しなければならないためである。