情報処理基礎論 a 第 12 回 (関係データベースと SQL ) 「解答 その 3」 講義ノート目次

itdb=> SELECT name FROM character;
      name      
----------------
 ブラサム
 バブルス
 バタカップ
 モジョジョジョ
 ミス・キーン
 メイヨール
 プロフェッサ
 ジャック
 アク
(9 rows)
itdb=> SELECT sex FROM character;
 sex 
-----
 女
 女
 女
 男
 女
 男
 男
 男
 男
(9 rows)
itdb=> SELECT town FROM town;
     town     
--------------
 タウンズビル
 タウンズビル
 タウンズビル
 タウンズビル
 未来世界
 ラボ
 ラボ
(7 rows)
itdb=> SELECT abstract FROM story;
        abstract        
------------------------
 3 人の女の子たちのお話
 未来世界の侍の話
 姉と弟の兄弟げんかの話
 電気会社の CM 集
 犬と発明家の話
(5 rows)
itdb=> SELECT name,character FROM character;
      name      | character
----------------+--------
 ブラサム       | 善
 バブルス       | 善
 バタカップ     | 善
 モジョジョジョ | 悪
 ミス・キーン   | 善
 メイヨール     | 善
 プロフェッサ   | 善
 ジャック       | 善
 アク           | 悪
(9 rows)
itdb=> SELECT * FROM character where character='善';
     name     |     program      | sex | character
--------------+------------------+-----+--------
 ブラサム     | パワパフガールズ | 女  | 善
 バブルス     | パワパフガールズ | 女  | 善
 バタカップ   | パワパフガールズ | 女  | 善
 ミス・キーン | パワパフガールズ | 女  | 善
 メイヨール   | パワパフガールズ | 男  | 善
 プロフェッサ | パワパフガールズ | 男  | 善
 ジャック     | サムライジャック | 男  | 善
(7 rows)

itdb=> SELECT * FROM marathon where rank < 4;
  name  | rank 
--------+------
 カウ   |    1
 チキン |    3
 フレム |    2
(3 rows)
itdb=> SELECT character.name, town FROM character,town WHERE sex='女' AND town='タウンズビル' AND character.name=town.name;
    name    |     town     
------------+--------------
 ブラサム   | タウンズビル
 バブルス   | タウンズビル
 バタカップ | タウンズビル
(3 rows)
itdb=> SELECT character FROM character;
 character
--------
 善
 善
 善
 悪
 善
 善
 善
 善
 悪
(9 rows)

itdb=> SELECT * FROM character where program='サムライジャック';
   name   |     program      | sex | character 
----------+------------------+-----+--------
 ジャック | サムライジャック | 男  | 善
 アク     | サムライジャック | 男  | 悪
(2 rows)

itdb=> SELECT AVG(rank) FROM hundred ;
        avg         
--------------------
 3.3333333333333333
(1 row)

itdb=> SELECT * FROM hundred ;
    name    | rank 
------------+------
 ウィゼル   |    1
 カウ       |    3
 チキン     |    2
 レッドガイ |    6
 フレム     |    4
 アル       |    4
(6 rows)
itdb=> SELECT COUNT(*) FROM hundred ;
 count 
-------
     6
(1 row)

itdb=> SELECT MAX(rank) FROM hundred ;
 max 
-----
   6
(1 row)
itdb=> SELECT MIN(rank) FROM marathon ;
 min 
-----
   1
(1 row)
itdb=> SELECT COUNT(DISTINCT(town)) FROM town;
 count 
-------
     3
(1 row)

itdb=> SELECT COUNT(DISTINCT(rank)) FROM hundred;
 count 
-------
     5
(1 row)
itdb=> SELECT name,rank FROM marathon GROUP BY name,rank HAVING rank < 3;
  name  | rank 
--------+------
 カウ   |    1
 フレム |    2
(2 rows)
itdb=> SELECT name,rank FROM hundred GROUP BY name,rank HAVING
 AVG(rank) < 3;
   name   | rank 
----------+------
 ウィゼル |    1
 チキン   |    2
(2 rows)
SELECT character.name, town, character FROM town, character WHERE
    character.sex='女' AND town.town='タウンズビル' 
    AND character.name=town.name;
    name    |     town     | character 
------------+--------------+-----------
 ブラサム   | タウンズビル | 善
 バブルス   | タウンズビル | 善
 バタカップ | タウンズビル | 善
(3 rows)

実際は「タウンズビルの女」だけですでに 3 名に絞り込まれている。