ProgateのSQLまとめ①(ⅠとⅡ)

【SQL I】

📖クエリ
→データベースに送る命令。SQLはクエリを書くための言語

🌟select カラム名,カラム名
from テーブル名;
※全てのカラムから取得する時はselect *
🌟where条件;
→どのレコードを取得するかの条件
例)category="雑費"
※数値はダブルクォーテーションいらないが、日付データは必要!
📖データ型とはテキストや数値、日付データなどデータの種類。カラムごとにデータ型を決める
※条件では比較演算子が使われたりする

🌟where name like "%文字列%";
→文字列を含むデータを全て取得
※%はどんな文字列にも一致する、ワイルドカードと呼ぶ。
※文字列%だと前方一致、%文字列だと後方一致
例)プリン%→プリンパフェ
%プリン→焼きプリン

🌟where not 条件;
→NOT演算子で条件を満たさないデータを取得

📖何もデータが保存されていないはNULLとなる。カラム名 is(is not) nullで条件取得できる。null にイコールは使えない!

🌟where 条件①
and(or)条件②;
→条件①かつ(または)条件②

🌟order by 並べ替えたいカラム名 並べ方;
→asc(昇順)、desc(降順)に並べ替える
※whereと併用可能。order by を後に書く!

🌟limit データ件数;
→クエリの末尾に書いて取得するデータ数を制限

【SQL Ⅱ】

*データの加工

🌟select distinct(カラム名)
from テーブル名;
→検索結果から重複するデータを除く

🌟select name,price*1.08
from テーブル名;
→消費税を含んだ計算後のデータが得られる。カラム名に四則演算が使える

*集計関数

📖whereと併用

🌟sum(カラム名)
→指定したカラムのデータの合計を取得
🌟avg(カラム名)
→指定したカラムのデータの平均を取得
🌟count(カラム名)
→指定したカラムのデータの件数を取得
※nullのデータは含まれない
↔️nullを含みたいときはcount(*)
🌟max(min)(カラム名)
→指定したカラムから最大(最小)のデータを取得

*データをグループ化

🌟group by カラム名;
→指定したカラムで完全に同じデータを持つレコード同士が同じグループになる
→各グループごとに集計される
📖group byを用いた時、selectで使えるのはgroup byに指定しているカラム名と集計関数のみ!
※複数のカラムをグループ化する時は、コンマで繋げる
→ある人が何をいくつ買ったか、ある人がいくらお金を費やしたか、などの集計ができる
📖whereと併用できる
→whereを先に書く
📖whereで検索して、group byでグループ化して、集計関数で集計された結果が得られるというイメージ

📖グループ化したデータをさらに絞り込むときは、having 条件を使う
↔️whereはグループ化する前のテーブル全体を検索対象とする


この記事が気に入ったらサポートをしてみませんか?