にしのくえすと

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


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


・イラスト素材はAI CATCHER様のものを使用させていただいてます。素敵です!

↓ 電子書籍発売中です!「ネスペちゃん」「セスペちゃん」よろしくお願いです!
 
・作者のプロフィールはこちら  ・にしの作「資格本」電子書籍についてこちら
・作者の日記系ブログ(不定期)みがまえるよりはやく  ・「にしのくえすと」プライバシーポリシー

23日から25日のあいだは特別編成です
にしのF長期出張+にしのA里帰りのためお休みいただきます。
※twitterはやってます。

「あいぱすクエストりたーんず」と題して、ITパスポートの
過去の記事を再編集しつつご紹介するスタイルでお届けします。
26日から通常営業の予定です。よろしくお願いします。

第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 にしのA&F