内容发布更新时间 : 2024/11/18 5:37:36星期一 下面是文章的全部内容请认真阅读。
如有帮助,欢迎下载支持。
第二章作业题
1、设有关系R、S如下所示,计算R÷S。
R: S: A B C D C D a b c d c d a b e f e f a b h k b d e f b d d l c k c d c k e f E 1 2
除法运算步骤
1) 将被除关系的属性分为象集属性和结果属性:与除关系相同的属性属于象集属性,不相同的属性属于结果属性 2) 在除关系中,对与被除关系相同的属性(象集属性)进行投影,得到除目标数据集。 3) 将被除关系分组,原则是,结果属性值一样的元组分为一组。
4) 逐一考察每个组,如果它的象集属性值中包括除目标数据集,则对应的结果属性值应属于该除法运算结果集。
2、书74页第5题
1)求供应工程J1零件的供应商号码SNO – πsno(σjno=’J1’(SPJ))
2)求供应工程J1零件P1的供应商号码SNO – πsno(σ jno=’J1’^ PNO =’P1’(SPJ)) 3)求供应工程J1零件为红色的供应商号码SNO
–πsno(πpno(σ color=’红色’(P)) σjno=’J1’(SPJ)) 4)求没有使用天津供应商生产的红色零件的工程号JNO
– πjno(SPJ)-πjno(πsno(σcity=’天津’(S)) SPJπpno(σcolor=’红色’(P))
1
如有帮助,欢迎下载支持。
5)求至少用了供应商S1所供应的全部零件的工程号JNO – πjno,pno(SPJ) πpno(σsno=’S1’(SPJ))
3、设有如图所示的关系S、C和SC,它们分别表示学生、课程和学生选课。试用关系代数表达式表示下列查询。 S: C: S# SNAME SEX AGE C# CNAME TEACHER 李明 男 1001 19 C语言 王华 C1 刘强 女 1002 18 数据结构 李大利 C2 张丽娟 女 2001 20 操作系统 周明 C3 赵丹 男 3002 19 周明 C4 数据库原理 SC: S# C# GRADE 1001 C1 89 1001 C2 67 2001 C3 56 3002 C3 92
(1) 检索年龄大于19岁的女同学的学号(S#)和姓名(SNAME)。 (2) 检索\周明\老师所授课程的课程号(C#)和课程名(CNAME)。 (3) 检索选修课程名为\操作系统\的学生学号(S#)和姓名(SNAME)。 (4) 检索选修了全部课程的学生姓名(SNAME)。
S ( S#, SNAME,SEX,AGE) C (C#, CNAME, TEACHER ) SC ( S#,C#,GRADE)
(1)πs#,SNAME(σ AGE>19^SEX=‘女’(S)) (2)πC#,CNAME(σ TEACHER=‘周明’(C))
(3)πs#,SNAME(σ CNAME=‘操作系统’(S C SC)) (4)πSNAME(πs#,C#( SC)πC#(C)S)
第三章 作业题
1.书127页5题:(1)-(7)(对应课本75页的四个表)
S (SNO, SNAME, STATUS, CITY) P (PNO,PNAME, COLOR, WEIGHT) J (JNO, JNAME,CITY) SPJ (SNO,PNO,JNO,QTY)
1. SELECT SNAME ,CITY FROM S ;
2. SELECT PNAME, COLOR, WEIGHT FROM P
3. SELECT DISTINCT(JNO) FROM SPJ WHERE SNO=‘S1’; 4. SELECT PNAME,QTY FROM P, SPJ
WHERE P.PNO=SPJ.PNO AND SPJ. JNO=‘J2’; 5.
解1: SELECT DISTINCT(PNO) FROM S, SPJ
2
如有帮助,欢迎下载支持。
WHERE S.SNO=SPJ.SNO AND S.CITY=‘上海’ 解2:SELECT DISTINCT(PNO) FROM SPJ
WHERE SNO IN (SELECT SNO FROM S WHERE CITY=‘上海’ 6. SELECT JNAME FROM S,SPJ,J
WHERE J.JNO=SPJ.JNO AND S.SNO=SPJ.SNO AND S.CITY=‘上海’ 7. SELECT JNO FROM S,SPJ
WHERE S.SNO=SPJ.SNO AND S.CITY<>’天津’ 7. SELECT JNO FROM SPJ
WHERE SNO!=ALL (SELECT SNO FROM S WHERE CITY=’天津’) 8. Update p set color=‘蓝’ where color=‘红’
9. Update SPJ set sno=‘s3’ where sno=‘s5’and jno=‘j4’ and pno=‘p6’ 10. Delete from S where sno=‘s2’
11.insert into SPJ values(‘s2’, ’p4’,’j6’, 200) 2.补充练习:
设有一个简单的图书管理数据库,包含如下三个关系表: 图书关系表:Book(BNO, Title, Author, Publisher, Price),
其中BNO, Title, Author, Publisher, Price分别表示图书的总编号、书名、 作者、出版单位和单价;
读者关系表:Reader(LNO, Name, Unit),
其中LNO, Name, Unit分别表示读者的借书证号、姓名和所在单位; 借阅关系表:Loan(LNO, BNO, Date)
其中LNO, BNO, Date分别表示借阅图书的借书证号、所借图书的总编号和借书 日期。
用SQL语言实现下述功能。
1. 查询所有借阅了图书的学生号。
2. 查询图书的价格在50—100元的高等教育出版社、机械工业出版社和清华大学出版社的书名。 3. 查询数据库方面(以“数据库”开头)的图书的书名和作者。
4. 查找高等教育出版社的所有图书的书名和单价,结果按单价降序排列。 5. 求出各个出版社图书的最高价格、最低价格和图书册数。 6. 查询借阅三本以上图书的读者的借书证号、姓名和所在单位。
7. 读者“李小波”于2001年元旦前所借的所有图书的书名及借书日期。 8. 查询2000年7月以后没有借书的读者的姓名和单位。 9. 查询至少借阅了0287号图书和0398号图书的读者号。
1. SELECT DISTINCT LNO FROM Loan 2. SELECT Title FROM Book
WHERE Price BETWEEN 50 AND 100AND Publisher IN(‘高等’, ‘机械’, ‘清华’) 3. SELECT Title, Author FROM Book WHERE Title LIKE ‘数据库%’ 4. SELECT Title, Price FROM Book
WHERE Publisher=‘高等’ ORDER BY Price DESC
5. SELECT MAX(Price), MIN(Price), COUNT(BNO) FROM Book GROUP BY Publisher
6. SELECT * FROM Reader WHERE LNO IN
( SELECT LNO FROM Loan GROUP BY LNO HAVING COUNT(*)>3) 7. SELECT Book .Title, Loan .Date FROM Reader,Loan,Book
WHERE Reader. LNO=Loan.LNO AND Loan. BNO=Book.BNO AND Reader. Name=‘李小波’
3