資料庫系統概論第 五章 多重子查詢操作   上一頁    下一頁

5-5 專題研討

(A) 程式功能:Ex5_9

請列印出這學期修讀『粘添壽』老師(教師代碼=0108)所開的『資料庫管理系統』的學生名冊。

(B) 系統分析:

       

由下列幾個步驟來完成。

    • 步驟 1:先由『all_course』找出『資料庫管理系統』的『course_ID』。

    • 步驟 2:再利用『course_ID』與『teacher_ID』,由『open_course表』查出『open_course_ID』。

    • 步驟 3:再利用『open_course_ID』由『select_course 表』,查出修讀該課程學生的學號(student_ID)

    • 步驟 4:再利用『student_ID』由『students 表』找出相關資料。

(C) 程式範例:

  • 步驟 1查出資料庫管理系統的課程代碼(course_ID),如下:

select course_ID

from all_course

where course_name = '資料庫管理系統';

  • 步驟 2再查出粘添壽老師(teacher_ID = 0108)所開資料庫管理系統的開課代碼(open_course_ID),如下:

select open_course_ID

from open_course

where teacher_ID = '0108'

and course_ID = (select course_ID

from all_course

where course_name = '資料庫管理系統');

  • 步驟 3再由 open_course_ID 查出那些學生(student_ID)修讀該課程,如下:

select student_ID

from select_course

where open_course_ID = (select open_course_ID

               from open_course

              where teacher_ID = '0108'

             and course_ID = (select course_ID

                 from all_course

               where course_name = '資料庫管理系統'));

  • 步驟 4利用 student_ID students 表中查出相關資料,,如下:

select *

from students

where student_ID in (select student_ID

from select_course

where open_course_ID = (select open_course_ID

                          from open_course

                         where teacher_ID = '0108'

                         and course_ID = (select course_ID

                                        from all_course

                       where course_name = '資料庫管理系統')));

  • 步驟 5插入查詢粘添壽老師的代碼程式,與擷取所需資料如下:

select student_ID, name, class_ID, sex

from students

where student_ID in (select student_ID

from select_course

where open_course_ID = (select open_course_ID

from open_course

where teacher_ID =

      (select teacher_ID from teachers where name = '粘添壽')

and course_ID = (select course_ID

from all_course

where course_name = '資料庫管理系統')));

  • 步驟 6我們還是希望將班級名稱直接顯示,而不要代碼,如下:

select student_ID, name,

     (select class_name from classes

      where class_ID = students.class_ID) as "班級", sex

from students

where student_ID in (select student_ID

from select_course

where open_course_ID = (select open_course_ID

from open_course

where teacher_ID =

      (select teacher_ID from teachers where name = '粘添壽')

and course_ID = (select course_ID

from all_course

where course_name = '資料庫管理系統')));

翻轉工作室:粘添壽

 

資料庫系統概論(含邏輯設計)

 

 

翻轉電子書系列: