yatsusimnetcojpによるPixabayからの画像
こんにちは。倉内です。
ITエンジニアの方は、業務でSQLやデータベース(以下、DBと表記)の知識が必要になることが多いと思いますが、最初のうちはなかなか習得が難しいと感じるのではないでしょうか。
またエンジニア職以外でも「自分でSQLを書いてデータの抽出や分析ができたらいいのに…」と思っている方もいらっしゃいますよね。
ただ、SQLを試すために自分で環境を用意するのも大変ですし、どのように学べばいいか分からないという声もよく耳にします。
そこで今回は、SQLやDBを初めて学ぶ方はもちろん、セキュリティやDB設計、モデリングについても学べるコンテンツをまとめてご紹介します。
初めてSQLを学ぶ
初心者の方は、まずはオンライン環境で学べるサービスを利用するとよいでしょう。
paizaラーニングの「DB/SQL入門編」では、動画講座で学びながらブラウザ上でSQLを書いて実行することができます。以下の記事で講座の内容を詳しくお伝えしています。
データの抽出・追加・更新・削除など基本的なSQLの書き方は、自分で何度も書いてみて理解する必要があります。(もちろんつど調べてもいいのですが、よく使うものは覚えてしまったほうが楽です。)
以下の記事では、そのようなSQLの基本文法を定着させるための学習サービスを紹介しています。
練習問題でSQLの基本を身につける
さらにもっと理解を深めたい方へ、練習問題が多数掲載されている学習サービスを集めました。
上記の記事では演習課題が用意されている書籍も合わせて紹介していますので、本で勉強したい派の方はぜひ参考にしてみてください。
SQLを楽しく学ぶ
以下の記事では「もっと楽しく勉強したい…」「なかなか学習が継続できない…」という方におすすめのコンテンツを集めました。
特におすすめなのは「SQLZOO」です。穴埋めで答えていくクイズ形式になっていて、苦手な方が多いJOINや、使いこなせるとデータ分析に便利なSUMやCOUNTの問題も用意されています。
データベースについて学ぶ
SQLはある程度書けても、DB設計はまだあまり自信がない・経験がないという方もいらっしゃるかもしれません。
この記事ではDB設計の基本である、正規化や外部キーでの関連付け、設計時のアンチパターンなどが学べるサービスと書籍を紹介しています。
セキュリティと合わせて学ぶ
実務ではデータベースのセキュリティ対策は必須です。
paizaラーニングで公開している「攻撃手法から学ぶハッカー入門(Webセキュリティ入門編)」講座では、近年のセキュリティ動向からSQLインジェクションなどよくある攻撃手法を実際に試しながら学ぶことができます。
講座内容について、詳しくは以下の記事で紹介しています。
なお、SQLインジェクションについて、もう少し技術的な側面から解説している記事もありますので興味がある方はごらんください。
番外編:エンジニア以外がSQLを学ぶメリット
paizaでは非エンジニア職も営業やマーケティング、ユーザー分析のためにSQLを頻繁に書きます。
もともとはエンジニアに「こういうデータが欲しいので抽出してください」とお願いしていたのですが、せっかくなら誰でも使えるようにと講習会を開いたり、自ら進んで勉強したりして多くの社員がSQLを扱えるようになりました。(念のため補足ですが、本番DBのレプリカに対して操作しています)
以下の記事では、どのように学んだか、メリットがあったかなどをまとめています。
まとめ
SQLの基本から、データベース設計やセキュリティと合わせて学べるコンテンツを紹介してきました。
SQLは統一標準規格で標準化されているため、データベースの種類*1によって多少記述の違いはあるものの一度学んでしまえばほとんど同じように扱うことができます。
いつか学びたいなと思っていた方は、この機会にぜひ習得してみてください!
「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。
詳しくはこちら
そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。
詳しくはこちら
*1:RDBMSでよく使われているものには、Oracle Database、Microsoft SQL Server、MySQLなどがあります。