LoginSignup
0
0

SQL学習備忘録 SQLチートシート④SELECT文に関する修飾語3

Last updated at Posted at 2024-05-02

 以下の Qiita の続きです。以前からお世話になっているProgakuという共助学習エンジニアコミニティのモブプロを通して、SQL の直書きの必要にせまられ、全然分かってなかったなと感じ、個人用に作っています。もう完全にQiitaが最近はプログラミングに関する学習のノート(※主教科書は下記の①)代わり…(Qiita 考えた人ホンマ偉いな…(・∀・))
 以下の①の本を読み進めて、ようやくそれっぽいのがでてきたなという感じです。(※モブプロの成果物のたたき台ができたらGithubの自分のbranchをコピーしてひっつけようと思います。)


〇主な学習参考資料・実験材料

①『スッキリわかるSQL入門 中山 清喬/飯田 理恵子 共著, 株式会社フレアリンク 監修』
Amazonリンク

https://www.amazon.co.jp/%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8BSQL%E5%85%A5%E9%96%80-%E7%AC%AC3%E7%89%88-%E3%83%89%E3%83%AA%E3%83%AB256%E5%95%8F%E4%BB%98%E3%81%8D-%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8B%E5%85%A5%E9%96%80%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E4%B8%AD%E5%B1%B1/dp/4295013390/ref=sr_1_4?crid=R3S0R02A45NW&dib=eyJ2IjoiMSJ9.xInwby6L9meVu-DcOzcsfGzSfA1TV5kHAI58d3yqbfFMpcMhpEpLBh7sv0MjU3gQ8Cz4yhNI5lfvqxmBbR5ERANf8Ob7iqbXgRIgkXGa1KjltvTOtjuOEQhBXmA6K6aQSFy7XZ4Y2UJkRiJ83FoDD3vxUmLTCz_4w2ckeBvzahtYwvMksPr6AgUr0vvgUNjaEwA28iHoEfC94ajVHRmEZE4vpywXnK28LzpJJGIVtiq9FHTnU8IxU6cWgjD2bfmyVYidrxQbXOB_ltcz4kbyaJ0kaJqEaWZ_yU1iRh1NOqk.2UDSmegUKoH6wU_5N866HOyVH34SBolZlXACu53ocsI&dib_tag=se&keywords=%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E5%88%86%E3%81%8B%E3%82%8Bsql%E5%85%A5%E9%96%80&qid=1714370070&sprefix=%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E5%88%86%E3%81%8B%E3%82%8BSQL%2Caps%2C212&sr=8-4

②転職活動時のポートフォリオ(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では使えない……

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0