Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【CATL】速習SQL

rare0b
October 04, 2023
49

 【CATL】速習SQL

rare0b

October 04, 2023
Tweet

Transcript

  1. 4 • 放送大学(通信制大学) 情報コース 3年 • 大学在学中、1年半の社会人経験有り • 元データベース管理者 •

    SQL Roadmap全部分かるのが自慢 https://roadmap.sh/sql • 最近はReact/Go [会員 バックエンド] れあ 自己紹介 はじめに
  2. 8 1. SELECT a. 集約関数 2. FROM a. JOIN 3.

    WHERE 4. GROUP BY 5. HAVING 6. ORDER BY 7. 集合演算 一覧 基本構文
  3. 9 • SELECT 列名1(, 列名2, …) • SELECT * は全列取得

    • 冒頭に表名or表別名をつけると どの表の列か明示できる ◦ u.usernameのu. 列を選ぶ SELECT 基本構文
  4. 11 • FROM 表名1(, 表名2, …) ◦ 表名2以降は JOIN句で指定することが多い •

    表別名をつけられる ◦ users uのu 表を選ぶ FROM 基本構文
  5. 12 • INNER JOIN…条件一致行 • LEFT OUTER JOIN…条件一致行+条件不一致の左側全行 (右側しかない列はNULLが入る) •

    RIGHT OUTER JOIN…条件一致行+条件不一致の右側全行 (左側しかない列はNULLが入る) • FULL OUTER JOIN…条件一致行+条件不一致の左右全行 (片側しかない列はNULLが入る) • CROSS JOIN…すべての組み合わせ行、いわゆるデカルト積、 JOIN句の基礎 • 自己結合…同じ表を2つ以上使う結合、違う表別名をつけて同じ表を別の表のように扱う 列をつけ足す JOIN FROM 「左側」はFROMで先に指定した方 可読性のため基本は左側結合 (右側結合を使わない )
  6. 13 • 等号、不等号 ◦ 不等号は<>か!= ◦ BETWEEN a AND bでa以上b以下

    • IN、NOT IN (値1(, 値2, …)) • IS NULL、IS NOT NULL • EXISTS、NOT EXISTS 行を選ぶ WHERE 基本構文
  7. 14 • LIKE '%abc%’ ◦ %は任意の文字列 ◦ ‘%abc’なら前方曖昧一致、 ’abc%'なら後方曖昧一致 •

    ANY、ALL…存在、全称 • AND、OR…複数条件 行を選ぶ WHERE 基本構文
  8. 15 • GROUP BY 列名1(, 列名2, …) • 指定した列の値が同じ行を集約して それぞれ集約関数を適用する

    • 右の場合、 user_idごとに、wallet表のamountの合計 を求めている 列の値が同じ行を集約 GROUP BY 基本構文
  9. 17 • ORDER BY 列名1(, 列名2, …) • デフォルト昇順 降順にしたいときは

    列名の後にDESC指定 • SELECTにない列名も 指定できる 行を並び替え ORDER BY 基本構文
  10. 18 • UNION、UNION ALL…行をつけ足す ◦ UNIONは重複削除&ソートされる ◦ UNION ALLはつけ足すだけ •

    EXCEPT…行を引く • INTERSECT…共通行を取得 行を足し引き 集合演算 基本構文 画像出典: https://hrzine.jp/article/detail/249
  11. 19 1. SELECT a. 集約関数 2. FROM a. JOIN 3.

    WHERE 4. GROUP BY 5. HAVING 6. ORDER BY 7. 集合演算 一覧(再掲) 基本構文
  12. 21 1. FROM 2. WHERE 3. GROUP BY 4. HAVING

    5. SELECT 6. ORDER BY FROMが最初、SELECTは最後 実行順序 その他Tips