2019级数据库原理课堂测验1答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3)查找全体职工都参加的社团号和社团名。
SELECT Cno,Cname FROM C WHERE NOT EXISTS
(SELECT * FROM E WHERE NOT EXISTS
(SELECT * FROM EC WHERE C.Cno=EC.Cno AND E.Eno=EC.Eno))
SELECT Cno,AVG(Age) AS ‘平均年龄’ FROM E,EC WHERE E.Eno=EC.Eno
AND Cno IN ( SELECT Cno FROM C WHERE Manager IN (SELECT Eno FROM E WHERE Ename=‘tan’) )
GROUP BY Cno
(SELECT Eno FROM EC GROUP BY Eno HAVING MAX(DateOfAttend)<’2019-1-1’)
(1)查找没有参加任何社团的职工情况。
SELECT * FROM E WHERE Eno NOT IN
( SELECT Eno FROM EC
) 或: SELECT *
FROM E WHERE NOT EXISTS
( SELECT * FROM EC WHERE E.Eno=EC.Eno
)
(2)查找参加了职工号为“100”职工所参加的全部社团的职工
号,职工名。
SELECT Eno,Ename FROM E X WHERE NOT EXISTS
(SELECT * FROM EC Y WHERE Y.Eno=‘100’
AND NOT EXISTS (SELECT * FROM EC Z WHERE X.Eno=Z.Eno AND Y.Cno=Z.Cno))
1.用关系代数表示下列查询:
(1)查找关于社团负责人的社团名,负责人名字,负责人性别。
∏Cname,Ename,Sex( E ⋈
C)
Eno=Manager
(2)查找参加了全部社团的职工号,职工名。
πEno,Ename(E) ⋈ (πEno,Cno(EC) ÷πCno(C))
2.用SQL语句表示下列查询:
已知一个公司的职工-社团的数据库有三个基础表: 职工:E(Eno,Ename,Age,Sex); 社团:C(Cno,Cname,Manager,Address) 参加:EC(Eno,Cno,DateOfAttend)
•其中: Eno:职工号; Ename:职工名; Age:年龄; Sex:性 别 Cno:社团号; Cname:社团名; Manager:负责人职工号; Address:社团地址; DateOfAttend:参加日期
SELECT Cno,Cname,COUNT(*) AS ‘人数’ FROM C,EC WHERE C.Cno=EC.Cno GROUP BY Cno HAVING COUNT(*)>=ALL
(SELECT COUNT(*) FROM EC GROUP BY Cno)
(6)求“tan”负责的每个社团的职工的平均年龄。
(4)查找职工号比职工号“100”大,而年龄比职工号为“100”
职工小的职Байду номын сангаас号,职工名,年龄,性别。
SELECT Eno,Ename,Age,Sex FROM E WHERE Eno>’100 ’
AND Age< ( SELECT Age FROM E WHERE Eno=‘100’ )
(5)查找参加人数最多的社团号,社团名和参加人数。
(7)求年龄大于职工平均年龄的职工号,职工名和年龄。
SELECT Eno,Ename,Age FROM E WHERE Age>
(SELECT AVG(Age) FROM E)
(8)查找参加的每个社团的参加日期都在2019-1-1以前的职工号,
职工名。
SELECT Eno,Ename FROM E WHERE Eno IN