読者です 読者をやめる 読者になる 読者になる

にしのくえすと

情報処理技術者試験のお勉強ブログ


「にしのくえすと」とは?
・「情報処理技術者試験大好き」「ICT資格取りたい」な人のためのブログです。
・あいぱす、セキュマネ、基本、応用、セキュスペ(安全確保支援士)、ネスペ、デスペあたりの話題が中心です。
・申し述べる見解はあくまで私人としてのもので、勤務先とは一切関係ございません。
・資格試験に関する記事は、自己責任でご利用ください。


新刊のお知らせです!
20170310230011
・電子書籍第2弾!「セスペちゃん29」発売中!(Kindle版)
 午前対策+27春秋・28春秋午後解答ライブ収録!
 情報処理安全確保支援士対応!練習問題付き約150Pの攻略同人誌!

 
電子書籍発売中です!
20161022221039
・初の電子書籍!「ネスペちゃん28」発売中!(Kindle版)ver1.1

作者の日記系ブログ
みがまえるよりはやく  「にしの」私的なブログ不定期です。こちらもよろしくです。

今後のスケジュール
・ITパスポート本を製作中(6月予定)です。
・ネスペちゃんの改訂を行う予定です。(8月予定)

広告



第7回「SQL」その2

広告

WHERE条件にはAND,OR,NOTが使用可能です。

たとえば

SELECT 番号,氏名 FROM 名簿,特技 
WHERE 名簿.番号=特技.番号 AND 所属='営業'

みたくすると、
2つの表を結合した上で、営業に所属する人の番号と氏名を射影する
ことができます。もちろん

WHERE 点数>=30 AND 点数<=80
(点数が30点以上80点以下)

みたいなのや、

WHERE 数学<=50 OR 理科<=50
(数学か理科が50点以下)

とか

WHERE NOT 特技='将棋'
(特技は将棋じゃない人)

みたいなのもできます。この辺はエクセルなんかと一緒ですよね。


WHERE条件の応用編


IN
値を指定して条件を設定する場合に使います。

SELECT 氏名 FROM 名簿 WHERE 番号 IN(101,103)


こうすると、番号が101と103の人の氏名を抜き出すことができます。


ORDER BY ASC,DESC
項目を並び替えることができます。ASCが昇順、DESCが降順です。
例としては


SELECT 氏名 FROM 名簿 WHERE ORDER BY 番号 DESC


ちなみに、DESCなどは省略できますが。省略した場合は昇順(ASC)に
なります。


集計関数
グループ集計と言いますが、関数を使用することができます。
GROUP BY や、HAVINGなんかもまとめて覚えてください。


公式は
SELECT AVG(項目) FROM 項目の平均値を求める
SELECT SUM(項目) FROM 項目の合計値を求める
SELECT MAX(項目) FROM 項目の最高値を求める
SELECT COUNT(*) FROM 条件に合う人数を集計する


ちょっとCOUNTだけが異質ですが、覚えちゃいましょう。
もちろん、これを副検索という形で使うこともできます。

SELECT 番号,氏名,年齢 FROM 社員表
WHERE 年齢>= (SELECT AVG(年齢) FROM 社員表)


社員表の年齢の平均以上の人の番号、氏名、年齢を抜き出します。


さて、GROUP集計をやってみましょう。

SELECT 番号,SUM(数量) AS 受注数 FROM 受注表 GROUP BY 番号


これは番号ごとに数量を合計し、番号と受注数を表示させます。
AS句を使うと項目名を別名で表示することができます。


さらに、これにHAVING句を使うことで、グループ集計に細かい条件
を加えることができます。


SELECT 番号,SUM(数量) AS 受注数 FROM 受注表
GROUP BY 番号 HAVING SUM(数量)>=50


合計した数量が50以上になるものを番号ごとに集計して抜き出します。

 

にしのくえすと Presented by にしの 2017