続・はじめてのSQL

SQLの語源は、Stluctured Qu........なんとかかんとか ですが、現在はSQLという言葉としてきちんと定義されています。
最初のデータベースにテーブルを追加して、つぎのようなデータベースを作りました。
新しいテーブルを作るには、CREATE TABLE文を使います。タプルを追加するにはINSERT INTOコマンドを使用します。
仕入業者:                購買実績:
 業者番号|業者名 |地区         業者番号|部品番号
 --------+--------+-------       ---------+----------
    1|大和商会|北海道           1|3
    2|富士資材|静岡            2|1
    3|田村商事|北海道           2|4
    4|高花機材|鳥取            3|3
                         3|2
部品:                      3|1
 部品番号|部品名 |価格            4|3
 --------+--------+------           4|3
    1|PS版  |300             4|4
    2|現像液 |100             4|2
    3|紙   | 50             4|3
    4|インキ |150
どの業者から何を買ったのかを調べるには、

SELECT 業者名, 部品名 FROM 仕入業者, 部品, 購買実績 WHERE 業者名 = 業者番号 and 部品名 = 部品番号;

という命令をします。複数の表をまとめているので結合という処理ですね。
結果は
 業者名 |部品名
 --------+--------
 大和商会|紙
 富士資材|インキ
 富士資材|PS版
 田村商事|PS版
 田村商事|現像液
 田村商事|紙
 高花機材|紙
 高花機材|紙
 高花機材|紙
 高花機材|現像液
 高花機材|インキ
のようになります。

それぞれの業者ごとの合計金額は

SELECT 業者名, SUM(価格) AS 合計金額 FROM 仕入業者, 部品, 購買実績 WHERE 業者名 = 業者番号 and 部品名 = 部品番号 GROUP BY 業者名;

とします。SUMは合計ですので価格の合計を「合計金額」というアトリビュートで表示します。最後の「GROUP BY 業者名」は業者ごとに合計金額を出すという意味になります。
結果は、
 業者名 |合計金額
 --------+--------
 大和商会|  50
 富士資材| 450
 田村商事| 450
 高花機材| 400
のようになります。


戻る