以下の Qiita の続きです。以前からお世話になっているProgakuという共助学習エンジニアコミニティのモブプロを通して、SQL の直書きの必要にせまられ、全然分かってなかったなと感じ、個人用に作っています。もう完全にQiitaが最近はプログラミングに関する学習のノート(※主教科書は下記の①)代わり…(Qiita 考えた人ホンマ偉いな…(・∀・))
以下の①の本を読み進めて、ようやくそれっぽいのがでてきたなという感じです。(※モブプロの成果物のたたき台ができたらGithubの自分のbranchをコピーしてひっつけようと思います。)
〇主な学習参考資料・実験材料
①『スッキリわかるSQL入門 中山 清喬/飯田 理恵子 共著, 株式会社フレアリンク 監修』②転職活動時のポートフォリオ(Laravel 10を)に付けた意見投稿フォームのCRUDに紐付けた MySQLWorkbench
①条件を指定して取得するデータに重複するものがある場合、重複するデータをまとめて返すSELECT文
SELECT DISTINCT column_name1
FROM table_name1
WHERE 条件式
②条件式を指定してレコード(またはデータ)を取得した後、指定したカラムを基準として(レコード単位で)昇順(小⇒大、古⇒新)に並び替えた値を返すSELECT文
SELECT * FROM table_name1
WHERE 条件式(column_name = 'value1' 等)
ORDER BY column_name1
/*データを取り出す場合、1行目の「*」を該当のカラム名に差し替える*/
③条件式を指定してレコード(またはデータ)を取得した後、指定したカラムを基準として(レコード単位で)降順(大⇒小、新⇒古)に並び替えた値を返すSELECT文
SELECT * FROM table_name1
WHERE 条件式(column_name = 'value1' 等)
ORDER BY column_name1 DESC
/*データを取り出す場合、1行目の「*」を該当のカラム名に差し替える*/
※DBへの登録日時などのtimestampに対しても適用できる。
④条件式を指定してレコード(またはデータ)を取得した後、指定した複数のカラムを基準として(レコード単位で)昇順または降順に並び替えた値を返すSELECT文
SELECT * FROM table_name1
WHERE 条件式(column_name = 'value1' 等)
ORDER BY column_name1 ASC or DESC, column_name2 ASC or DESC, …
/*データを取り出す場合、1行目の「*」を該当のカラム名に差し替える*/
/*「ASC」は昇順であることを明示する修飾語*/
⑤条件式を指定してレコード(またはデータ)を取得した後、指定したカラムを基準として(レコード単位で)昇順または降順に並び替えた後、行数を限定して値を返すSELECT文
SELECT * FROM table_name1
WHERE 条件式(column_name = 'value1' 等)
ORDER BY column_name1 ASC or DESC (, column_name2 ASC or DESC, …)
OFFSET 先頭から除外する行数 ROWS
FETCH NEXT 取得したい行数 ROWS ONLY
/*FETCH句には、取得したい行数を指定する。FETCH句を省略すると、該当するすべての行が抽出される*/
MySQL、MariaDB(10.6未満)、PostgreSQL、SQLiteでは使えない……