SQL面試題

問題描述:
 爲管理崗位業務培訓信息,建立3個表:
 S (S#,SN,SD,SA) S#,SN,SD,SA 分別代表學號、學員姓名、所屬單位、學員年齡
 C (C#,CN ) C#,CN 分別代表課程編號、課程名稱
 SC ( S#,C#,G ) S#,C#,G 分別代表學號、所選修的課程編號、學習成績
 
 要求實現如下5個處理:
 1. 使用標準SQL嵌套語句查詢選修課程名稱爲’稅收基礎’的學員學號和姓名
 2. 使用標準SQL嵌套語句查詢選修課程編號爲’C2’的學員姓名和所屬單位
 3. 使用標準SQL嵌套語句查詢不選修課程編號爲’C5’的學員姓名和所屬單位
 4. 使用標準SQL嵌套語句查詢選修全部課程的學員姓名和所屬單位
 5. 查詢選修了課程的學員人數
 6. 查詢選修課程超過5門的學員學號和所屬單位
 
 1. 使用標準SQL嵌套語句查詢選修課程名稱爲’稅收基礎’的學員學號和姓名
 --實現代碼:
 SELECT SN,SD FROM S
 WHERE [S#] IN(
 SELECT [S#] FROM C,SC
 WHERE C.[C#]=SC.[C#]
 AND CN=N'稅收基礎')
 
 
 2. 使用標準SQL嵌套語句查詢選修課程編號爲’C2’的學員姓名和所屬單位
 --實現代碼:
 SELECT S.SN,S.SD FROM S,SC
 WHERE S.[S#]=SC.[S#]
 AND SC.[C#]='C2'
 
 3. 使用標準SQL嵌套語句查詢不選修課程編號爲’C5’的學員姓名和所屬單位
 --實現代碼:
 SELECT SN,SD FROM S
 WHERE [S#] NOT IN(
 SELECT [S#] FROM SC
 WHERE [C#]='C5')
 
 4. 使用標準SQL嵌套語句查詢選修全部課程的學員姓名和所屬單位
 --實現代碼:
 SELECT SN,SD FROM S
 WHERE [S#] IN(
 SELECT [S#] FROM SC
 RIGHT JOIN C ON SC.[C#]=C.[C#]
 GROUP BY [S#]
 HAVING COUNT(*)=COUNT(DISTINCT [S#]))
 
 5. 查詢選修了課程的學員人數
 --實現代碼:
 SELECT 學員人數=COUNT(DISTINCT [S#]) FROM SC
 
 6. 查詢選修課程超過5門的學員學號和所屬單位
 --實現代碼:
 SELECT SN,SD FROM S
 WHERE [S#] IN(
 SELECT [S#] FROM SC
 GROUP BY [S#]
 HAVING COUNT(DISTINCT [C#])>5)~
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章