気づいたこと 〜就職編〜
結局SQL
結局のところSQLは必要不可欠な技術です。
アプリケーションはPHPやJavaといったプログラミング言語を使用すると思いますが、データを扱う事のできる唯一の言語はSQLです。
そのため、SQLが出来るだけで重宝されます。
インフラにもバックエンドにも
IT業界の職種はかなり広いのですが、SQLはインフラとバックエンドに領域が被っている為、就職の選択肢がかなり広がります。
最近ではフロントの人間もSQLを使用する事があるそうです。←僕の友達情報
そのため、僕の考えとしてはSQLを基盤に学ぶことでデータを扱えるIT人材になれるので、どこを目指したら良いのか分からない人はとりあえずSQLについて学ぶべきです。
気をつけること 〜考え方編〜
実行順序
実行順序の理解は大切です。
呼ばれる順序が分かることで、目的に沿ったSQL文を書くことが出来ます。逆に言うと実行順序を意識していなければ意図しないデータを取得する事になってしまいます。
実行順は以下の通りです。
- FROM
- WHERE
- GROUP BY
- HAVING
- SELECT
- DISTINCT
- ORDER BY
SQLを学習した当初は欲しいデータに意識が向きすぎてしまいSELECT句が重要だと考えていました。
しかし、本当に欲しいデータを取得する場合は大本のテーブルから考えていく必要があります。
どのテーブルからどの条件でデータを取得していくのか意識してみてください。
書き方は十人十色
早めの段階で知りたかったのですが、SQLの書き方は十人十色です。
SQLを学びたての時は教科書通りに書かないといけないという意識が強く、柔軟性にかけたSQLを記述していました。(教科書通り→INはEXISTSで代替。サブクエリはできるだけ書かない。)
しかし実業務でデータを扱う際にはこんな書き方は良くないよって言われている書き方で実装しているSQLはよく目にします。
※1万レコードをUNIONで横持ちのデータを縦持ちに結合している仰天コードを目にしたことがあります。
Aを取得するという目的に対して、こうした方が良いよねって言う書き方はあるけど、正解はありません。
必要なデータを取得できないことが悪なので、慣れるまでは速さやキレイにデータを取得すると行った事は気にしないでおきましょう。
SQLに関しては知見が増えてくれば自然とどのような記述が最適なのかが理解できてくるので少しづつ努力していけば問題なしです。
データは超重要
データなんかより画面動かしたりする方がITっぽくてカッコいい〜!なんて思っていたのですが、ビジネスに必要なものはデータだと実務に入って気づきました。
結局の所、データを自分たちの使いやすい形でデータを取得or加工し、お金を生み出す形でデータを利用しているのがWebサービスの根幹だと思います。
データを扱えるって最強です。
気づいたこと 〜書き方編〜
インデントは揃えよう
SQLの経験が浅くても出来る事その1はインデントを揃えよう!です。
以下2つのSQL文を比較してもらえれば分かると思うのですが、格段に見やすさが異なると思います。
SELECT no , name FROM test
WHERE no > 4
AND name IN ('aiueo','test')
ORDER BY no;
SELECT no , name FROM test
WHERE no > 4
AND name IN ('aiueo','test')
ORDER BY no;
予約文字は大文字
SQLの経験が浅くても出来る事その1は予約文字は大文字で記述!です。
予約文字はSQLで設定されている単語の事を指します。
(例:SELECT.FROM,WHERE,JOIN,)
こちらも比較してもらえれば分かると思います。
select no,name from test
where no > 4
and name in('aiueo','test')
order by no
SELECT no , name FROM test
WHERE no > 4
AND name IN ('aiueo','test')
ORDER BY no;
目的を考える
SQLに慣れてきたら何のデータが欲しいのかを考える癖をつけていきましょう。
SQLは様々な記述方法でデータを取得することが出来るため、目的を明確にし必要なデータを取得する事を意識してください。
目的を明確にすることでどの記述方法が最適なのかが段々と分かってくるはずです。