LVLPATH

日本最強無料プログラミングスクール

SQL FLOW

SQLの勉強手順

🔰 概要

SQLは深さの違いはありますが、フロントエンド、バックエンド、インフラエンジニアで必須になります。

✅ SQLの勉強手順

image

STEP1: ORMを使ってwrapされた状態でSQL操作をアウトプットベースで使う

ORM: Object–relational mapping

ORMというのはプログラミング言語でSQLを操作できるライブラリのようなものです。

素のSQLだと Select * from User のような書き方をする文法をプログラミング言語側の関数を実行することで、SQLが実行できます。

TypeScriptの場合

  • TypeORM
  • Prisma
  • Sequelize

などがあります。

これらのORM(ライブラリ)を導入して、CRUDなどのアプリケーション上での操作を行ったり、Modelの定義(テーブル定義)などを行っていくと、徐々にSQLの概念が掴めてきたり操作に慣れてきます。

  • LVLPATHおすすめORM

image

https://www.prisma.io/docs/getting-started

Prismaはドキュメントも綺麗で読みやすくて勉強にも使いやすいので、LVLPATHでは推奨しています。

補足: ORMのドキュメントでSQLに関する基本的な部分を学習する

NoSQLとRDSで多少違いますが、基本的にはドキュメントにindexとかuniqueとかuuidとかmigrationとかrelationとかそういったベーシックな部分は解説されてることが多いです。

アウトプットベースで実際にORMを使いながら、不足している知識をドキュメントを読んだり、ChatGPTに聞きながら進めていきましょう。

STEP2: 同時並行で素のSQLのインプットも行う(必要になるため)

ORMを使いながら素のSQLでの操作も少しずつ必要になるケースが多いです。

データ不整合が起こってしまった場合などに手動で修正するなど、手動でユーザーの特定のcolumnを変更するなどのケースです。

その際に素のSQLもインプットして実際に使っていきましょう。

素のSQLの勉強には、w3schoolを参考にするのがおすすめです。

image

https://www.w3schools.com/SQL/deFault.asp

w3schoolはすごくシンプルで最小単位で区切られているのでSQLの文法を勉強する時にはすごく使いやすいです。

*全文法を抑える必要はないです

STEP3: 実務ベースで使うことでSQLに関する技術力を向上させる

STEP1とSTEP2は主に実務前にやる作業です。

実際に実務に入ってからは実務ベースでSQLを使っていくことでSQLやデータベースに関する技術力は向上していきます。

実務ではなんらかのタスクをベースに、不明点を適宜調べながら進めることになるので、強制的にインプット&アウトプットが行えます。

✅ SQLで最低限抑えたい概念

image

ここに書かれていることは最低限必要な部分かつベースになる操作や概念なので、一気に抑えてしまうのもおすすめです。

https://www.w3schools.com/SQL/deFault.aspなどを参考にしながら、ローカルのMySQLなどで素のSQLで実際に操作を行ないながら一気に勉強してしまっても大丈夫です。

1: Database, table, row, column

  • database
  • table
  • row
  • column

2: 基本的なCRUD操作

  • select
  • update
  • insert
  • delete

3: Relation

  • one to one
  • one to many
  • many to many

4: Join

  • left join
  • inner join

5: Index, Unique

  • single index
  • multiple columns index
  • unique

6: Migration

  • migration up
  • migration down

✅ SQLを抑えるコツ

image

コツ1: 基本的にはアウトプットベースで学習する

SQLもプログラミング言語やフレームワークなどと同様に、使っていると理解が深まって使えるようになる側面が大きいです。

この深さと網羅性が担当する領域によって変わってきます。

  • フロントエンド: パフォーマンスがある程度意識できていて基本的なSQLが書ければOK
  • バックエンド(インフラ含む): パフォーマンスを意識した基本的な部分 + より深い知見が必要

本などを使って勉強して網羅することによってできるようになるわけではないので、実務などのアウトプットベースで実際にSQLを使っていると、SQLに関する技術力が向上してくるようなイメージです。

コツ2: 適宜不明点のインプットを行う

ドキュメントでもいいですし、ChatGPTに聞くでも大丈夫ですが、SQLは文法以外にも概念のようなものが多少あるので、そこを適宜インプットしていきましょう。

✅ 具体的なアクション

  • PrismaなどのORMを導入する
  • 実際にアウトプットに必要な箇所のORMを使いながら適宜不明点を調べながらアウトプットベースで学習をする
  • 素のSQLを実際に目的のための手段として勉強して手を動かして打ち込んでいく
    • (全部網羅するのは不可能なので、必要になった分だけインプットを行いましょう)
      • テーブルのデータを集計したい
      • Count, Sum, Avgなどを学ぶ
    • 部分一致でテーブルを探したい
      • like句のインプットをして打ち込んでみる
お問い合わせ