結論から言ってSQLだけを学べるスクールというのは少ないです。
SQLはテーブルを操作する為のもので、テーブルは主にwebアプリなどで利用されるものの為、webエンジニア系のスクールの一環としてSQLもあるといったところが多いですね。
中にはSQLに特化したコースがあるスクールもあります。もしどうしてもSQLだけを学びたいんだという場合にはそちらを検討してみても良いでしょう。
基本がわかればOK
確かに色々難しい使い方もありますが、INSERT・UPDATE・SELECT・DELETEの4つの基本が何となくわかればSQLだけの学習なんてのはスキップしてもいいかなとは思います。
4つの基本については以下の記事を参考にしてみてください。
簡単に言えば以下の4つです。
- INSERT(データの新規登録)
- UPDATE(登録したデータの更新)
- SELECT(データの抽出)
- DELETE(データの削除)
入り口になるのはやはりINSERTですね。データが無ければ何も始まらないので。
ただしPHPMyAdminといったブラウザからデータベースを操作できるツールなどを使い、初期データはブラウザから登録することも可能です。
そしておそらく一番使うことになるのはSELECTですね。わかりやすい例で行くとショッピングサイトでカテゴリを選ぶとそのカテゴリの商品が表示されます。
あれは裏では選択されたカテゴリの商品をSELECTしてくるSQLが動いている形になります。
SELECTとWHERE
おそらく一番多く使うことになるSELECTですが、その際にWHERE句というものもセットで使うことになります。
これは条件を設定する為のもので、例えば先ほどの選ばれたカテゴリの商品を選択するためのWHERE句の例としては以下になります。
条件は日本語で設定することはほとんどないので、実際にはカテゴリIDを指定するようなSQL文になることがほとんどです。
ANDを使って条件を複数つなぎ合わせることもできますので、複雑な条件の抽出も可能になっています。
基本を勉強したら後は実践でOK
ある程度基本を理解したら、いきなりwebサービスを作ってみるという実践形式の学習方法で十分だと思います。
そうしないと実践ではどのようなSQL文を使うことになるかがイメージできないと思うので。
確かに事前に色々構文自体を知っておくのも有意義ですが、こんなことはできないんだろうかという時には都度調べればほとんど何とかなります。
SQLの学習だけに時間をかけるくらいなら、さっさと一つでもwebサービスを作ってみる方が良いと思います。
後々負荷についても意識することになります
最初はもちろん上記の通り基本的なことを学んで、あとは実践を通して色々身に着けていけばOKです。
ただし後々あまり自由にSQLを書いているととんでもない負荷のかかるSQL文を書いてしまい、最悪負荷でサイトが落ちたりします。
なのである程度作れるようになったらSQLについて深堀して学習するのは有りだと思います。
最初からSQLをマスターしようとするのは難易度も高いし時間効率も悪いのでやめたほうが良いというお話でした。
重いSQLの調べ方
スロークエリを出力して、思いクエリはどこなのかを調べるという方法があります。
スロークエリはデフォルトでは有効になっておらず、出力する場合には設定を変更する必要もあります。
このように重いクエリを改善してくと言う方法が一般的かと思います。もしくは単純に遅いページで使われているSQLを狙い撃ちで改善でもいいでしょう。
よくあるのはJOINでつなぎすぎて引っ張ってくる結果が重すぎるという事態を引き起こすことがあったりします。
まとめ
スクールももちろんいいですが、まずは簡単なwebサービスを作ってみて、どんなSQLを使うのかを把握するのも良いと思います。