您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 数据库原理及应用教程 课本答案
课后习题参考答案第1章习题参考答案一、选择题1.C2.B3.D4.C5.D6.A7.A8.B9.D、10.B11.C12.D13.A14.D15.B二、填空题1.数据库系统2.关系3.物理独立性4.操作系统5.数据库管理系统(DBMS)6.多对多7.独立性8.完整性控制9.逻辑独立性10.关系模型11.概念结构(逻辑)12.树有向图二维表嵌套和递归13.宿主语言(或主语言)14.数据字典15.单用户结构主从式结构分布式结构客户/服务器结构浏览器/服务器结构第2章习题参考答案一、选择题1.A2.C3.C4.B5.B6.C7.B8.D9.C10.A11.B12.A13.A14.D15.D二、填空题1.选择(选取)2.交3.相容(或是同类关系)4.并差笛卡尔积选择投影5.并差交笛卡尔积6.选择投影连接7.σf(R)8.关系代数关系演算9.属性10.同质11.参照完整性12.系编号系名称,电话,办公地点13.元组关系域关系14.主键外部关系键15.R和S没有公共的属性三简答题(1)查询T1老师所授课程的课程号和课程名。ΠCNO,CN(σTNO=’T1’(TC)*ΠCNO,CN(C))(2)查询年龄大于18岁男同学的学号、姓名、系别。ΠSNO,SN,Dept(σAge18Sex=’男’(S))(3)查询“李力”老师所授课程的课程号、课程名和课时。ΠCNO(ΠTNO(σTN=’李力’(T))*TC))*C(4)查询学号为S1的同学所选修课程的课程号、课程名和成绩。ΠCNO,CN,Score(σSNO=’S1’(SC)*ΠCNO,CN(C))(5)查询“钱尔”同学所选修课程的课程号、课程名和成绩。ΠCNO,CN,Score(ΠSNO(σSN=’钱尔’(S))*ΠCNO,CN(C)*SC)(6)查询至少选修“刘伟”老师所授全部课程的学生姓名。ΠSN((ΠSNO,SN(S)*(ΠSNO,CNO(SC)ΠCNO(σTN=’刘伟’(T*TC))))(7)查询“李思”同学未选修的课程的课程号和课程名。ΠCNO,CN((ΠCNO(C)-ΠCNO(σSN=’李思’(S)*SC))*C)(8)查询全部学生都选修了的课程的课程号和课程名。ΠCNO,CN(C*(ΠSNO,CNO(SC)ΠSNO(S)))(9)查询选修了课程号为C1和C2的学生的学号和姓名。(ΠSNo,CNo(SC)ΠCNo(σCNo=’C1’CNo=’C2’(C))*ΠSNo,SN(S)(10)查询选修全部课程的学生的学号和姓名。ΠSNO,SN(S*(ΠSNO,CNO(SC)ΠCNO(C)))(11)查询选修课程包含“程军”老师所授课程之一的学生学号。ΠSNO(SC*ΠCNO(σTN=’程军’(C)))(12)查询选修课程包含学号S2的学生所修课程的学生学号。ΠSNO,CNO(SC)ΠCNO(σCNO=’S2’(SC))第3章习题参考答案一、选择题1.B2.A3.C4.B5.C6.C7.B8.D9.A10.D二、填空题1.结构化查询语言(StructuredQueryLanguage)2.数据查询、数据定义、数据操纵、数据控制3.外模式、模式、内模式4.数据库、事务日志5.NULL/NOTNULL、UNIQUE约束、PRIMARYKEY约束、FOREIGNKEY约束、CHECK约束6.聚集索引、非聚集索引7.连接字段8.行数9.定义10.系统权限、对象权限11.基本表、视图12.(1)INSERTINTOSVALUES('990010','李国栋','男',19)(2)INSERTINTOS(No,Name)VALUES('990011','王大友')(3)UPDATESSETName='陈平'WHERENo='990009'(4)DELETEFROMSWHERENo='990008'(5)DELETEFROMSWHERENameLIKE'陈%'13.CHAR(8)NOTNULL14.SC.CNo=C.CNo15.ALTERTABLEStudentADDSGradeCHAR(10)三、设计题1.图书(Book)书号类型书名作者单价出版社号BNoBTypeBNameBAuthBPricePNo出版社(Publish)出版社号出版社名称所在城市电话PNoPNamePCityPTel(1)查找在“高等教育出版社”出版,书名为“操作系统”的图书的作者名。SELECTBAuthFROMBook,PublishWHEREBook.PNo=Publish.PNoANDBName=’操作系统’ANDPName=’高等教育出版社’(2)查找为作者“张欣”出版全部“小说”类图书的出版社的电话。SELECTPTelFROMBook,PublishWHEREBook.PNo=Publish.PNoANDBType=’小说’ANDBAuth=’张欣’豆丁:SELECTPTelFROMPublishWHEREPNO=ALL(SELECTDISTINCTPNOFORMBookWHEREBAuth=’张欣’ANDBType=’小说’);(3)查询“电子工业出版社”出版的“计算机”类图书的价格,同时输出出版社名称及图书类别。SELECTBPrice,PName,BTypeFROMBook,PublishWHEREBook.PNo=Publish.PNoANDPName=’电子工业出版社’ANDBType=’计算机’(4)查找比“人民邮电出版社”出版的“高等数学”价格低的同名书的有关信息。SELECT*FROMBookWHEREBName=’高等数学’ANDBPriceANY(SELECTBPriceFROMBook,PublishWHEREBook.PNo=Publish.PNoANDPName=’人民邮电出版社’ANDBName=’高等数学’)ANDPName’人民邮电出版社’豆丁:SELECT*FROMBookWHEREBPrice(SELECTBPriceFROMBook,PublishWHEREBook.PNO=Publish.PNOANDBName=’高等数学’ANDPName=’人民邮电出版社’(5)查找书名中有“计算机”一词的图书的书名及作者。SELECTBName,BAuthFROMBookWHEREBNameLIKE’%计算机%’(6)在“图书”表中增加“出版时间”(BDate)项,其数据类型为日期型。ALTERTABLEBookADDBDatedatetime(7)在“图书”表中以“作者”建立一个索引。CREATEINDEXNameONBook(BAuth)desc豆丁:CREATEINDEXONBook(BAuth)2.存书(BookStore)书号书名出版社版次出版日期作者书价进价数量BNoBNamePublishVersionPDateBAuthBPriceBInPriceBCount销售(BookSell)日期书号数量金额SDateBNoSCountSMoney(1)建立存书表和销售表。CREATETABLEBookStore(BNoCHAR(8)PRIMARYKEY,BNameVARCHAR(20),PublishVARCHAR(20),VersionINT,PDateDATETIME,BAuthVARCHAR(10),BPriceNUMERIC(4,1),BInPriceNUMERIC(4,1),BCountINT);CREATETABLEBookSell(BNoCHAR(8)PRIMARYKEY,SDateDATETIME,SCountINT,PDateDATETIME,SMoneySMALLMONEY);豆丁:(1)建立存书表和销售表。CREATETABLE存书(BNoCHAR(10)CONSTRAINTPRIMARYKEY,BNameVARCHAR(30),PublishVARCHAR(20),VersionCHAR(6),PDateDATETIME,BAuthVARCHAR(8),BPriceDECIMAL(8,2),BInPriceDECIMAL(8,2),BCountINT);CREATETABLEBookSell(日期DATETIME书号VARCHAR(10)CONSTRAINTKEYREFERENCES存书(书号),SDateDATETIME,SCountINT,PDateDATETIME,SMoneySMALLMONEY);(1)掌握书的库存情况,列出当前库存的所有书名、数量、余额(余额=进价*数量,即库存占用的资金)SELECTBName,BCount,BPrice*BCountASTOTALCOUNTFROMBookStore(2)统计总销售额。SELECTSUM(SCount*SMoney)ASTOTALMONEYFROMBookSell(3)列出每天的销售报表,包括书名、数量和合计金额(每一种书的销售总额)SELECTBNo,BName,SDate,BCount,SCount*SMoneyASTOTALMONEYFROMBookStore,BookSellWHEREBookStore.BNo=BookSell.BnoGROUPBYBNo,BName,SDate,BCount(4)分析畅销书,即列出当期(从当前起,向前30天)销售数量大于100的书名、数量。SELECTBName,SCountFROMBookStore,BookSellWHEREBookStore.BNo=BookSell.BNoANDSCount100ANDSDate+30(SELECTMAX(SDate)FROMBookSell)或:SDate-‘2009-5-1’30或:‘2009-5-30’-SDate30或:SDateBETWEEN‘2009-5-1’AND‘2009-5-30’说明:日期的表示方法2009-5-30200905302009/5/30四、简答题S(学生信息表)学号学生姓名年龄所在系S#SNAGEDEPTC(课程信息表)课程号课程名称C#CNSC(选课信息表)学号课程号成绩S#C#GR(1)创建S表,S#为主键,SN不能为空。CREATETABLES(S#CHAR(8)PRIMARYKEY,SNCHAR(8)NOTNULL,AGEINT,DEPTVARCHAR(20));(2)创建计算机系学生的视图,该视图的属性列由学号、姓名、课程名和任课教师号组成。CREATEVIEWcomputer_student(S#,SN,C#,T#)ASSELECTS.S#,SN,SC.C#,T#FROMS,SC,TWHERES.S#=SC.S#ANDSC.C#=T.C#ANDDEPT=’计算机’(3)检索计算机系年龄在20岁以上的学生学号。SELECTS#FROMSWHEREAGE20ANDDEPT=’计算机’(4)检索姓王的教师所讲课程的课程号和课程名称。SELECTC.C#,CNFROMC,TWHEREC.C#=T.C#ANDTNLIKE‘王%’(5)检索张三同学所学课程的成绩,列出SN,C#,GRSELECTSN,C#,GRFROMS,SCWHERES.S#=SC.S#ANDSN=’张三’(6)检索选修总收入超过1000元的教师所讲课程的学生姓名、课程号和成绩。SELECTSN,T.C#,GRFROMT,SC,SWHERET.C#=SC.C#ANDS.S#=SC.S#AND(SAL+COMM)1000(7)检索没有选修C1课程且选修课程数为两门的学生的姓名和平均成绩,并按平均成绩降序排列。SELECTS.S#,SN,AVG(GR)ASAVGSCOREFROMS,SCWHERES.S#=SC.S#ANDC#’C1’GROUPBYS.S#,SNHAVINGCOUNT(*)=2ORDERBYAVG(GR)DESC(8)检索选修和张三同学所选课程中任意一门相同的学生姓名,课程名SELECTSN,CNFROMS,SC,CWHERES.S#=SC.S
本文标题:数据库原理及应用教程 课本答案
链接地址:https://www.777doc.com/doc-4242204 .html