「SQLのテスト」と言っても、その意味合いには次の2つが考えられます。
- 検証としてSQLテスト
- スキルを確認する意味でのSQLテスト
そこでこの記事では、上記それぞれのパターンにおけるSQLテストについて解説します。
SQLにおけるテスト(検証)
作成したSQLが正しく動作するか、バグ・不具合を作り込んでいないかなどを確認する際にSQLテストは必要です。
では、どのようにテスト方法を考えていけばよいのでしょうか。
結論を言ってしまうと、理想は該当SQLですべてのパターンを洗い出し、そのすべてのパターンをテストすることです。
簡単なサンプルで説明します。例えば、次のようなテーブルがあるとしましょう。
■user_listテーブル
id | name | sex | age |
---|---|---|---|
1 | Sasaki | female | 26 |
2 | Ikeda | male | 34 |
3 | Ueki | male | 28 |
このテーブルの sexカラム に対して、次のSQLを実行するとします。
SELECT* FROM user_list WHERE sex = 'female';
この場合、次の3パターンでテストする必要があります。
- sex が 「female」
- sex が 「female 以外」
- sex が「NULL(NULL許容の場合)」
sex カラムに「female」と「male」しか入らないように設定していれば、
- sex が 「female」
- sex が 「male」
をテストしましょう。
SQLのテストができるツール
テストの実行結果を実際に操作して確認するのは少し手間に感じる人もいるでしょう。
そんな時にSQLのテストができるツールを活用すると便利です。
例えば「SQL Fiddle」は、Web上でSQLを実行テストできるツールです。
My SQL や Oracle11g などの主要なDBエンジンがそろってます。
画面左側の入力ボックスに「テーブルの作成」と「データの挿入」を行い、右側の入力ボックスに実行したいSQLを記述します。
この状態でSQLを実行すると、実行後の結果が表形式で表示されます。
このように、簡単にSQLの実行結果が確認できるので、テストケースだけ考えて実行をWeb上で行うと便利かもしれません。
SQLにおけるテスト(スキルチェック)
「SQLのテスト」に関して「自分のスキルをチェックしたい」という目的のテストを検討している人もいるかもしれません。
SQLの知識が身についているかテストするには大きく分けて次の2つの方法があります。
- 書籍・参考書でのテスト
- Webサイトでのテスト
それぞれの方法でおすすめのものを紹介しますね。
SQLのテストができる書籍
まずは、SQLのテストができる書籍について紹介していきます!
スッキリわかるSQL入門 第2版
『スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリシリーズ)』は、SQLの基礎を学ぶのにおすすめな書籍です。
SQL以外でも、この「スッキリシリーズ」は基礎を学ぶのに最適な参考書で執筆者も愛用しています!
先生と生徒が会話形式で学習を進めたり、解説がわかりやすいのが大きな特徴です。
また、知識を確認するためのドリルがついており、これがSQLテストにぴったりでしょう。
ただ参考書を読んで知識を習得するだけではなく、演習をこなした上で学んだ知識が身についているか確認できます。
書き込み式SQLのドリル 改訂新
『書き込み式SQLのドリル 改訂新版』は、小学校の頃に使っていた漢字ドリルや計算ドリルのような感覚で取り組める一冊。
- データベースの基礎知識の確認
- 実習環境を構築するための導入セクション
- データ操作言語に関する解説
- データ定義言語に関する解説
上記のように一から順番に学習が進んでいきます。
データ操作言語に関する学習では、データの検索や登録、更新、削除といった内容が学べます。
基礎的なSQL文からサブクエリを使用するものまで、手順に沿って構造がしっかり理解できるよう組み立てて学習可能です。
学習内容はドリルでテストできるので、実際に手を動かしながら知識を確認したい人におすすめです。
改訂第3版 すらすらと手が動くようになる SQL書き方ドリル
『改訂第3版 すらすらと手が動くようになる SQL書き方ドリル』も実際に手を動かしてSQLが学べる書籍です。
本書には演習ソフトがついており、ゲーム感覚でSQLの基礎知識が学べます。
例えば、SQL実行時に「正しいSQLの実行結果」と「実際に入力したSQLの実行結果」を比較して出してくれるため、SQLの実行を間違えた場合にどこが問題だったのかがわかるようになっているのです。
また、PostgreSQL、MySQL、Oracle、SQL Server、Amazon Aurora、Google Cloud SQL、Amazon RDSなど、さまざまなDBMSに対応しているので非常におすすめです!
参考書を読み進めるというよりは、学習ソフトで実際にSQL文を実行したい人におすすめの書籍と言えます!
SQLのテストができるWebサイト
では次に、SQLのテストができるWebサイトについて見ていきましょう。
SQL攻略
「SQL攻略」は、Webで実習しながらSQLの学習ができるサイトになっています。
「SQL攻略」と「正規化攻略」の2カテゴリがあり、SQL編ではSQLの基本から入れ子の問合せまでの16章が用意されています。
SQLを一から学習したいエンジニアや、情報処理技術者試験を受けようと考えている人におすすめです。
各セクションごとに演習問題が用意されており、SQL文を記入して実行することで正しいSQL文が書けているか確認できます。
SQLの基礎知識をチェック!SQLの理解度テスト(1)
「SQLの基礎知識をチェック!SQLの理解度テスト(1)」は、エンジニア就活が提供しているSQLテストのページです。
SQLの基礎知識が確認できるよう、選択肢から正しい答えを回答するテストになっています。
SQLの基礎知識が定着しているか確かめたい時におすすめのサイトです。
また、「SQLの基礎知識をチェック!SQLの理解度テスト(2)」も用意されているので、ぜひ挑戦してみてはどうでしょうか?
Progate
「Progate」は、スライド資料とオンラインエディタで実際に操作しながら学習できるサイトです。
SQL以外のプログラミング言語も扱っています。
初学者にもわかりやすい説明になっているので、無理なく学習を進められるでしょう!
SQLコースは現在5コースあり、基本的なデータベース操作を学べます。
Progateには「道場コース」が用意されており、基礎知識を学習後に実践的な演習問題に取り組めます。
身につけた知識をすぐにアウトプットできるので、初学者にもおすすめできるサイトです。
ドットインストール
「ドットインストール」は、1回約3分の動画で学習できるプログラミングサイトです。
Progateと同じように、SQL以外のプログラミング言語も幅広く扱っています。
ドットインストールのSQLの講座には、MySQLやPostgreSQLなどさまざまなDBMSの学習講座があります。
テストというよりはインプットメインのサイトですが、動画を見ながら実際に手を動かすことでSQLの知識・スキルが身につくでしょう。
paizaラーニング
「paizaラーニング」もドットインストールと似たように、1回約3分のレッスン動画とオンラインエディタを使った学習サイトです。
オンラインエディタを用意しているので、環境構築が必要ないのが初学者にとってはメリットでしょう。
SQLの講座は、無料で見られるコンテンツと有料コンテンツがあります。
TRYCODE
「TRYCODE」は、プログラミング学習ができるサイトです。
「TRYCODE:SQL」コースでSQLの学習ができます。
動画と解説、演習があるのでSQLを総合的に学べるでしょう。
まとめ
SQLのテストについて紹介しました。
単体テストなどデータベースの挙動を確認する際は、想定されるSQLをひとつずつ検証するのがベストです。
ツールや自動化できる製品も用意されているので、状況に合わせて検討してみてください。
スキルチェックのテストについては、書籍やWebブラウザなどさまざまなもので取り組めます。
ぜひあなたに合った書籍、サイトを見つけてテストしてみてください!