2008/6/3 久米
都道府県コードの表 todofuken
列名 | データ型 |
kencode | char(2) |
kenmei | varchar(8) |
東京都の人を検索する
文法 | 例 | 説明 |
SELECT 列名, ... FROM 表1, 表2 WHERE 表1.列名=表2.列名 |
SELECT todofuken.kencode, kenmei, sei, mei FROM meibo, todofuken WHERE meibo.kencode=todofuken.kencode AND todofuken.kenmei='東京都' |
WHERE句のところに 同じ意味を持つ列同士を=で結ぶ あとは、検索条件をANDで続ける |
演習1 大阪府の人を検索せよ
演習2 東京都でかつ一人暮らしの人を検索せよ
問い合わせ 種類 |
関数 | 例 |
件数 | COUNT(列名or * ) | SELECT COUNT(*) FROM meibo |
合計 | SUM(列名) | SELECT SUM(kazoku) FROM meibo |
平均 | AVG(列名) | SELECT AVG(kazoku) FROM meibo |
最大 | MAX(列名) | SELECT MAX(tanjobi) FROM meibo |
最小 | MIN(列名) | SELECT MIN(tanjobi) FROM meibo |
文字列 連結 |
CONCAT(列名, ..) | SELECT CONCAT(sei, mei, 'さん') FROM meibo |
文法 | 例 | 説明 |
SELECT グループ化する列名, ... FROM 表 GROUP BY グループ化する列名 |
SELECT kencode, AVG(kazoku) FROM meibo GROUP BY kencode |
GROUP BYで グループ化する列を 指定する |
グループ化した検索結果に対する条件
文法 | 例 | 説明 |
SELECT グループ化する列名, ... FROM 表 GROUP BY グループ化する列名 HAVING 条件 |
SELECT kencode, AVG(kazoku) a FROM meibo GROUP BY kencode HAVING a>1 |
HAVINGの後に 条件を記述 左記は AVG(kazoku)>1でも可 |
※ AVG(kazoku) a の意味はAVG(kazoku)をaという印でアクセスできるようにしたもの。
演習3
4.4.1の複数表検索を利用して、kencodeごとではなく、kenmeiごとにグループ化し
kenmeiごとの最大家族数を検索せよ
文法 | 例 | 説明 |
SELECT 列名, ... FROM 表 WHERE 列名 IS NULL (あるいは WHERE 列名 IS NOT NULL) |
SELECT sei, mei |
NULLの検索は |
文法 | 例 | 説明 |
SELECT 列名, ... FROM 表1 INNER JOIN 表2 ON 表1.列名=表2.列名 |
SELECT kenmei, sei, mei FROM meibo INNER JOIN todofuken ON meibo.kencode=todofuken.kencode |
SELECT kenmei, sei, mei |
文法 | 例 | 説明 |
SELECT 列名, ... FROM 表1 LEFT JOIN 表2 ON 表1.列名=表2.列名 |
SELECT kenmei, sei, mei FROM meibo LEFT JOIN todofuken ON meibo.kencode=todofuken.kencode |
右側に記述した表に該当する値がなくても |
文法 | 例 | 説明 |
SELECT 列名, ... FROM 表1 RIGHT JOIN 表2 ON 表1.列名=表2.列名 |
SELECT kenmei, sei, mei FROM meibo RIGHT JOIN todofuken ON meibo.kencode=todofuken.kencode |
左側に記述した表に該当する値がなくても |