プログラミング、フリーダイビング、ブロックチェーンのブログ

プログラミング道場

これからエンジニアを目指す人のために、私が書いた本です^^
この本は「Kindle Unlimited」の30日間無料体験で読むのがオススメです。



エンジニアがSQLを勉強すべき理由【将来も使われ続けます!】

更新日:

記事の内容


最近、このツイートが30万回も見られました。
自分が思っていた以上に、多くの人がSQLに関心を持っていたようなので、もう少しこのツイートを深掘りしていきたいと思います。
Linuxについてはこちらの記事に詳細を書きました。

SQLとは何か?

SQLとはデータベース(DB)を扱うための言語の名前で、日本ではエスキューエルと呼び、海外ではシーコールと呼びます。
データベースとはデータの入れ物です。
データベースに馴染みがない方は、Excelを想像してもらうと、わかり易いかもしれません。
Excelも一種のDBです。

また、データベースにはいくつかの種類があります。

データベースの種類

  • Oracle
  • MySQL
  • PostgreSQL
  • SQL Server
  • SQLite

基本的な機能に変わりはないのですが、OracleとSQL Serverは有償で、MySQL、PostgreSQLとSQLiteは無料です。
そのため、あまりお金のないWeb業界ではMySQLやPostgreSQLがよく使われています。
特にMySQLの人気が高いように思います。

SQLはどのように使われているのか?

データベースはあらゆるサービスで、ほぼ100%使われています。
Facebook、Google、Amazon、クックパッド、Line、DeNAといった全ての会社で使われています。
そのため、DBを扱うためのSQLが使われていないWeb系の会社は、ほぼ無いと思っていいはずです。
クックパッドさんが研修で説明していた画像にもDBサーバがあることがわかります。
右側のサーバの、真ん中に「DB」と書かれています。

未経験者はO/Rマッパーを使いがち

これほど、どこでも必ず使われているSQLなのに、経験が浅い人達はSQLを避けがちです。
昔はSQLを避けることはできなかったのですが、最近はRailsやLaravelといったフレームワークがO/Rマッパーという便利なものを提供するようになったので、SQLを知らない人達もチラホラといるようです。
ちなみに、O/Rマッパーとはこういうものを指します。
このソースコードの裏でSQLが実行されています。

@user.save

SQLだとこんな感じになります。

INSERT INTO User()

O/Rマッパーを使った方が、直感的にわかり易いのは、よくわかります。
でも、O/Rマッパーだけを覚えるのはあまりよくありません。
なぜならば、O/Rマッパーは提供しているフレームワークごとに違いがあるからです。
O/Rマッパーを通して覚えると、全てのフレームワークごとに覚えなければいけません。
でも、裏で動いているSQLを覚えてしまえば、いくらでも応用が利きます。
そのため、私はSQLをシッカリと覚えることをオススメします。



データベースとSQLの知識が大事な理由

データベースとSQLの知識は、これから益々、大事になってきます。
例えば、こういったフォームを作成する時のことを考えてみましょう。

なんてことのない、ただのフォームです。

作りたいフォーム

  • 名前は、テキスト
  • 電話番号は、テキスト
  • 都道府県は、セレクトボックスで選択式

こういったWebアプリケーションを作るときの思考を考えてみましょう。

設計の順番

  1. カッコイイ、UI/UXを作る。
  2. データベースのテーブル設計をする
  3. プログラミング言語を考える
  4. フレームワークを考える
  5. 結果としてO/Rマッパーの種類が決まる

UI/UXは、いつ考えてもいいのですが、2番め以降は順番に考えていきます。
4番から先に考える人はいません。
データベースのテーブル設計をして、データ量や通信量をサラッと考慮したあとで他のことを考え始めます。
広告表示のようなスピードが優先されるアプリケーションで、Ruby on Railsは、あまり良いチョイスとは言えません。

またテーブル設計次第で、データを読み込む時間や発行すべきSQLの内容が変わってきます。
正規化してテーブルを2つに分けるか、あえて非正規してテーブルを1つにするというやり方もあります。
色々と奥が深いのが、データベース設計とSQLです。

さらに大事なことを伝えます。
将来的には、3から5の作業は減ってくると私は考えています。
つまり、プログラミング言語やフレームワークを決める必要はなくなります。
なぜならば、Firebaseのようなサービスが、データをそのまま返却するからです。

