常用測試題(SQL Server)

          Posted on 2007-08-24 09:12 Jaunt 閱讀(216) 評論(0)  編輯  收藏 所屬分類: Database
          問題描述:

          為管理崗位業(yè)務(wù)培訓(xùn)信息,建立3個表:
          S (S#,SN,SD,SA) S#,SN,SD,SA 分別代表學(xué)號、學(xué)員姓名、所屬單位、學(xué)員年齡
          C (C#,CN ) C#,CN 分別代表課程編號、課程名稱
          SC ( S#,C#,G ) S#,C#,G 分別代表學(xué)號、所選修的課程編號、學(xué)習(xí)成績
          1. 使用標(biāo)準(zhǔn)SQL嵌套語句查詢選修課程名稱為’稅收基礎(chǔ)’的學(xué)員學(xué)號和姓名

          --實現(xiàn)代碼:

          Select SN,SD FROM S
          Where [S#] IN(
          Select [S#] FROM C,SC
          Where C.[C#]=SC.[C#]
          AND CN=N'稅收基礎(chǔ)')

          2. 使用標(biāo)準(zhǔn)SQL嵌套語句查詢選修課程編號為’C2’的學(xué)員姓名和所屬單位

          --實現(xiàn)代碼:

          Select S.SN,S.SD FROM S,SC

          Where S.[S#]=SC.[S#]

          AND SC.[C#]='C2'

          3. 使用標(biāo)準(zhǔn)SQL嵌套語句查詢不選修課程編號為’C5’的學(xué)員姓名和所屬單位

          --實現(xiàn)代碼:

          Select SN,SD FROM S

          Where [S#] NOT IN(

          Select [S#] FROM SC

          Where [C#]='C5')

          4. 使用標(biāo)準(zhǔn)SQL嵌套語句查詢選修全部課程的學(xué)員姓名和所屬單位
          --實現(xiàn)代碼:

          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([S#]))

          5. 查詢選修了課程的學(xué)員人數(shù)

          --實現(xiàn)代碼:

          Select 學(xué)員人數(shù)=COUNT(DISTINCT [S#]) FROM SC

          6. 查詢選修課程超過5門的學(xué)員學(xué)號和所屬單位

          --實現(xiàn)代碼:

          Select SN,SD FROM S

          Where [S#] IN(

          Select [S#] FROM SC

          GROUP BY [S#]

          HAVING COUNT(DISTINCT [C#])>5)

          題目2

          問題描述:

          已知關(guān)系模式:

          S (SNO,SNAME) 學(xué)生關(guān)系。SNO 為學(xué)號,SNAME 為姓名

          C (CNO,CNAME,CTEACHER) 課程關(guān)系。CNO 為課程號,CNAME 為課程名,CTEACHER 為任課教師

          SC(SNO,CNO,SCGRADE) 選課關(guān)系。SCGRADE 為成績

          1. 找出沒有選修過“李明”老師講授課程的所有學(xué)生姓名

          --實現(xiàn)代碼:

          Select SNAME FROM S

          Where NOT EXISTS(

          Select * FROM SC,C

          Where SC.CNO=C.CNO

          AND CNAME='李明'

          AND SC.SNO=S.SNO)

          2. 列出有二門以上(含兩門)不及格課程的學(xué)生姓名及其平均成績

          --實現(xiàn)代碼:

          Select S.SNO,S.SNAME,AVG_SCGRADE=AVG(SC.SCGRADE)

          FROM S,SC,(

          Select SNO

          FROM SC

          Where SCGRADE<60

          GROUP BY SNO

          HAVING COUNT(DISTINCT CNO)>=2

          )A Where S.SNO=A.SNO AND SC.SNO=A.SNO

          GROUP BY S.SNO,S.SNAME

          3. 列出既學(xué)過“1”號課程,又學(xué)過“2”號課程的所有學(xué)生姓名

          --實現(xiàn)代碼:

          Select S.SNO,S.SNAME

          FROM S,(

          Select SC.SNO

          FROM SC,C

          Where SC.CNO=C.CNO

          AND C.CNAME IN('1','2')

          GROUP BY SNO

          HAVING COUNT(DISTINCT CNO)=2

          )SC Where S.SNO=SC.SNO

          4. 列出“1”號課成績比“2”號同學(xué)該門課成績高的所有學(xué)生的學(xué)號

          --實現(xiàn)代碼:

          Select S.SNO,S.SNAME

          FROM S,(

          Select SC1.SNO

          FROM SC SC1,C C1,SC SC2,C C2

          Where SC1.CNO=C1.CNO AND C1.NAME='1'

          AND SC2.CNO=C2.CNO AND C2.NAME='2'

          AND SC1.SCGRADE>SC2.SCGRADE

          )SC Where S.SNO=SC.SNO
          5. 列出“1”號課成績比“2”號課成績高的所有學(xué)生的學(xué)號及其“1”號課和“2”號課的成績

          --實現(xiàn)代碼:

          Select S.SNO,S.SNAME,SC.[1號課成績],SC.[2號課成績]

          FROM S,(

          Select SC1.SNO,[1號課成績]=SC1.SCGRADE,[2號課成績]=SC2.SCGRADE

          FROM SC SC1,C C1,SC SC2,C C2

          Where SC1.CNO=C1.CNO AND C1.NAME='1'

          AND SC2.CNO=C2.CNO AND C2.NAME='2'

          AND SC1.SCGRADE>SC2.SCGRADE

          )SC Where S.SNO=SC.SNO
          主站蜘蛛池模板: 会泽县| 环江| 平塘县| 绥芬河市| 横山县| 贵定县| 兴隆县| 盐边县| 金昌市| 策勒县| 海伦市| 漯河市| 延寿县| 永春县| 永安市| 涟水县| 尚志市| 静海县| 镇雄县| 弋阳县| 吉木乃县| 梧州市| 饶河县| 裕民县| 怀远县| 论坛| 邵东县| 石台县| 大姚县| 牡丹江市| 阿坝县| 焉耆| 本溪市| 扶绥县| 城步| 伊春市| 平潭县| 海丰县| 维西| 同心县| 任丘市|