数据库原理与应用 教学作者林 小 玲第3章习题答案.docx
《数据库原理与应用 教学作者林 小 玲第3章习题答案.docx》由会员分享,可在线阅读,更多相关《数据库原理与应用 教学作者林 小 玲第3章习题答案.docx(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章习题答案一、填空题1. 在SQL语言的结构中,二基本表 有对应的物理存储,而一视图 没有对应的物 理存储。2. SQL语言中,向数据库表中插入数据的命令是:INSERT.3. SQL语言中,对用户授权使用(GRANT )语句,而取消所授的权限使用(REVOKE ) 语句。4. SQL 的中文全称是:Slruclured Ouery Language。5. SQL除了具有数据查询和数据操纵功能外,还具有数据定义 和数据控制功能。6. 在SOL语言中,实现数据检索的语句是SELECT 。7. 关系R(A, B, C)和S( A, D, E, F)有相同的属性A,关系代数表达式FIr.b.d.
2、f( RS )可用SQL的查询语句表达为:SELECT R.A, B, D, FFROM R, SWHERE R.A=S.A8. 视图是从基本表一中导出的表,数据库中实际存放的是视图的国区_。9. 设有关系表 R(BH,XM, XB.DWH)、S(DWH, DWM)、T(BH, XM, XB, DWH),贝IJ:(1)实现RUT的SQL语句是:Select BH, XM, XB, R.DWH ,DWMFrom R,SWhere R.DWH=S.DWH;(2)实现。dwh=oo (R)的SQL语句是:Select *From RWhere DWH=,100,;(3)实现CIxm.xb(R)的SQ
3、L语句是:Select XM,XBFrom RFROM教师WHERE NOT EXISTS(SELECT *FROM教师1 ,授课WHERE教师1.教师号=授课.教师号AND教师1.姓名=李军ANDNOT EXISTS(SELECT *FROM授课1WHERE教师.教师号二授课1.教师号AND授课1.课号二授课.课号);(4) Select课程.课程名,教师.教师名,Count (授课.选课人数)From授课,教师,课程Group by教师号Having Max(选课人数)AND授课.教师号二教师.教师号AND授课.课程号二课程. 课程号;(5) Select教师.教师名,Couni (授课.
4、课程号)*课程.学时From授课,教师,课程Group by教师号Having授课.教师号=教师.教师号AND授课.课程号=课程.课程号;2.写出下列查询的SQL语句现有关系数据库:学生(学号,姓名,性别,出生日期,奖学金)、课程(课程号,课程 名称,学分,开课系,开课学期)、选课(学号,课程号,成绩),内容如下表。选课:学号课程号成绩93018266018793084268796893090266019305626003899309226003989301826045学生:(奖学金为字符型字段)学号姓名性别出生口期奖学金93018欧美林女75/06/06是93056王一平女76/08/06否
5、93084周元男75/09/12是93090李为女76/01/12否93092王大力男75/12/23是课程课程号课程名称学分开课系开课学期26601数据库3计算机系第一学期26003英语4外语系第二:学期26781大学语文4社科学院第一学期26045高等数学4数学系笫一学期26879市场营销2财会系第二学期写出下列查询的SQL语句。(字段名用表中所给的名称)(1)查询所有得过奖学金的女学生的学号、姓名。(2)查询计算机系第二学期所开课程的课程名称和学分。(3)查询每位学生所选课程的门数和总平均成绩。(4)查询缺成绩的学生的姓名、缺成绩的课程名称及学分数。(5)杳询选修计算机系所开设的所有课程
6、的学生姓名。(6)创建一个社科学院所开设课程的视图,包含课程号、课程名、学分。解:(1)查询所有得过奖学金的女学生的学号、姓名。Select学号From学生Where性别:女and奖学金=是(2)查询计算机系第二学期所开课程的课程名称和学分。Select课程名称,学分From课程Where开课系=计算机系and开课学期:第二学期(3)查询每位学生所选课程的门数和总平均成绩。Select COUNT (课程号),AVG(成绩)From选课Group By 学号(4)查询缺成绩的学生的姓名、缺成绩的课程名称及学分数。Select姓名,课程名称,学分From学生,课程,选课Where学生.学号二课程
7、.学号and课程.课程号=选课.课程号and成绩IS NULL (5)查询选修计算机系所开设的所有课程的学生姓名。SELECT姓名FROM学生WHERE NOT EXISTS(SELECT *FROM课程WHERE开课系=计算机系AND NOT EXISTS(SELECT *FROM选课WHERE学号二学生.学号AND课程号二课程.课程号)(6)创建一个社科学院所开设课程的视图,包含课程号、课程名、学分。CREATE VIEW IS_课程ASSELECT课程号,课程名,学分FROM 课程WHERE开课系二,社科学院*3.设图书借阅数据库有关系图书(图书编号,书名,作者,出版社,出版时间,图书类
8、别)、 读者(读者编号,姓名,读者类别)和借阅(读者编号,图书编号,借阅H期,还期)。其中, 读者类别为字符型,可以取值学生和教师,图书类别为字符型,取值为经济类、 管理类、外语类、计算机类等。试用SQL语句完成下列查询。对图书借阅数据库完成以下操作:(1)查询借阅了作者为“张强”的图书的读者编号和图书编号。(2)创建一个视图vl,该视图用来查询教师的借阅情况,要求包含:教师姓名、书名、 借阅日期、还期。(3)查询所借的书名中包含“程序设计”这四个字的读者的读者编号和借阅日期。(4)根据图书类别统计各类图书的借书数量并按数量由大到小排序。(5)删除出版社是“电子出版社”的借书记录。(6)查询借
9、阅了 “电子出版社”和“机械出版社”出版的图书的读者编号。解:(1) Select读者编号,图书编号From借阅,图书Where借阅.图书编号=图书.图书编号AND图书.作者=张强;(2) CREATE VIEW VIASSELECT教师姓名,书名,借阅日期,还期FROM 图书,读者,借阅WHERE借阅.图书编号:图书.图书编号AND读者.读者类别=教师;(3)Select读者编号,借阅日期From借阅,图书Where借阅.图书编号二图书.图书编号AND图书.书名like,程序设计;Select图书类别,SUM (借阅.图书编号)From借阅,图书Group by图书类别Having借阅.图书
10、编号二图书.图书编号Order by:(4) DELETEFROM借阅WHERE,图书编号,=(SELETE图书编号FROM 图书WHERE图书.出版社:电子出版社;(5) Select读者编号From借阅,图书Where借阅.图书编号:图书.图书编号AND图书.出版社:电子出版社OR图书.出版社二机械工业出版社;4.阅读下列说明,回答问题1至问题5。某工厂的信息管理数据库的部分关系模式如下所示:职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)部门(部门号,部门名,负责人代码,任职时间)关系模式的主要属性、含义及约束如表1所示,“职工”和“部门”的关系示例分别如表2和表3所示。表1主要
11、属性、含义及约束属性含义及约束职工号职工号唯一标识每个职工的编号,每个职工属于并且仅属于一个部门部门号 唯一标识每个部门的编号,每个部门有一个负责人,且他也是一个职工 月工资 500W月工版5000 于表2 “职工”关系职工号姓名年龄月工资部门号电话办公室1001郑俊华26100018001234主楼2011002王平27110018001234主楼2012001王晓华381300280012351号楼3022002李力24800280012361号楼3033001黎运军42130038001237主楼2024001李源24800480012452号楼1024002李兴民36120048001
12、2462号楼1035001赵欣250Null 表3 “部门”关系部门号部门名负责人代码任职时间1人事处10022004-8-32机关20012004-8-33销售科4生产科40022003-6-15车间【问题1】根据上述说明,由SQL定义的“职工”和“部门”的关系模式,以及统计各部门的人数 C、工资总数Totals、平均工资Averages的D_S视图如下所示,请在空缺处填入正确的内 容。Create Table 部门(部门号 CHAR(l) PRIMARY KEY ,部门名 CHAR (16),负责人代码CHAR (4), 任职时间DATE,FOREIGN KEY (负责人代码)REFERE
13、NCES职T.(职工号);Create Table 职工(职工号 CHAR (4),姓名 CHAR (8),年龄 NUMBER (3),月工资 NUMBER(4),部门号CHAR(l),电话 CHAR (8),办公室CHAR (8),FOREIGN KEY(负贵人代码)REFERENCES职工(职工号),FOR日GN KEY (部口号)REFERENCES 部门,CHECK(月工资=500 AND 月工资=5000 );Create View D _S(D, C, Totals, Averages)As,(Select 部门号, count (*) , AVG (月工资),SUM (月工资)f
14、rom职工Group by 部门号【问题2对于表2、表3所示的“职工”和“部门”关系,请指出下列各行是否可以插入, 为什么?1 1001 王新军 28 100018001234 主楼 201答:该行不能插入“职工”关系,它违反了实体完整性中主码必须唯一区分关系中的每一个 属性2 2003 李力 28 1000答:该行可以插入“职工”关系,尽管部门号、电话和办公室为空,但是它表示该雇员没有 分配到某个部门。3 5802 赵晓啸 36 150068001568 3 号楼 503答:该行不能插入“职工”关系,它违反了参照完整性。因为6在关系“部门中不存在。【问题3】在问题1定义的视图D_S上,下面那
15、个查询或更新是允许执行的,为什么?(l)Update D_S set=3 where D=4;(2)Delete from D_S where 04;(3)Select D Averages fromD_S where C(Select C from D S where D=: dept);(4)Select D, C From D S where Totals10000;(5)Select * from D_S;答:(1)和(2)都不能更新,因为使用分组合聚集函数定义的视图是不可更新的。(3)不一定,视子查询的返回值而定,(4)和(5)允许查询【问题4】查询每个部门中月工资最高的“职工号”的
16、SQ1查询语句如下:Select职工号from职工Ewhere月工资=(Select Max(月工资)from职工as M where M.部门号=E.部门号)(1)请用30字以内文字简要说明该查询语句对查询效率的影响。答:对于外层的职工关系E中的每一个元组,都要对内层的整个职工关系M进行检索, 因此查询效率不高。(2)对该查询语句进行修改,使它既可以完成相同功能,又可以提高查询效率。(2)解答一:改正后的SQL语句使用了临时表:Select Max(月工资)as最高工资,部门号into Temp from职工Group by部门号Select职工号from职工,Tempwhere月工资:最高
17、工资and职工.部门号二Temp.部门号解答二:Select职工号from职工,(Selecl Max(月工资)as最高工资,部门号Group by 部门号)as depMaxwhere月工资二最高工资and职工.部门号二depMax.部门号 【问题5】假定分别在“职工”关系中的“年龄”和月工资字段上创建了索引,如下的Select 杳询语句可能不会促使查询优化器使用索引,从而降低查询效率,请写出既可以完成相同功 能又可以提高查询效率的SQL语句。Select姓名,年龄,月工资from职工where 年龄45 or 月工资10()0;答:Selecl姓名,年龄,月工资from职工where 年龄
18、45;unionSelect姓名,年龄,月工资from职工where年龄月工资1000;(4)实现 ITxm,dwh(oxb=,女,(R)的 SQL 语句是:Select XM,DWHFrom RWhcrcXB=女;(5)实现R x S的SQL语句是:Select *From R,SWhere R.DWH=S.DWH;(6)实现 nxM,XB.DWH(OXB5(R x S)的 SQL 语句是:Select XM, XB, DWHFrom R.SWhere R.DWH=S.DWH and XB=男;10.设有学生关系S(No, Name, Sex, Age, Class),其中,No是学号,Na
19、me是姓 名,Sex是性别,Age是年龄,Class是班级,N。和Age为整型,其余为字符型,则:(I)实现插入记录(25,李明男,21,,9503)的SQL语句是:INSERTINTO S(No, Name, Name, Age, Class)VALUES (25,李明,男,21, 95031);(2)插入,95031,班学号为30、姓名为郑和的学生记录,要用的SQL语句是:INSERTINTO S(No, Name, Class)VALUES (30,郑和,95031)(3)实现将学号为10的学生姓名改为,王华,、性别改为女,的SQL语句是:UPDATE S5丁回联二王华,Sex,女,WH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库原理与应用 教学 作者 玲第3章习题答案 数据库 原理 应用 习题 答案
限制150内