スポンサーリンク
4th(Rails)Day9の課題は「Progate SQL コースⅢ」です。
ProgateのSQL編の最終日になります。
スポンサーリンク
クエリの中にクエリを入れる:サブクエリ
WHEREの条件にクエリを指定することができ、サブクエリという
1 2 3 4 5 6 7 |
SELECT カラム名 FROM テーブル名 WHERE 条件 ( SELECT カラム名 FROM テーブル名 WHERE 条件 ); |
サブクエリが実行された後にメインのクエリが実行される。
カラムに別名をつける:AS
SELECTのカラム名に「カラム名 AS 別名」と記述することでクエリ結果のカラム名を任意のものに変更できる。
1 2 |
SELECT カラム名 AS 別名 FROM テーブル名 |
テーブルの結合:JOIN
以下のように記述することで2つのテーブルを結合して1つのテーブルのように扱うことができる。
1 2 3 4 5 |
SELECT * FROM テーブル名1 JOIN テーブル名2 ON 結合条件(テーブル名1.外部キーのカラム名 = テーブル名2.主キーのカラム名) ; |
上記の場合に外部キーのカラムがNULLのレコードは実行結果に表示されないが、「JOIN」部分を「LEFT JOIN」とすることで外部キーがNULLのレコードもそのまま表示することができる。
また「JOIN テーブル名 ON 結合条件」を繰り返し記述することで、3つ以上のテーブルを結合することも可能。
クエリ全体の実行順序
- テーブルの指定:FROM
- 結合:ON・JOIN
- 取得条件:WHERE
- グループ化:GROUP BY
- 関数:COUNT・SUM・AVG・MAX・MIN
- グループ化後の取得条件:HAVING
- 検索:SELECT・DISTINCT
- ソート:ORDER BY
- 件数制限:LIMIT
まとめ
ProgateのSQLコースはⅣまでありますが、30DAYSトライアルの中では終了になります。
SQLはクエリの組み方などでレスポンスに大きく影響するので、処理順であったり結合順であったりということをきちんと意識する必要がありますが、Railsでは直接SQLを組むことはないということなので、そこをどう吸収しているのか楽しみです。
スポンサーリンク