关系数据库语言SQL课后练习题(二)
文章目錄
- 前言
- 一、題目
- 二、解題步驟
- 2.1 統(tǒng)計(jì)有學(xué)生選修的課程門數(shù)。
- 2.2 求選修C4課程的女學(xué)生的平均年齡。
- 2.3 求LIU老師所授的每門課程的平均成績(jī)。
- 2.4 統(tǒng)計(jì)選修每門課程的學(xué)生人數(shù)(超過(guò)l0人的課程才統(tǒng)計(jì))。要求顯示課程號(hào)和人數(shù),查詢結(jié)果按人數(shù)降序排列,若人數(shù)相同,則按課程號(hào)升序排列。
- 2.5 檢索學(xué)號(hào)比WANG同學(xué)大,而年齡比他小的學(xué)生姓名。
- 2.6 在表SC中檢索成績(jī)?yōu)榭罩档膶W(xué)生的學(xué)號(hào)和課程號(hào)。
- 2.7 檢索姓名以L開(kāi)頭的所有學(xué)生的姓名和年齡。
- 2.8 求年齡大于女同學(xué)平均年齡的男學(xué)生的姓名和年齡。
- 2.9 求年齡大于所有女同學(xué)年齡的男學(xué)生的姓名和年齡。
- 總結(jié)
前言
本文在上篇文章的基礎(chǔ)上難度有所上升,該習(xí)題包含select語(yǔ)句的完整語(yǔ)法。
一、題目
試用SQL查詢語(yǔ)句表達(dá)下列對(duì)第3.2題中4個(gè)基本表T、C、S、SC的查詢。
①統(tǒng)計(jì)有學(xué)生選修的課程門數(shù)。
②求選修C4課程的女學(xué)生的平均年齡。
③求LIU老師所授的每門課程的平均成績(jī)。
④統(tǒng)計(jì)選修每門課程的學(xué)生人數(shù)(超過(guò)l0人的課程才統(tǒng)計(jì))。要求顯示課程號(hào)和人數(shù),查詢結(jié)果按人數(shù)降序排列,若人數(shù)相同,則按課程號(hào)升序排列。
⑤檢索學(xué)號(hào)比WANG同學(xué)大,而年齡比他小的學(xué)生姓名。
⑥在表SC中檢索成績(jī)?yōu)榭罩档膶W(xué)生的學(xué)號(hào)和課程號(hào)。
⑦檢索姓名以L開(kāi)頭的所有學(xué)生的姓名和年齡。
⑧求年齡大于女同學(xué)平均年齡的男學(xué)生的姓名和年齡。
⑨求年齡大于所有女同學(xué)年齡的男學(xué)生的姓名和年齡。
二、解題步驟
2.1 統(tǒng)計(jì)有學(xué)生選修的課程門數(shù)。
代碼如下:
SELECT COUNT(DISTINCT C#) FROM SC;2.2 求選修C4課程的女學(xué)生的平均年齡。
代碼如下:
SELECT AVG(AGE) FROM S,SC WHERE S.S#=SC.S# AND C#=’C4’AND SEX=’F’;2.3 求LIU老師所授的每門課程的平均成績(jī)。
代碼如下:
SELECT C.C#.AVG(SCORE) FROM SC,C,T WHERE SC.C#=C.C# AND C.T#=T.T# AND TNAME=’LIU’ GROUP BY C.C#;2.4 統(tǒng)計(jì)選修每門課程的學(xué)生人數(shù)(超過(guò)l0人的課程才統(tǒng)計(jì))。要求顯示課程號(hào)和人數(shù),查詢結(jié)果按人數(shù)降序排列,若人數(shù)相同,則按課程號(hào)升序排列。
代碼如下:
SELECT C#.COUNT(S#) FROM SC GROUPBY C# HAVING COUNT(*)>10 ORDER BY 2 DESC,1;2.5 檢索學(xué)號(hào)比WANG同學(xué)大,而年齡比他小的學(xué)生姓名。
代碼如下:
SELECT SNAME FROM S WHERE S#>ALL(SELECT S# FROM S WHERE SNAME=’WANG’) AND AGE FROM S WHERE SNAME=’WANG);2.6 在表SC中檢索成績(jī)?yōu)榭罩档膶W(xué)生的學(xué)號(hào)和課程號(hào)。
代碼如下:
SELECT S#.C# FROM SC WHERE SCORE IS NULL;2.7 檢索姓名以L開(kāi)頭的所有學(xué)生的姓名和年齡。
代碼如下:
SELECT SNAME.AGE FROM S WHERE SNAME LIKE’L%’;2.8 求年齡大于女同學(xué)平均年齡的男學(xué)生的姓名和年齡。
代碼如下:
SELECT SNAME.AGE FROM S WHERE SEX=’M’ AND AGE>(SELECT AVG(AGE) FROM S WHERE SEX=’F’);2.9 求年齡大于所有女同學(xué)年齡的男學(xué)生的姓名和年齡。
代碼如下:
SELECT SNAME,AGE FROM S WHERE SEX=-‘M’ AND AGE>ALL(SELECT AGE FROM S WHERE SEX=’F’);總結(jié)
總體來(lái)講本題難度不大,只需讀者熟練對(duì)select完整語(yǔ)句的使用。
總結(jié)
以上是生活随笔為你收集整理的关系数据库语言SQL课后练习题(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。