グループでさらに条件をつけたい場合は、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)