LVLPATH

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

SQL

🔰 概要

フロントエンドでもバックエンドでもSQLは必須なので、ある程度のところまではやりましょう。

フロントエンドだとわりと定番のところだけでいいんですけど、バックエンドだとパフォーマンス意識しつつ結構コアな部分(複雑なクエリ)とかも書ける必要があります。

とりあえず最初はORMで素のSQLをwrapしたものでSQLの細かい書き方よりも概念や雰囲気を掴んで、実務ベースで素のSQLも書く必要性に迫られた時に書けるようにしていけばOKです。

ChatGPTあるんで、概念とかさえ分かってれば細かい書き方は枝葉でしかないです。

✅ とりあえずこれをやればOK

ORM

SQL全然よく分からなくても、prismaあたりのORM使ってウェブアプリのデータベース操作をしていきましょう。

その過程でデータ変更したくなった時とかに素のSQL書いたりする必要性が出てきたりリレーションとかマイグレーションとかの最初は少し難しく感じることも分かってきます。

先に全体像を学習してからよりも最初からORMでも問題なさげだと思う。

素のSQLの学習

w3schoolのMySQL Tutorialがおすすめで、とりあえず最低限の部分だけ読んで真似してローカルで動かしてみましょう。

  • Databse, Table, Column, Row
  • CRUD操作
  • Where condition
  • Left join, Innner join

↑ ここらへんをとりあえずなんとなく知ってるぐらいにまずはしたいです。

✅ Tips

① ORM使ってると素のSQLも書けるようになるっちゃなる

prismaとか使って書いてればSQLの雰囲気は掴めてきます。

https://www.prisma.io/docs/orm/overview/introduction/what-is-prisma

prismaじゃなくてもどれもやってること自体は同じなのでなんでもいいんですけど、prismaは結構モダンでドキュメントもキレイだし分かりやすいし勉強もしやすい。

② 使いながら勉強するのがGOOD

SQLに限らずなんですけど、実際に使いながら適宜インプットしていくのが効率が良いです。

網羅的にSQLを勉強してからSQLを使っていくんじゃなくて、SQL使いながら適宜インプットってスタイル。

③ 先に難しいことではなくて、できるだけ簡単なことで使うことを意識する

この流れで勉強しましょう。

  • 簡単なことを適宜インプットして使っていく ⇒ 不明点が出てくる ⇒ インプット ⇒ また使う ⇒ 不明点が出てくる ⇒ インプット ⇒ 使う

SQL1つ取ってもプログラミングは深めようとすれば深められ過ぎてしまうので、とにかくアウトプットベースで足りない部分を適宜インプットしていくスタイルでOK。

✅ その他情報

とりあえずMySQLでいいです。

PostgreSQLとかNoSQLとかも共通部分はかなり多いので、ベースができてくれば他のデータベース操作をやり始めてもそこまで苦戦はしません。

✅ Check list

  • brew使ってローカルにmysqlをインストールできてる
    • DockerでたててもOK
  • 用語と抑えておきたい概念(実際に使ったり人に具体例交えて説明できるようにしたい)
    • 基本
      • database, table, row, column
    • 基本操作
      • select, insert, update, delete
    • join
      • left joinとは?
      • inner joinとは?
    • relation
      • one to oneとは?
      • one to manyとは?
      • many to manyとは?
    • migration
      • migrationとは?
    • columnに対するオプション
      • indexとは何か?
      • uniqueとは何か?
      • primary keyとは何か?
      • uuidとは何か?
お問い合わせ