/****P146 9.5.5獨立實踐********
*****2013-06-02-22:43****************
*******************************
*/
--1.使用內連接查詢
--(1)查詢選修了“C#程序設計”課程的學生的學號、姓名、成績。
select 學生.學號,學生.姓名,學生_課程.課程成績--(select 課程.課程名稱 from 課程 where 課程.課程名稱='C#程序設計' and 學生_課程.課程編號=課程.課程編號)
from 學生
inner join 學生_課程
on 學生.學號 = 學生_課程.學號 and 學生_課程.課程編號 in
(select 課程.課程編號 from 課程 where 課程.課程名稱='C#程序設計')
--(2)查詢學號爲100001的學生選修的所有課程的名稱、成績。
select 課程.課程名稱,學生_課程.課程成績
from 課程 inner join 學生_課程
on 課程.課程編號 = 學生_課程.課程編號 and 學生_課程.學號 ='100001'
--(3)查詢“C#程序設計”課程的平均分、最高分和最低分。
select 課程.課程名稱,Avg(學生_課程.課程成績) as '平均分',MAX(學生_課程.課程成績) as '最高分',MIN(學生_課程.課程成績) as '最低分'
from 學生_課程 inner join 課程
on 學生_課程.課程編號 = 課程.課程編號 and 課程.課程名稱='C#程序設計'
group by 課程.課程名稱
--2.使用左向外連接查詢
--(1)查詢所有系及其專業的信息,包括哪些沒有專業的系的信息。
select 學院.*,專業.*
from 學院 left outer join 專業
on 學院.學院編號 = 專業.學院編號
/*alter table 學院
alter column 學校編號 int null*/
--(2)編寫查詢,查詢學生的信息及選修的“C#程序設計”課程的成績,包括那些沒有選修”C#程序設計“課程的學生信息。
select 學生.*,學生_課程.課程成績,(select 課程.課程名稱 from 課程 where 課程.課程名稱='C#程序設計' and 課程.課程編號 = 學生_課程.課程編號) as '課程名稱'
from 學生 left outer join 學生_課程
on 學生.學號 = 學生_課程.學號 and 學生_課程.課程編號 in (select 課程.課程編號 from 課程 where 課程.課程名稱='C#程序設計')
--3.使用右向外連接查詢
--查詢學生的學號、選修課程的名稱及成績,包括那些沒有被選的課程的名稱。
select 學生_課程.學號,課程.課程名稱,學生_課程.課程成績
from 學生_課程 right outer join 課程
on 學生_課程.課程編號 = 課程.課程編號
2013-06-02-22:43