プログラミングを学習中の方、プログラミング初心者の方の中にはSQLを学ぼうとしている方も多いかと思います。
SQLは簡単にいうとデータベースを操作するための言語です。たとえば通販サイトでは、販売する商品の情報やユーザーの個人情報、売上や日々のサイト閲覧数など、さまざまなデータを取り扱います。こうしたデータはデータベースに格納されて、必要なデータを取り出して表示したり、場合によっては追加・削除・修正なども行われます。
こうした操作をするのが、SQLという言語です。
今回は、このSQLを学ぶメリットやSQLを学べる学習サイトなどをご紹介します。
プログラミング初心者の方、エンジニアを目指している方、これからSQLを学ぼうとしている方の参考になればと思います。
SQLとは
SQLとは、簡単に言うとリレーショナルデータベース(RDB)のデータを操作するための言語です。SQLを使ってRDBMS(リレーショナルデータベースマネジメントシステム)に命令を出すと、必要なデータを格納したり、格納したデータを取得(表示)したり、データの削除や追加をすることができます。SQLにはいくつかの種類がありますが、中でもMySQLは最も多く利用されているオープンソースのRDBMSです。MySQLは無償でインストールでき、高速で使いやすいため企業でも個人開発でも幅広く使われています。
RDBでは、データの集まりを表の形で取り扱います。この表を「テーブル」と呼びます。またテーブルの中の一つ一つのデータは「レコード」と呼ばれています。
たとえば図書館で蔵書の書名やID、出版年などを管理をしているテーブルから、すべてのレコードのbook_idカラム、titleカラム、yearカラムの値を取得したい場合は以下のようなSQLを書きます。
SELECT book_id, title, year FROM book;
SQLが書けるようになると、仕事で「サイト訪問者数の推移を見たい」「毎月の売り上げを一覧表示させたい」といった場合も、すぐにデータを取得して閲覧できます。そのため最近はエンジニアだけなく、営業や企画、マーケティングなどさまざまな職種で需要が高まっています。
SQLを学ぶメリット
エンジニアを目指している人もそうでない人も、SQLを学ぶとさまざまなメリットがあります。エンジニアを目指して転職・就職をする際に役立つ
あらゆるプロダクトやサービスにとって、データは欠かすことのできない存在です。データベースとSQLは、ほとんどのIT企業で活用されているといっても過言ではありません。
そのためエンジニアを目指す人にとっては、プログラミングだけでなくSQLの知識も必須だと言えるでしょう。
エンジニアを目指してプログラミングの勉強をしている方は多いかと思いますが、さらにSQLの習得も並行して進めておくのがオススメです。
簡単なSQL文を実行できるようになる・依頼が的確にできるようになる
エンジニア以外の職種の人も、SQLを学ぶメリットはあります。
SQLの知識がないと、なんらかのデータがほしいときは毎回エンジニアに「とりあえずいつからいつまでのこのあたりのデータがほしくて…」といった依頼をするしかありません。
しかしプログラミング初心者やエンジニア以外の職種の人でも、SQLを学べば簡単なSQL文を自分で書いたり、すでにあるSQL文の条件を書き換えて実行したりすることができるようになります。
またSQLやデータベースに関する知識が身につくと、自社のデータベースになんのデータがどのような形式で蓄積されているかも理解しやすくなります。複雑な条件のデータ取得をエンジニアに依頼するときも、「この数値を分析したくてこんな仮説を立てているので、この期間のこの企画に関するこういう情報を取得できますか?」などと的確な依頼ができるようになるでしょう。
自分で数値の抽出から分析までができる
データ取得がエンジニア任せだと、エンジニアに依頼をし、開発の手を止めて取得してもらい、足りないデータがあればまた依頼し……といった感じで肝心のデータ分析までに時間がかかってしまいます。
自分でSQLを書いたり実行したりできるようになれば、「データが不足している」「想定していたデータと違う」といったことは起こりません。また「今月だけこのデータも見たい」といった場合も、必要に応じて対応できるようになります。
さらに自分の仕事に関連するなんの数値が可視化されているのか、ログがどこまで残っているのかなどといったことも知っておくと、数値の分析がしやすくなるでしょう。
SQLを学べる学習サービス
paizaラーニングの新・SQL入門編
初心者オススメ度:★★★★★
paizaラーニングのSQL入門編では、動画講座と演習問題を使って初心者でも気軽にSQLを学ぶことができます。
講座ではあらかじめ構築済みのDBとSQL文のオンライン実行環境をブラウザ上で操作できるため、初心者でも環境構築の手間をかけずにSQLを習得できます。
実際にpaizaの社内でも、SQLを使った経験のなかった営業やディレクターがこの講座でSQLを学び、自分でSQL文を書いたり既存のSQL文の条件を修正してデータを取得したりといった作業ができるようになっています。
動画は一回数分程度のチャプターにわかれているため、「仕事の合間に少しずつ学びたい」「プログラミングの知識もSQLの知識もまったくない」という未経験者の方にもオススメです。
こんな人にオススメ!:プログラミングやSQLに関する知識がまったくない・実行環境を自分で作るのは難しい・隙間時間に少しずつ学びたい
Progate
初心者オススメ度:★★★★★
Progateはイラスト中心のスライドを見たりオンラインエディタで問題を解いたりしながらプログラミングを学べる学習サービスです。見本や解説を見ながら問題に挑戦できるので、SQL初心者でも無理なく学習を進められます。
SQLの学習コースは5つあり、SQLの使い方とデータベース操作の基本が学べます。
こんな人にオススメ!:スライドを見ながら学びたい・実行環境を自分で作るのは難しい
SQLZoo
初心者オススメ度:★★★★☆
SQLZooはブラウザ上でSQL問題に挑戦できるSQLの学習サイトです。もともと英語で作られているサイトですが、日本語・中国語にも対応しています。
問題は「SELECT basics」から始まって「SUM and COUNT」や「JOIN」、さらに複雑な応用問題など複数用意されていますので、自分のレベルに合う問題から始めることができます。ブラウザ上で気軽にSQL問題を解いてみたい、とにかくいろいろな問題を解いて練習したいという方にオススメです。
こんな人にオススメ!:自分にあったレベル感の問題に挑戦したい・とにかくいろいろなSQL問題を解いて練習したい
SQLBolt
初心者オススメ度:★★★★☆
SQLBoltもブラウザ上でSQL問題に挑戦できる学習サイトです。18のチュートリアルを通して、実行結果を見ながらSQLの基礎的な文法が学べます。
対応言語は英語のみとなっています。チュートリアルはSQL初心者でも無理なく解けるような簡単な問題から始まるため、練習問題をたくさん解きながら学びたい人、英語に抵抗がない人にオススメです。
こんな人にオススメ!:英語OK・簡単な問題から少しずつレベルアップを目指したい
SQL攻略
初心者オススメ度:★★★★☆
SQLの基礎に関する解説を読んだあとに、実習として問題に挑戦できるサイトです。SELECT文、ソート文といった基礎から条件結合や副問合わせといった少し複雑なSQLまで学べます。
たくさん問題を解きたい人や深く学びたい人には少し物足りないかもしれませんが、基本を素早くさくっと学びたい人やほかの問題集などとあわせて学びたい人にオススメです。
こんな人にオススメ!:短時間で基本を学びたい・教材はシンプルなほうが好き
SQLの練習ができる問題集
レベルアップ問題集 SQL
初心者オススメ度:★★★★★
paizaラーニングでは、レベルアップ問題集でSQLの練習問題を公開しています。レベルアップ問題集は、自分のレベルにあわせてたくさんの問題に何度でも挑戦できる練習問題集です。
なおSQLのレベルアップ問題集はpaizaラーニングの新・SQL入門編に対応した内容となっています。SQL初心者はまず新・SQL入門編を受講した上で、新・SQL入門編02ドリルから挑戦するのがよいでしょう。
新・SQL入門編02ドリルでは、たとえばこのような問題が出題されます。
注文履歴が、ordered テーブルに保存されています。 ordered テーブルの形式は次の通りです。 # カラム名 データ型 内容 1 ordered_id 整数 (int) 注文の通し番号 2 datetime 日時 (datetime) 注文がおこなわれた日時 3 bill 整数 (int) 注文の合計金額 注文履歴から、注文の合計金額をすべて取得してください。
レベルアップ問題集自体は新・SQL入門編を受講していない人でも自由に解くことができますので、すでにSQLの基礎は学習済みの方やとにかく練習問題をたくさん解きたい人にもオススメです。
こんな人にオススメ!:講座受講と練習問題で確実にスキルを身につけたい・すでにSQLの知識はあるので練習問題をたくさん解きたい
SQLを学べるゲーム系コンテンツ
電脳少女プログラミング2088-壊レタ君を再構築-
初心者オススメ度:★★★☆☆
西暦2088年。かつての幼馴染は機械兵器化され戦争の道具となった。終戦後、返ってきた彼女は、心も、記憶も、身体もすべてを失っていた。彼女を唯一救える方法はプログラミングだけだった。機械化少女の心をコードで取り戻せ──。
電脳少女プログラミング2088-壊レタ君を再構築-は、プログラミング問題とSQL問題を解きながらストーリーを進めていく学習ゲームです。
問題に挑戦すると、18通りの性格が解答コードにユニークなフィードバックを行います。ポジティブな励ましや的確な改善アドバイスを通じて、独学でも楽しくプログラミングとSQLが学べます。
こんな人にオススメ!:セカイ系の作品が好き・フィードバックを受けたい・SQLと同時にプログラミングも学びたい
異世界ニートエンジニア英雄になる。
初心者オススメ度:★★★☆☆
異世界ニートエンジニア英雄になる。は、異世界に転生してしまった主人公を育成して、魔王を討伐する育成ゲームです。
訓練(問題への解答)を通して、主人公のアルゴリズム・データ構造・処理速度・コード量・SQLという5つの能力を育成します。キャラクターの育成方針や自身のスキルに応じて問題の種類や難易度が選択でき、問題を解けば解くほど能力が向上します。SQLとプログラミングを学びながら、能力アップを目指しましょう!
問題に正解するなどのミッションをクリアすると、装備アイテムを獲得できます。アイテムによってはキャラクターの見た目が変化するだけでなく、能力をより多く獲得できる効果もあります。
こんな人にオススメ!:異世界転生ものが好き・着せ替えが好き
エンジニア騎士とクエリの魔女
初心者オススメ度:★★★☆☆
エンジニア騎士とクエリの魔女は、異世界に勇者パーティーとして召喚された新人ITエンジニアの男女が剣(コード)と魔法(SQL)を使って冒険を進めていくゲームです。
マップを開くと各地にコードを書いて解く問題とSQLを書いて解く問題が点在しており、問題に正解すると新たな装備を獲得できます。
また問題に正解するなどのミッションをクリアすると装備アイテムを獲得でき、自由にカスタマイズができます。
こんな人にオススメ!:ファンタジーな世界観が好き・着せ替えが好き・冒険系のゲームが好き
SQLを学んでみよう
今やSQLはエンジニア以外のさまざまな職種の方にも、数値分析などに役立つスキルとして需要が高まっていますので学んでおいて損はないでしょう。プログラミングを学んだことがない方は「難しそう…」と思うかもしれませんが、すでに運用中のDBから特定のデータを取ってきて表示させるような基本のSQL構文は、そこまで難易度の高いものではありません。
まずはオンライン上の環境でSQLを書いて実行し、「どう書くとどんなデータが表示されるのか?」といったことを試してみると、気軽に学習を始められるかと思います。
初心者の方には、paizaラーニングのSQL入門講座がオススメです。
「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。
詳しくはこちら