SQLは深さの違いはありますが、フロントエンド、バックエンド、インフラエンジニアで必須になります。
ORM: Object–relational mapping
ORMというのはプログラミング言語でSQLを操作できるライブラリのようなものです。
素のSQLだと Select * from User のような書き方をする文法をプログラミング言語側の関数を実行することで、SQLが実行できます。
TypeScriptの場合
などがあります。
これらのORM(ライブラリ)を導入して、CRUDなどのアプリケーション上での操作を行ったり、Modelの定義(テーブル定義)などを行っていくと、徐々にSQLの概念が掴めてきたり操作に慣れてきます。
https://www.prisma.io/docs/getting-started
Prismaはドキュメントも綺麗で読みやすくて勉強にも使いやすいので、LVLPATHでは推奨しています。
NoSQLとRDSで多少違いますが、基本的にはドキュメントにindexとかuniqueとかuuidとかmigrationとかrelationとかそういったベーシックな部分は解説されてることが多いです。
アウトプットベースで実際にORMを使いながら、不足している知識をドキュメントを読んだり、ChatGPTに聞きながら進めていきましょう。
ORMを使いながら素のSQLでの操作も少しずつ必要になるケースが多いです。
データ不整合が起こってしまった場合などに手動で修正するなど、手動でユーザーの特定のcolumnを変更するなどのケースです。
その際に素のSQLもインプットして実際に使っていきましょう。
素のSQLの勉強には、w3schoolを参考にするのがおすすめです。
https://www.w3schools.com/SQL/deFault.asp
w3schoolはすごくシンプルで最小単位で区切られているのでSQLの文法を勉強する時にはすごく使いやすいです。
*全文法を抑える必要はないです
STEP1とSTEP2は主に実務前にやる作業です。
実際に実務に入ってからは実務ベースでSQLを使っていくことでSQLやデータベースに関する技術力は向上していきます。
実務ではなんらかのタスクをベースに、不明点を適宜調べながら進めることになるので、強制的にインプット&アウトプットが行えます。
ここに書かれていることは最低限必要な部分かつベースになる操作や概念なので、一気に抑えてしまうのもおすすめです。
https://www.w3schools.com/SQL/deFault.aspなどを参考にしながら、ローカルのMySQLなどで素のSQLで実際に操作を行ないながら一気に勉強してしまっても大丈夫です。
SQLもプログラミング言語やフレームワークなどと同様に、使っていると理解が深まって使えるようになる側面が大きいです。
この深さと網羅性が担当する領域によって変わってきます。
本などを使って勉強して網羅することによってできるようになるわけではないので、実務などのアウトプットベースで実際にSQLを使っていると、SQLに関する技術力が向上してくるようなイメージです。
ドキュメントでもいいですし、ChatGPTに聞くでも大丈夫ですが、SQLは文法以外にも概念のようなものが多少あるので、そこを適宜インプットしていきましょう。