独学文系エンジニアリングな日々

ITに関係なく日々いろんなエンジニアリングをアウトプット

【業務入門】プログラミング未経験でSQL言語が必要になった時のおすすめ勉強方法

f:id:sooriy25:20200701002405p:plain

急にSQL言語が必要になってしまった人のためにどのように勉強していけば良いでしょうか。


初心者を脱出するために必要な情報について触れています。

読んでみて ・未経験でSQLが活躍する現場に配属されてしまった
ベンチャー企業で働き始めたら、SQLが必要になった
・営業職だが集計が必要なためSQLが必要になってしまった

目次

SQL言語とは

そもそもSQLとはなんでしょうか。
インターネット上で扱う情報もどこかに貯めておかなければ必要な時にそのデータを扱うことができません。
しかし、ただ横並びに保存してもあとで探すのがとても大変です。
これを解決する為、データは関係性を持たせることで整理し、構造に応じて登録したり、情報を取得するために使われるのがRDB(リレーショナルデータベース)と言われます。
そのRDBで扱われるデータの操作(取得や登録)に必要なのがSQLです。

例)ログインページでの出来事
IDとパスワードを入力

ようこそ◯◯さん
(ニックネームが表示される)


と、〇〇さんは一度も入力してもいないのに出力されます。
これもデータが関係付けされているため表示されていたりします。

②勉強の流れ

2-1 データの関係性を勉強する

関係性を知らなければ、どんな人でもSQLを書くことはできません。
実際にSQLを書くのは大事ですが、まずはデータの関係性について理解しましょう。

ブログの記事とコメントの関係をすごく簡単に表してみます。

以下に注目してみてください  ・関連データの主従関係はどうであるか
 ・外部キーが何か

f:id:sooriy25:20200701000005p:plain
結果以下のようになります。
今回  データの関係:1(ARTICLE)対 多(COMMENT)
 外部キー:article_id

まだ先の話になりますが記事「営業の秘訣3選」のコメントがほしければこんなSQLで取得できます。
select * from comment where article_id =1;

これらをER図といいます。
まずは、この構造をいち早く掴むことが重要です。

もっと詳しく知りたい人は、RDB ER図などと検索してみてください。

2-2 具体的な勉強方法

スクールなどに通わなくても書籍や、学習サイトで十分会得できます。
実際に文法を勉強していく際は、学習用サイトを利用すればOKです。

・プロゲート prog-8.com
・ドットインストール
https://dotinstall.com/
・構文が載っているサイトをみる sql.main.jp

2-3 実践とリスク

色々勉強してもアウトプットしなければ意味がないです。
しかしながらSQLはデータを扱うので壊すと大惨事になります。

すぐに業務に入らなければいけない人は、他の人が使っていたSQLがあればそれを使ってコピー&ペーストでも良いので回数をこなしましょう。

いきなり触るのはチョット...という人は自分でデータの関係図(ER図)を作り、データベースを立ててみると良いと思います。

SQLを実行するまでの動作に慣れたら中身を確認する(何をやってるのか)余裕が出てくるはずです。

慣れてきたら、業務で使うデータの関係性を理解し、1つのSQLに完結させなくても良いので自分なりの解釈で「結果を出せるように」書いてみましょう。


ただし、本番サーバーでやるしかない場合は、以下を意識するようにしましょう。

気をつけること *データを更新するようなSQLを実行しない(INSERT,UPDATE,DELETE) * SELECTするのは良いが、検索量が絞られているか、インデックスは問題ないか。

1つ目はデータの不整合が起きる可能性
2つ目は検索でデータベースが重くなってしまい、接続している本番サービスに影響が出てしまう。
と言った危険性があります。


2つめなんかは、少し難しいのでエンジニアの方にSQLを添削してもらうというのもありだと思います。

おわりに

独学だからこそ気がつけたことなどを幅広く展開していく予定です。 今後はその経験から学んだ勉強法や改善法などを投稿し誰かのためになれば良いと思っています。
Twitterより気軽にご質問ください。