楽しく学ぶ SQL 入門 演習問題
１．ＳＱＬの基礎

２．Select 文の基礎
【問題】
表中の(ア)はテーブル Area の全レコードです。それを参考に、検索結果が以下の(ア)〜(カ)となるような SQL 文を考えなさい。また、MySQL で実際に確認しなさい。
(ア)

(イ)

(ウ)

(エ)

(オ)

(カ)

(応用)他のテーブルでも、同様の SQL を発行してみなさい。
【問題】
Select 文を用いて、以下の演算を行い、結果を求めなさい。
(MySQL には dual テーブルは無いため、from 以下を省略することで、同様の処理を行うことができる)(ア)

１＋３×３(イ)(１＋３)×３(ウ)６÷３×３(エ)４÷３(オ)

4.0÷３

1

Copyright© 2004 YODOQ Co., Ltd. All Rights Reserved.

３．データの制限及びソート【問題】
テーブル Player に格納されている選手の情報(全項目)を、以下の条件で検索しなさい。
(ア)

全選手のデータ(イ)

阪神タイガースの選手(チーム番号が”04”)(ウ)

ポジションがキャッチャー(ポジション番号が”02”)(エ)横浜ベイスターズのピッチャー(チーム番号が”01”でポジション番号が”01”)(オ)

巨人 VS 阪神戦に出場可能性のある選手(チーム番号が”02”あるいは”04”)(エ)

背番号が”２”の選手(オ)

背番号が”20”番台の選手(カ)

背番号に”２”が含まれる選手(キ)

背番号が”5”以上”15”以下の選手(ク)

背番号が”5”か”8”か”10”の選手(ケ)

背番号が 2 桁ではない選手(コ)

広島東洋カープとヤクルトスワローズ以外の選手(チーム番号が”03”, ”06”ではない)(サ)

全選手のデータ(背番号の昇順で)(シ)

全選手のデータ(背番号の降順で)(ス)

全選手のデータ(背番号の降順で。背番号が同じ場合はチーム番号の昇順で)(セ)

横浜ベイスターズの捕手(チーム番号”01”でポジション番号”02”)または、中日ドラゴンズの一塁手(チーム番号”05”でポジション番号”03”)

４．単一行関数【問題】(ア)

関数 ABS(x)を用いて、−１２３の絶対値を求めなさい。

(イ)

関数 MOD(n, m)を用いて、１３を３で割った余りを求めなさい。

(ウ)

関数 ROUND(x)を用いて、１２．３を四捨五入しなさい。

(エ)関数 ROUND(x)を用いて、１２．６を四捨五入しなさい。

(オ)

関数ＰＩ()を用いて、半径が３の円の面積を求めなさい。

【問題】
(カ)

関数 CONCAT(x, y)を用いて、”あいう” と ”えお” を結合させなさい。

(キ)

関数 LENGTH(x)を用いて、アルファベットの文字数を求めなさい。

(ク)

関数 LTRIM(x)を用いて、”あいうえお” の左の空白を除去しなさい。

(ケ)

関数 RTRIM(x)を用いて、”あいうえお” の右の空白を除去しなさい。

(コ)

関数 TRIM(x)を用いて、”あいうえお” の空白を除去しなさい。

【問題】
(カ)

関数 CURRENT_DATE()を用いて、現在の日付を取得しなさい。

(キ)

関数 CURRENT_TIME()を用いて、現在の時刻を取得しなさい。

2

Copyright© 2004 YODOQ Co., Ltd. All Rights Reserved.

サイト http://www.rfs.co.jp/sitebuilder/sql/ 等を参照。
また、それらを使用して、テーブル Player 等の情報を検索しなさい。
５．結合
【問題】
(ア)

チームテーブルの「チーム名」と選手テーブルの「選手名」を表示(それぞれのチームコードで結合させる)(イ)

チームテーブルの「チーム名」とポジションテーブルの「ポジション名」と選手テーブルの「選手名」を表示(ウ)(ア)で、阪神タイガースの選手(チーム番号=04)のみを表示<<検索結果>>(ア)(イ)・・・以下、全選手

・・・以下、全選手(ウ)

3

Copyright© 2004 YODOQ Co., Ltd. All Rights Reserved.

６．グループ化【問題】(ア)

選手テーブルの背番号を全て表示させなさい(重複も表示)(イ)

選手テーブルの背番号を全て表示させなさい(重複は表示しない)

