にしのクエスト2

情報処理技術者試験と資格学校講師の日常

にしのクエスト2

勉強ライブ データベーススペシャリスト SQLで今日学んだこと

ボロボロになりながら、家路について、寝るまで勉強。
午前は取れるけど、午後が全然ダメ。心折れそう。

EXISTS

SELECT * FROM  表 EXISTS(SELECT * FROM 表 WHERE A="条件")
みたいにつかう。

Aの条件を満たしたものを表示しなさい、という意味。
逆に、NOT EXISTSは条件を満たしたものを非表示に
する。

これはINでも表現できて
SELECT * FROM  表 IN(SELECT   項目名  FROM 表)

という書き方になる。違いは、項目名を書くこと。
該当する項目名があれば表示する。

ついでにいえば、JOINでも同じことができるらしい
が、それは明日にする。明日こそ本気出す。

GROUP BY   と HAVING   と WHERE

GROUP BY  は集計する項目をまとめる。

SELECT  COUNT(グループ)FROM  表 GROUP BY グループ
グループの数をカウントします。

これにHAVING   と WHERE  を使えるが、

WHERE は前提条件だから前に書く

SELECT  COUNT(グループ)FROM  表
         WHERE グループ!=”A” GROUP BY グループ

グループの数はカウントするのだが、Aという名前の
グループは数えない。

HAVINGは結果に対しての後付けなので、後ろに書く

SELECT  COUNT(グループ)AS グループ数 FROM  表

GROUP BY  グループ HAVING グループ数>=2

カウントの結果、2以上のものだけを表示する。

f:id:koharuwest:20190307231025p:plain


今日は寝る!