ビューの作成と使用----実験四SQL文の適用


一.実験目的
  • ビューの作成、変更、削除を把握します.
  • は、ビューを使用してデータにアクセスすることを把握する.

  • 二.実験内容
  • ビューを作成し、ビューを使用してデータにアクセスします.
  • は、作成されたビューによってデータを更新する.
  • は、作成されたビューを介してデータを問合せます.
  • 作成したビューを変更、削除します.

  • 三.実験手順
    実験一で作成したデータベースと基本表に基づき、実験二、三の基礎の上で、SQL文を用いて以下の要求を実現する.
    1.学生基本状況ビューSubS(学号、氏名、生年月日を含む)を作成します.
    create view Subs(s_no,s_name,s_birthday)
    as select s_no,s_name,s_birthday
       from Student
       group by s_no,s_name,s_birthday

    2.生徒選択状況ビューの作成S_SC_C(学号、氏名、選択科目名および成績を含む).
    create view s_sc_c(s_no,s_name,course_name,score)
    as select Student.s_no,s_name,course_no,score
       from Student,Choice
       where Student.s_no=Choice.s_no   

    3.生徒平均成績ビューの作成S_Avg(学番、平均成績を含む).
    create view S_Avg(s_no,Avg)
    as select Student.s_no,AVG(score)
       from Student,Choice
       where Student.s_no=Choice.s_no
       group by Student.s_no

    4.クラス番号、クラス名、クラス数などのクラス状況ビューを作成します.
    create view C_Class(class_no,class_name,count)
    as select Class.class_no,class_name,COUNT(*)
       from Class
       group by class_no,class_name 

    5.教師番号、教師名、授業名など、教師の授業状況ビューを作成します.
    create view T_Teaching(t_no,t_name,course_name)
    as select Teaching.t_no,Teacher.t_name,Course.course_name
       from Teaching,Teacher,Course
       where Teaching.t_no=Teacher.t_no and Teaching.course_no=Course.course_no

    6.ビュー「S_SC_C」を用いて、「張彬」という名前の学生の選択科目名と成績を調べる.
    select course_no,score
    from s_sc_c
    where s_name='  '

    7.ビュー「S_Avg」を用いて、「991102」という学生の平均成績を調べる.
    select AVG
    from S_Avg
    where s_no='991102'

    8.ビュー「S_Avg」を削除します.
    drop  view S_Avg

    四.授業の例題に基づいて、実験内容に要求される知識点を含む5つのクエリー文を自分で与える.
         注意:各クエリー要件と対応するSQL文を書きます.
    1.ビュー「s_sc_c」を用いて、「張彬」という名前の学生の学号と選択した課程番号を検索する
    select s_no,course_no
    from s_sc_c
    where s_name='  '

    2.ビュー「T_Teaching」を用いて、「王大山」という名前の先生の教師番号と教授の課程番号を調べる
    select t_no,course_name
    from T_Teaching
    where t_name='   '

    3.ビュー「s_sc_c」を用いて、「藩桃芝」という名前の同級生の学号と選択した課程番号を調べる
    select s_no,course_no
    from s_sc_c
    where s_name='   '

    4.ビュー「C_Class」を用いて、「js 9901」というクラスの合計人数を問い合わせる
    select count
    from C_Class
    where class_no='js9901'

    5.ビューSubsの削除
    drop view Subs