【問題】
(ウ)

選手テーブルに登録されている全選手の人数を求めなさい。

(エ)

野手成績テーブルに登録されている全選手の本塁打の平均を求めなさい。

【問題】
(オ)

読売ジャイアンツ(チーム番号=”02”)の野手の本塁打を降順(多い順)に並べなさい。

(カ)阪神タイガース(チーム番号=”04”)の野手の安打を昇順 (少ない順)に並べなさい。

【問題】
(キ)

セリーグの各チームの本塁打の合計を表示させなさい。

<<検索結果>>(ア)(イ)・・・以下、全背番号・・・以下、全選手
(オ)

(カ)

(応用)
上の(オ)(カ)で、背番号の代わりに選手名を表示させなさい。

4

Copyright© 2004 YODOQ Co., Ltd. All Rights Reserved.

７．副問い合わせ【問題】(ア)阪神タイガースの背番号 39 の選手と同じポジションの選手一覧を表示しなさい。

(イ)阪神の背番号 39 の選手と同じポジションの選手一覧を表示しなさい。

８．データの挿入、更新、削除、確定
【問題】
(ア)

Area テーブルに、AreaNo が１０で AreaName が沖縄であるレコードを挿入しなさい。
(また、select 文で AreaNo が１０で AreaName が沖縄であるレコードを検索し、正しく挿入されていることを確認しなさい。)(イ)

Player テーブルに、「阪神のピッチャーで背番号が４４のバース選手」を登録しなさい。
(誕生日を入力せずに、初期値が入力されていることを確認しなさい)(ウ)

あなたを好きなチームの好きなポジションの選手として、Player テーブルに登録しなさい。
(全ての項目を入力しなさい)(エ)BatterRecord テーブルに以下の確認結果を参考にレコードを挿入しなさい。

【確認結果】
(ア)

(イ)

(ウ)

(エ)

(応用)

Player テーブルに選手を追加し、BatterRecord テーブルや PitcherRecord テーブルに成績を追加しなさい。

5Copyright© 2004 YODOQ Co., Ltd. All Rights Reserved.

【問題】
(ア)

Area テーブルの AreaNo が１０のレコードの AreaNo を１１に更新しなさい。
(正しく更新されていることを確認しなさい)(イ)

上の問題(イ)で挿入した「バース選手」の誕生日を「2000 年 12 月 31 日」に更新しなさい。

(ウ)

Area テーブルの AreaNo が 01 と 02 の AreaName を「寒い地域」に更新しなさい。
(確認後、AreaNo が０１、０２のそれぞれのレコードの AreaName を北海道、東北に直しなさい)

(ア)

(ウ)

(イ)

【問題】
(ア)

Area テーブルの AreaNo が１１のレコード(沖縄)を削除しなさい。
(正しく削除されていることを確認しなさい)(イ)

Player テーブルと BatterRecord テーブルから、バース選手のレコードを削除しなさい。

(ウ)Team テーブルから、パリーグの全チーム(LeagueNo が 02)を削除しなさい。

９．トランザクション制御

6

Copyright© 2004 YODOQ Co., Ltd. All Rights Reserved.

10．テーブル(ア)

次の条件を満たすテーブルを、Create 文を用いて作成しなさい。

テーブル：Employee
列名

変数の型

デフォルト値

制約

EmpNovarchar (5)Primary Key

EmpNamevarchar(20)

Not Null

EmpAgeint(2)20

EmpBirthDay

Date

0000-00-00【”show fields from Employee”での確認結果】(イ)

テーブル Employee のフィールド名 EmpBirthDay を EmpBirth に変えなさい。

【”show fields from Employee”での確認結果】(ウ)

テーブル Employee のフィールド EmpBirth を削除しなさい。

【”show fields from Employee”での確認結果】

7

Copyright© 2004 YODOQ Co., Ltd. All Rights Reserved.

(エ)テーブル Employee にフィールド EmpAddress を追加しなさい。
(属性等は以下の確認結果を参照すること)【”show fields from Employee”での確認結果】(オ)

テーブル Employee を削除しなさい。

(応用) その他のテーブル操作(定義の変更)を行いなさい。また、実際にそのテーブルに対し、レコードの検索・挿入・修正・削除を行いなさい。
11．ビューの作成、削除

8

Copyright© 2004 YODOQ Co., Ltd. All Rights Reserved.