Ruby on RailsやLaravelといったフレームワークは、端的に言えばデータを加工する言語です。
それはつまり、新しい機能がデータを高速に加工してくれれば、Ruby on Railsは必要なくなるという意味です。

将来的なWebアプリケーション開発では、UI/UXを作成する人達とデータベース設計をする人達だけで、実装を行うことになるはずです。

この図でいえば、Webサーバ、Appサーバ、検索サーバは全て消えて、残るのはDBサーバだけになります。

SQLの勉強方法

これまで読んだところで、SQLを勉強しようと思った人もいるはずです。
そこでSQLとテーブル設計の勉強方法ができるサイトや本を紹介します。

Progate

まずはみんなが大好きなProgateをやりましょう。
Progateが苦手という方は、他の学習サイトでもかまいません。
将棋ソフトで有名な山本さんもProgateでSQLを勉強したそうです。

ドットインストール

ドットインストールのMySQL入門がオススメです。

paizeラーニング

PaizeのSQL入門編も勉強になります。

オススメの書籍

そして資格の勉強で基礎力をつけましょう。
Oracle Master Bronzeあたりを最初にオススメします。

その他にオススメの書籍は、この記事に書きました。

【MySQL入門】MySQLの学習でオススメの本

まとめ

この記事では、エンジニアにとってSQLは必須という話を書きました。
基本を身につけた上で、より実践的な勉強をしたい人は、基本情報処理試験の午後にあるデータベースの問題をやってみましょう。
そうしてSQLを理解した上で、O/Rマッパーを勉強すれば、よりレベルの高いエンジニアになれるはずです。
みなさんのSQL力が上達することを祈っています。

Good luck with your engineer life!

Linuxの重要性を知りたい人は、この記事を読んで下さい

エンジニアがLinuxを勉強すべき理由【LinuxはWeb業界では必須!】

10年以上働いてきたなかで、どの現場でも必ず必要だったのが、LinuxとSQLの知識です。PHP、Ruby、JavaScript、Javaといった言語は、現場次第でした。なので、初心者はLinuxとSQLを最初に勉強すべきだと思うんだけど、 ...

続きを見る

インフラエンジニアについて詳しく知りたい人は、この記事を読んで下さい

Linuxを使うインフラエンジニアの年収と需要

目次1 Linuxとは?2 Linuxの使われ方3 Linuxが使われている分野4 Linuxを使うインフラエンジニアの業務内容5 Linuxを生業とするエンジニアの年収6 インフラエンジニアの将来の需要7 インフラエンジニアの資格8 イン ...

続きを見る

データベースについて詳しく勉強したい人は、この記事を読んで下さい

MySQLやデータベースの学習でおすすめの本と動画【2024年最新】

目次1 動画教材2 初心者向け【入門編】3 中級者向け4 上級者向け5 データベースを自作したい人向け 動画教材 【22日間で学ぶ】SQL文、分析関数、テーブル設計、SQLチューニングまでMySQLで覚えるSQL実践講座 ▼ 興味がある方は ...

続きを見る

NoSQLについて詳しく勉強したい人は、この記事を読んで下さい

NoSQLの学習でおすすめの本と動画【2024年最新】

目次1 動画教材2 中級者向け 動画教材 MongoDB 入門 ー演習しながら学ぶクエリ操作 ▼ 興味がある方は、画像をクリック MongoDBを使ったデータ操作方法について Shell 操作を中心に実際に操作しながら学ぶことで使えるように ...

続きを見る

ブログの内容を復習をしたい人は、動画を見て下さい

子供向けのプログラミングに関する本を知りたい人には、この記事がオススメです

子供向けにおすすめのプログラミングの本【2023年最新】

目次1 入門編2 初心者向け3 おまけ 入門編 ルビィのぼうけん こんにちは!プログラミング 世界の20か国以上で翻訳されたベストセラー本です。 フィンランドの女性プログラマであるリンダさんが、自分の子供のために作った絵本です。 そのせいか ...

続きを見る


プログラミングスクールに行きたい人には、この記事がオススメです

都道府県別のプログラミングスクール紹介【2022年最新】

目次1 プログラミング言語2 まとめ プログラミング言語 北海道 東北 関東 中部 近畿 中国 四国 九州 沖縄 まとめ この記事では、都道府県別にプログラミングスクールを紹介しました。 近くに行ってみたいスクールがあれば、是非、連絡をして ...

続きを見る

-IT業界, 初心者向け

Copyright© プログラミング道場 , 2024 All Rights Reserved Powered by AFFINGER4.