SQL学習ログ SELECT, WHERE, ORDER BY, GROUP BY, HAVING
久しぶりに勉強して脳みそが疲れているので
忘れないようにアウトプットだ
インプットとアウトプットはいつでもセットでいきましょう
この人のyoutube見ながらやったよ。すごい時代だ。勉強が無料だなんて。言い訳ができない。食らいついて生きていかないと・・・
今回はDB Browser for SQLiteを使っていくよ〜
SQLってなに
・SQLとは、データベース言語。プログラミング言語ではない。
・でも、プログラミングするにあたってデータベースは使われているから、プログラミングするとしても必須だよ
テーブルってなに
・エクセルのBookみたいなもの
・縦方向、列方向は「カラム」
・横方向、行方向は「レコード」
SELECT :列を取り出す
SELECT カラムA FROM テーブルA;
意味:テーブルAからカラムAを取り出してね
SELECT カラムA , カラムB FROM テーブルA
意味:テーブルAからカラムAとBを取り出してね
(複数取り出したいはカンマでつなぐ)
SELECT カラムA as '新A' FROM テーブルA
意味:テーブルAからカラムAと取り出してね。項目名は新Aとして。
SELECT * FROM テーブルA
意味:テーブルAから全部のカラムを取り出してね。
WHERE:行を取り出す
SELECT *
FROM テーブルA
WHERE 条件式
意味:テーブルAから条件式にあう列を全部とってきてね
(条件式に文字列を入れるときは ’’ でくくるの忘れずに)
ORDER BY:並び替え
SELECT *
FROM テーブルA
ORDER BY 並び替え条件
意味:テーブルAから全部のカラムを並び替え条件順で取り出してね。
SELECT *
FROM テーブルA
ORDER BY カラムA , カラムB
意味:テーブルAから全部のカラムをカラムA、カラムBの順に取り出してね。(エクセルで順番にフィルターかけたみたいになる)
SELECT *
FROM テーブルA
ORDER BY カラムA DESC, カラムB ASC
意味:テーブルAから全部のカラムをカラムAは降順、カラムBは昇順で取り出してね
GROUP BY:同じ値をまとめる(グルーピング)
SELECT カラムA
FROM テーブルA
GROUP BY カラムA
意味:テーブルAからカラムAをグループ化してね
例
元データ:りんご もも バナナ りんご もも もも
結果 :りんご もも バナナ
SELECT カラムA, 集計関数(集計対象カラム)
FROM テーブルA
GROUP BY カラムA
意味:テーブルAからカラムAをグループ化して、それごとに集計してね
(集計関数は何個も付けれる 横列で出力してくれる)
イメージ 3×3の表みたいにできる
合計 最小 最大
りんご
もも
バナナ
SELECT count(*)
FROM テーブルA
意味:テーブルAのデータ数を数える
HAVING:行を取りだす(グループ化した後のデータ)
SELECT カラムA、集計関数(集計対象カラムB)
FROM テーブルA
GROUP BY カラムA
HAVING 集計関数(集計対象カラムB)で条件式
なんかもわかりにくいから具体例で
SELECT
商品名
, sum(売上金額)
FROM テーブルA
GROUP BY 商品名
HAVING sum(売上金額) >= 1000000
意味:テーブルAから、売上金額が100万円以上の商品名のみを取り出してね。
ここまでのまとめ
まとめた時の順番は以下の通り
SELECT グルーピングをするカラム、集計関数(集計対象カラム)
FROM テーブル名
WHERE 条件式
GROUP BY グルーピングをするカラム
HAVING 集計関数(集計対象カラム)で条件式
ORDER BY ソート条件
(https://kino-code.com/sql07-2/ から丸コピ)
疲れました。練習しないと身にならなそうだ〜。
この記事が気に入ったらサポートをしてみませんか?