SQLの書き方を身につけるため、Chinookデータベースを使用し、SQLの総合演習を行う。
SQL文20問¶
tracksテーブル¶
TrackId、Nameを取得するSQL文を書け。TrackId、Name、AlbumIdを取得し、AlbumIdで昇順に並べ替えるSQL文を書け。TrackId、Name、AlbumIdを取得するSQL文を書け。ただし、AlbumIdが1のものだけを対象とする。TrackId、Name、AlbumId,Millisecondsを取得するSQL文を書け。ただし、以下の条件を満たすものとする。AlbumIdが1のものMillisecondsが200000以上のもの
Name、AlbumId、Composerを取得するSQL文を書け。ただし、Composerの名前に"Steve"が含まれるものだけを対象とする。TrackId、Name、MediaTypeIdを取得するSQL文を書け。ただし、MediaTypeIdが1または2のものだけを対象とする。(IN句を使用すること)それぞれの
AlbumIdごとに、トラックの数をカウントし、AlbumId、トラック数を取得するSQL文を書け。結果はAlbumIdで昇順に並べ替えること。TrackId、Name、GenreIdを取得するSQL文を書け。ただし、GenreIdが1、2、3以外のものだけを対象とする。(NOT IN句を使用すること)「Wild」で始まるトラック名を持つトラックの
TrackId、Name、AlbumIdを取得するSQL文を書け。「Honey」を含むトラック名を持つトラックの
TrackId、Name、AlbumIdを取得するSQL文を書け。
invoicesテーブル¶
BillingAddress、BillingCityを取得するSQL文を書け。ただし、BillingCityが"Chicago"または"New York"のものだけを対象とする。BillingAddress、BillingCity,Totalを取得するSQL文を書け。ただし、以下の条件を満たすものとする。BillingCityが"Chicago"または"New York"のものTotalが10.00以上のもの
InvoiceId、BillingAddress、Totalを取得するSQL文を書け。ただし、Totalが14.00以上かつ18.00以下のものだけを対象とする。(Between句を使用すること)BillingCountryを取得するSQL文を書け。ただし、重複を除外すること。
tracks, albums, artistsテーブル¶
ArtistIdが1のアーティストが作ったアルバムのTrackId、Name、AlbumIdを取得するSQL文を書け。Hint: 副問合せ、IN句を使用すること。tracksとalbumsテーブルを結合し、tracks.TrackId、tracks.Name、albums.Titleを取得するSQL文を書け。tracks.TrackId、tracks.Name、albums.Title,artists.Nameを取得するSQL文を書け。(JOIN句を使用すること)それぞれの
AlbumIdごとに、トラックの数をカウントし、albums.Title、トラック数を取得するSQL文を書け。結果はカウント数で昇順に並べ替えること。Hint:JOIN句とGROUP BY句を使用すること。上の問題の結果は,トラック数が
15以上のものだけを対象とするSQL文を書け。Hint:HAVING句を使用すること。アルバム名が
"Let There Be Rock"のアルバムに含まれるトラックのTrackId、Name、AlbumIdを取得するSQL文を書け。Hint: 副問合せを使用すること。