データベース応用 第 3 回 (データベース管理システムと関係データベースの構造) 「グループに条件を課すには」 講義ノート目次

グループでさらに条件をつけたい場合は、HAVING をつける。


ta05001=> SELECT wday, MAX(hr) FROM practice GROUP BY wday HAVING wday='月';
 wday | max 
------+-----
 月   |   6
(1 row)

月曜日は 6 限終了後ならばよいということが分かる。

データの更新

データの一部を更新する必要があるとき、UPDATE を使う。

UPDATE 表 SET (変更したい属性1, 変更したい属性2, ...) VALUES ('値1', '値2', ...)

もともと空欄にしておく場合

「情報処理基礎論a」の講義時間が、 担当者は決まったが、時間割がまだ決定されていない。このとき、 hr, wday は指定できない。指定できないとき、NULL を代入しておくことができ る。


ta05001=> INSERT INTO practice VALUES ('西村まどか',NULL,NULL,'後期','情報処理基礎論a','102');
INSERT 0 1
ta05001=> select * from practice;    name    | wday | hr | sem  |         sub          | cls 
------------+------+----+------+----------------------+-----
 西村まどか | 月   |  4 | 前期 | 公益自由研究         | 102
 西村まどか | 月   |  5 | 通年 | 専門演習I            | 102
 西村まどか | 月   |  6 | 前期 | 専門演習II           | 102
 西村まどか | 火   |  1 | 前期 | 基礎プログラミングIB | 101
 西村まどか | 火   |  2 | 前期 | 基礎プログラミングIC | 101
 西村まどか | 水   |  1 | 前期 | 情報交換概論         | 102
 西村まどか | 火   |  1 | 後期 | 基礎プログラミングII | 101
 西村まどか | 火   |  2 | 後期 | 基礎プログラミングII | 101
 西村まどか | 水   |  2 | 前期 | 基礎の自然科学(物理) | 102
 西村まどか |      |    | 後期 | 情報処理基礎論a      | 102
(10 rows)

UPDATE してみよう。


ta05001=> UPDATE practice SET hr=1, wday='水' where sub='情報処理基礎論a';
UPDATE 1
ta05001=> select * from practice;
    name    | wday | hr | sem  |         sub          | cls 
------------+------+----+------+----------------------+-----
 西村まどか | 月   |  4 | 前期 | 公益自由研究         | 102
 西村まどか | 月   |  5 | 通年 | 専門演習I            | 102
 西村まどか | 月   |  6 | 前期 | 専門演習II           | 102
 西村まどか | 火   |  1 | 前期 | 基礎プログラミングIB | 101
 西村まどか | 火   |  2 | 前期 | 基礎プログラミングIC | 101
 西村まどか | 水   |  1 | 前期 | 情報交換概論         | 102
 西村まどか | 火   |  1 | 後期 | 基礎プログラミングII | 101
 西村まどか | 火   |  2 | 後期 | 基礎プログラミングII | 101
 西村まどか | 水   |  2 | 前期 | 基礎の自然科学(物理) | 102
 西村まどか | 水   |  1 | 後期 | 情報処理基礎論a      | 102
(10 rows)