今回はこういった方向け。
「ひたすらSQLを書いて練習したい人」におすすめのWebサイトを4つご紹介します。
SQLの練習ができるWebサイト4選【初心者向け】
今回紹介するSQLの練習ができるWebサイトは以下の4つです。
TECH PROjin
TECH PROjinはSQLの問題が75問掲載されているWebサイトです。
「力試しシリーズ」と「基礎力チェックシリーズ」に分かれており、さらに星の数で難易度も可視化されているので、自分のレベルに合った問題から進めていくことができます。
また、実際に問題で使用するDBのデータ(worldcup2014.sql)も用意されているため、環境さえ作ることができれば実際に手を動かして問題を解くこともできます。
今回はDockerを使ってサクッとSQLを実行する環境を作る手順をご紹介します。
以下の5ステップです。
- データをダウンロード&解凍する
- ディレクトリにデータを配置する
- docker-compose.yamlを作成する
- コンテナを立ち上げる
- クライアントツールでコンテナと接続する
1. データをダウンロード&解凍する
まずはTECH PROjin内の「worldcup2014.zip」から問題に使用するデータ(zipファイル)をダウンロードします。
ダウンロードが終わったら解凍してworldcup2014.sqlを用意します。
2. ディレクトリにデータを配置する
任意のディレクトリの下にdbディレクトリを作成し、その下に先ほど解凍したworldcup2014.sqlを配置します。
次に作成するdocker-compose.yamlも含めると、最終的なディレクトリ構成は以下のようになります。
3. docker-compose.yamlを作成する
次に、docker-compose.yamlを作成し、以下を記述します。
version: "3" services: db: image: mysql:5.7 ports: - 3306:3306 volumes: - ./db:/docker-entrypoint-initdb.d environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: database MYSQL_USER: user MYSQL_PASSWORD: pass
4. コンテナを立ち上げる
以下のコマンドを実行してコンテナを立ち上げます。
docker-compose up -d
docker-compose ps
で、以下のようにStateがUpになっていたらOKです。
5. クライアントツールでコンテナと接続する
あとは作成したコンテナに繋ぐだけです。
Sequelの場合、以下のように接続情報を設定することでDBコンテナと接続できます。
接続後に以下のようにテーブル一覧が表示されたらOKです。
あとはひたすらSQLを書くのみ!
Progate
プログラミング学習サービスのProgateでもSQLの練習をすることができます。
Progateの場合は、ひたすらSQLを書くというよりは、SQLの教材で概念を学んだ後に、実際に書いて実践する感じです。
まだSQLの基礎に自信がない人におすすめです。
SQLBolt
SQLBoltはその場でクエリを書きつつSQLの実践ができる教材です。(環境構築は一切不要)
特徴は書くクエリの結果がリアルタイムで反映される点です。
自分が書いたクエリがその場でダイレクトに反映されるので、イメージは非常に掴みやすいと思います。
ただ、英語で書かれてあるのと、クエリを書くところのカーソルの位置が若干おかしくて書きづらいのが難点です。。
SQLZOO
SQLZOOもSQLBoltと同様にその場でクエリを書いて実行ができる教材です。
ただ、日本語対応していない項目があるのと、SQLBoltのようにリアルタイムで結果の反映はされません。
書いたクエリを実行して正解かどうかを判定する形です。
素晴らしい教材なのですが、個人的には上3つの教材の方が使いやすい気はしています。
個人的におすすめなSQL上達ルート
個人的には、以下の手順で勉強するのがおすすめです。
- ProgateでSQLの基礎を学びつつ実際にSQLを書いてみる
- TECH PROjinでひたすら練習を積む
- 余裕があればSQLBoltやSQLZOOにも取り組む
1,2,3のループを回してもいいですし、1の後に2を何度も繰り返すでも良いと思います。
SQLは、もちろん最初は概念を学ぶ必要はありますが、はっきり言って「慣れ」の部分も大きいです。
当たり前ですが、書かないことには一生書けるようにはならないので、ひたすら「自分で考えてSQLを書く経験」を積み重ねると良いでしょう。
SQLの練習ができるWebサイトまとめ【おわりに】
今回はSQLの練習ができるWebサイトとして以下の4つを紹介しました。
どれもとても良い教材なので、上手く活用してSQLのスキルを上げていきましょう。
最後まで読んで頂きありがとうございました。
2022年1月29日追記
以下のSQLabというサービスもSQLの練習には良さそうです。
ぜひ試してみてはいかがでしょうか?