SQL演習問題
注:宿題というわけではないので提出は不要。質問は随時受け付けます。
簡単な検索
- すべての学生(student)の名前(stu_name)とGPA(gpa)の情報を得る。
- 学科が情報システム学科(dept_noが1)である学生(student)の名前(stu_name)と生年月日(birthdate)を得る。
- 性別(gender)が'男'である学生(student)のすべての属性を得る。
行の挿入
- 学籍番号が'100111',名前が'倉衣麻木',性別(gender)が'女',GPA(pga)が4.1,生年月日が'1982-10-28',学科がメディア情報学科(dept_no=3)である学生(student)を追加する。(なぜエラーが発生するかを確認すること)
- 学籍番号が'xxxxxx'(何か自分で適当に決める),名前が'真弓博満',性別(gender)が'男',GPA(pga)が3.9,生年月日が'1983-11-8',学科が知能情報学科(dept_no=4)である学生(student)を追加する。
- 名前が'落合明信',性別(gender)が'男'である学生(student)を追加する。
関係の定義
- サークルを表す関係circleを定義する。属性として,6文字のサークル番号(cir_no)と64文字のサークル名(cir_name)を持たせる。主キーはサークル番号とする。
- 学生のサークルへの所属を管理する関係belongを定義する。属性として,学生番号(stu_no)とサークル番号(cir_no)を持たせる。これらの属性はそれぞれ,関係studentや関係circleへの外部キーとする。
行の更新
- 学籍番号(stu_no)が'100111'の学生のGPAを4.3に変更する。
- 学籍番号(stu_no)が'100115'の学生の名前を'本村克己'に変更する。
- 学籍番号(stu_no)が'100143'の学生のGPAを1.2倍にする。
行の削除
- 学籍番号を指定して,「行の挿入」の2.で自分が挿入したものを削除する。
高度な検索条件の指定
- テーブルstudentの行を属性gpaが大きい順に並べる。
- テーブルstudentの行の内,属性genderが'女'でないものを得る。
- テーブルstudentの行の内,gpaが1.5以上3.0以下のものを得る。
- テーブルstudentの行の内,gpaが1.5を超え3.0未満のものを得る。
- テーブルstudentの行の内,dept_noが1または2のものを得る。
- テーブルstudentの行の内,属性stu_nameに'田'を含むものを得る。
- テーブルstudentの行の内,属性dept_noがNULLのものを得る。
統計処理
- テーブルstudentの属性gpaの最大値を得る。
- テーブルstudentの属性gpaの学科ごとの(属性dept_noごとの)平均値を得る。
- テーブルstudentの属性gpaの学科ごとの平均値が3.0以上の学科番号を得る。→導出表
関係の結合
- 関係studentと関係departmentの直積を得る。→導出表
- 関係studentと関係departmentの等結合を得る。→導出表
- gpaが3.0以上の学生の名前と,その学生が所属する学科名を得る。→導出表
副問合せ(SQLの入れ子)
- gpaが平均値以上の学生の名前とgpaを得る。→導出表
- 学生の学科ごとのgpaの平均値と学科名を得る。→導出表
Updated: 2009.5.7