当前位置:
文档之家› 2019级数据库原理课堂测验1答案
2019级数据库原理课堂测验1答案
(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
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,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 o=o))
(3)查找全体职工都参加的社团号和社团名。
SELECT Cno,Cname FROM C WHERE NOT EXISTS
(SELECT * FROM E WHERE NOT EXISTS
(SELECT * FROM EC WHERE o=o AND E.Eno=EC.Eno))
已知一个公司的职工-社团的数据库有三个基础表: 职工:E(Eno,Ename,Age,Sex); 社团:C(Cno,Cname,Manager,Address) 参加:EC(Eno,Cno,DateOfAttend)
•其中: Eno:职工号; Ename:职工名; Age:年龄; Sex:性 别 Cno:社团号; Cname:社团名; Manager:负责人职工号; Address:社团地址; DateOfAttend:参加日期
(SELECT Eno FROM EC GROUP BY Eno HAVING MAX(DateOfAttend)<’2019-1-1’)
SELECT Cno,Cname,COUNT(*) AS ‘人数’ FROM C,EC WHERE o=o 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)查找参加人数最多的社团号,社团名和参加人数。
1.用关系代数表示下列查询:
(1)查找关于社团负责人的社团名,负责人名字,负责人性别。
∏Cname,Ename,Байду номын сангаасex( E ⋈
C)
Eno=Manager
(2)查找参加了全部社团的职工号,职工名。
πEno,Ename(E) ⋈ (πEno,Cno(EC) ÷πCno(C))
2.用SQL语句表示下列查询:
(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”职工所参加的全部社团的职工