SQL 練習題
問題描述:
已知關係模式:
S (SNO,SNAME) 學生關係。SNO 為學號,SNAME 為姓名
C (CNO,CNAME,CTEACHER) 課程關係。CNO 為課程號,CNAME 為課程名,CTEACHER 為任課教師
SC(SNO,CNO,SCGRADE) 選課關係。SCGRADE 為成績
要求實現如下5個處理:
1. 找出沒有選修過“李明”老師講授課程的所有學生姓名
2. 列出有二門以上(含兩門)不及格課程的學生姓名及其平均成績
3. 列出既學過“1”號課程,又學過“2”號課程的所有學生姓名
4. 列出“1”號課成績比“2”號同學該門課成績高的所有學生的學號
5. 列出“1”號課成績比“2”號課成績高的所有學生的學號及其“1”號課和“2”號課的成績
1. 找出沒有選修過“李明”老師講授課程的所有學生姓名
--實現程式碼:
SELECT SNAME FROM S
WHERE NOT EXISTS(
SELECT * FROM SC,C
WHERE SC.CNO=C.CNO
AND C.CTEACHER='李明'
AND SC.SNO=S.SNO)
2. 列出有二門以上(含兩門)不及格課程的學生姓名及其平均成績
--實現程式碼:
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. 列出既學過“1”號課程,又學過“2”號課程的所有學生姓名
--實現程式碼:
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”號同學該門課成績高的所有學生的學號
--實現程式碼:
SELECT S.SNO,S.SNAME
FROM S,SC SC1,SC SC2
WHERE SC1.CNO='1'
AND SC2.SNO='2'
AND SC1.CNO=S.CNO
AND SC1.SCGRADE>SC2.SCGRADE
5. 列出“1”號課成績比“2”號課成績高的所有學生的學號及其“1”號課和“2”號課的成績
--實現程式碼:
SELECT SC1.SNO,[1號課成績]=SC1.SCGRADE,[2號課成績]=SC2.SCGRADE
FROM SC SC1,SC SC2
WHERE SC1.CNO='1'
AND SC2.CNO='2'
AND SC1.SNO=SC2.SNO
AND SC1.SCGRADE>SC2.SCGRADE
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10113559/viewspace-623944/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL練習題SQL
- oracle sql練習題OracleSQL
- sql查詢入門練習題SQL
- 牛客SQL練習第21題SQL
- sql 練習SQL
- pl/sql練習SQL
- pl/sql 練習SQL
- Hive SQL必刷練習題:同時線上人數問題(*****)HiveSQL
- 新手練習:Python練習題目Python
- SQL練習00015SQL
- SQL練習00012SQL
- sql 語句練習 In MySQLMySql
- sql 語句練習(2)SQL
- mysql練習題MySql
- TypeScript 練習題TypeScript
- java練習題Java
- SQL經典練習題48道之一(1-10)SQL
- SQL經典練習題48道之二(11-19)SQL
- SQL經典練習題48道之三(20-25)SQL
- SQL經典練習題48道之四(26-30)SQL
- SQL經典練習題48道之五(31-35)SQL
- SQL經典練習題48道之六(36-40)SQL
- SQL經典練習題48道之七(41-48)SQL
- SQL Server遊標使用練習SQLServer
- sql 語句練習(3) In MySQLMySql
- Python 練習題Python
- mysql面試練習題MySql面試
- 程式練習題(2)
- 陣列練習題陣列
- Day5-SQL綜合練習(Datawhale)SQL
- Oracle SQL select練習語句OracleSQL
- JAVA 基礎練習題Java
- java異常練習題Java
- Java Web概述-練習題JavaWeb
- python練習題解析Python
- linux練習題(二)Linux
- 3 月水題練習
- mysql函式練習題MySql函式