皆さんはSQLの練習にどのような方法を使っていますか?
初心者の方は何から手を付けるべきかわからないまま色々と試行錯誤を繰り返し時間を浪費しているかもしれません。
もしかすると継続して学習できるかどうかもわからない段階で、高い授業料を払おうとしている方もいるのではないでしょうか?
そこで今回は、「無料で出来るSQLの練習」と題して、面白いサイトを見つけたので皆さんにご紹介したいと思います。
完全無料で登録も無し、当然怪しいインストールも不要の必要のないサイトなので、安心してください!
SQL Boltとは
SQL BoltとはSQLを練習問題形式で学べる学習サイトです。
英語のサイトなので英語が読めないと利用できないと思われがちですが、完全無料で登録不要、リアルタイムに反映されるSQLエディタも実装されているため、誰でも利用できます。
問題も英語で書かれていますが、簡単な英語のみなのでGoogle翻訳などを利用すれば大まかな問題の意味は解ると思います。
また冒頭でも触れましたが、当記事では解りやすく翻訳を試みていますので、無駄な労力を費やす必要なく練習に打ち込めます。
回答欄はサイトの下の方に次の図のような箇所がありますので、そちらに入力していきます。
内容と翻訳
それでは早速練習問題に移りましょう。
勝手ながら筆者が問題の翻訳を施しましたので、英語がわからないという方はこちらの翻訳を基に回答してみてください。
SQL Lesson 1:SELECT queries 101
- 各映画の「タイトル(Title)」を検索する。
- 各映画の「監督(Director)」を検索する。
- 各映画の「タイトル(Title)と監督(Director)」を検索する。
- 各映画の「タイトル(Title)と年(Year)」を検索する。
- 各映画の「全ての情報」を検索する
SQL Lesson 2: 制約付きクエリ (パート1)
- Idが6の行の映画を検索する。
- 2000年から2010年の間にリリースされた映画を検索する。
- 2000年から2010年の間にリリースされなかった映画を検索する。
- ピクサー映画を公開順に5つ検索する。
SQL Lesson 3: 制約付きクエリ (パート2)
- トイストーリー(シリーズ)を全て検索する。
- 監督が”John Lasseter”となっている映画を全て検索する。
- 監督が”John Lasseter”ではない映画を全て検索する。
- タイトルが”WALL~”となっている映画を全て検索する。
SQL Lesson 4: クエリの結果をフィルター / ソートする
- 映画監督を重複させずアルファベット順に列挙する。
- 最近公開された4本の映画を列挙する。(最新のものから順に)
- ピクサーの映画をアルファベット順に並べ、最初の5本を列挙する。
- ピクサーの映画をアルファベット順に並べ、6本目~列挙する。
SQL Lesson 5: SQLの復習: 単純なSELECTクエリ
- カナダのすべての都市とその人口を列挙する。
- アメリカのすべての都市を緯度を北から南に列挙する。
- シカゴから西に位置する全ての都市を西から東に列挙する。
- メキシコの最も大きな都市を二つ列挙する。(人口で比較)
- 3番目と4番目に大きい都市(人口で比較)とその人口を列挙する。
SQL Lesson 6: 複数テーブルを結合させる
- 各映画の国内売上(Domestic_sales)と海外売上(International_sales)を検索する。
- 国内より海外の方が売上が良かった映画を表示する。
- 全ての映画を評価(Rating)で降順にソートする。
SQL Lesson 7: 外部結合
- 従業員のいる建物を全て検索する。
- 全ての建物と収容力を検索する。
- 全ての建物と、各建物(空の建物を含む)の従業員の個別の役割を列挙する。
SQL Lesson 8: NULLについてのメモ
- 建物に割り当てられていないすべての従業員の名前と役割を検索する。
- 従業員がいない建物の名前を検索する。
SQL Lesson 9: 数式を使用したクエリ
- 全ての映画と合計売上を100万ドル単位で表記した値を列挙する。
- 全ての映画と評価をパーセント表記した値を列挙する。
- 偶数年に公開された全ての映画を列挙する。
SQL Lesson 10: クエリの集計 (パート1)
- スタジオへの勤続年数が最も長い従業員を検索する。
- 各役割について役割ごとの平均勤続年数を計算する。
- 各建物の従業員の合計勤続年数を計算する。
SQL Lesson 11: クエリの集計 (パート2)
- スタジオのアーティスト数を確認する。(HAVING句なし)
- スタジオで役割毎の従業員数を検索する。
- エンジニアの合計勤続年数を検索する。
SQL Lesson 12: クエリの実行順序
- 監督毎に担当した映画の数を検索する。
- 監督毎の国内売上と海外売上の合計を検索する。
SQL Lesson 13: 行の追加
- 映画リストにスタジオの新作「Toy Story 4」を追加する。
- トイストーリー4が公開され絶賛された。評価は8.7、売上は国内で3億4000万、海外では2億7000万を達成。このレコードをBoxOfficeテーブルに追加する。
SQL Lesson 14: 行の変更
- バグズ・ライフの監督が間違っているため、”John Lasseter”に更新する
- トイストーリー2の公開年が間違っているため、1999年に更新する
- トイストーリー8のタイトルと監督が間違っているため、タイトルを”トイストーリー3″、監督を”Lee Unkrich”に更新する。
SQL Lesson 15: 行の削除
- このデータベースは大きくなりすぎています。2005年より前に公開されたすべての映画を削除してみましょう。
- Andrew Stantonがスタジオを去ったため、彼が監督した映画をすべて削除してください。
SQL Lesson 16: テーブルの作成
- 次のような列を持つテーブル「Database」を作成する。
–name データベースの名前を説明する文字列(テキスト)
–version このデータベースの最新バージョンの番号(浮動小数点)
– Download_count このデータベースがダウンロードされた回数を示す整数
このテーブルには制約はありません。
SQL Lesson 17: テーブルの変更
- 各映画が公開されたときのアスペクト比を格納するために、データ型がFLOATの”Aspect_ratio”という名前の列を追加する。
- 各映画が公開されたときの言語を格納するために、データ型がTEXTの”Language”という名前の別の列とを追加する。このときデフォルト値はEnglishにする。
SQL Lesson 18: テーブルの削除
- レッスンの最後に達しました。Moviesテーブルを削除して掃除しましょう。
- BoxOfficeテーブルも削除しましょう。
まとめ
今回は「SQL bolt」というサイトの紹介と問題の翻訳をしてみましたが、いかがでしたか?
プログラミングは海外の方が圧倒的に充実しているため、こういったサイトもまだまだあります。
日本では学習というと、ひたすら真面目に知識を詰め込むといった感じがしますが、海外では如何に軽い気持ちでフランクに習得できるかに重きを置いているような気がします。
Google翻訳など即時翻訳機能の付いたブラウザで沢山のサイトを探してみてください。色々な発見があるはずです!