数据库原理及应用SQL习题集含复习资料教案.doc
精品文档?数据库原理及应用SQL?课程习题集一、单项选择题1. ER模型属于A.概念模型B.层次模型C.网状模型D.关系模型2. 数据库系统的三级模式结构中,定义索引的组织方式属于A.概念模式B.外模式C.逻辑模式D.内模式3. SQL语言中,实现数据存取控制功能的语句是和DROP 和DELETE和REVOKE 和ROLLBACK4. 物理结构的改变不影响整体逻辑结构的性质,称为数据库的 5. 全局ER模型的设计,需要消除属性冲突、命名冲突和A.结构冲突 B.联系冲突C.类型冲突D.实体冲突6. 一个供给商可供给多种零件,而一种零件可由多个供给商供给,那么实体供给商与零件之间的联系是A.一对一 B.一对多C.多对一D.多对多7. 表达式“AGE BETWEEN 18 AND 24等价于A.AGE>18 AND G<24B.AGE>=18 AND G<24C.AGE>18 AND G<=24D.AGE>=18 AND AGE<=248. 在数据库设计中,独立于计算机的硬件和DBMS软件的设计阶段是A.概念设计 B.物理设计C.逻辑设计D.系统实施9. 按照PX协议规定,一个事务要更新数据对象Q,必须先执行的操作是QQC.LOCK SQ XQ10. 以下聚集函数中不忽略空值(null)的是 A.SUM(列名)B.MAX(列名)C.COUNT(*)D.AVG(列名)11. 数据库系统中,对用户使用的数据视图的描述称为 A概念模式B内模式C存储模式D外模式12. 数据库的三级模式之间存在着两级映象,使数据库系统具有较高的数据 A相容性B独立性C共享性D一致性13. 实体完整性规那么是指关系中 A不允许有空行B主键不允许有空值C不允许有空列D外键不允许有空值14. 实现关系代数投影运算的SQL子句是 ASELECTBORDER BYCFROM DWHERE15. SQL语言中,用GRANTREVOKE语句实现数据库的 A并发控制 B完整性控制C一致性控制D平安性控制16. 在事务依赖图中,假设各个事务之间的依赖关系构成循环,那么就会出现 A死锁B共享锁C活锁D排它锁17. 以下关于事务调度和封锁的描述中,正确的选项是 A遵守两段封锁协议的并发事务一定是可串行化的B可串行化的并发事务一定遵守两段封锁协议C遵守两段封锁协议的并发事务不一定是可串行化的D遵守两段封锁协议的并发事务一定不会产生死锁18. 数据库与文件系统的根本区别在于 A 提高了系统效率 B 方便了用户使用C 数据的结构化D 节省了存储空间19. 公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是( )。 A.多对多B.一对一C.多对一D.一对多20. “一个事务中的诸操作要么都做,要么都不做,这是事务的( )属性。 A.原子性B.一致性 C.隔离性 D.持续性21. 关系模型中,一个码是 A可以由多个任意属性组成B至多由一个属性组成C由一个或多个属性组成,其值能够惟一标识关系中一个元组D以上都不是22. 数据库DB,数据库系统DBS和数据库管理系统DBMS之间的关系是 包括DB和DBMS包括DB和DBS包括DBS和DBMS就是DB,也就是DBMS23. 区分不同实体的依据是 A.名称B.属性C.对象D.概念24. SQL根本表的创立中是通过( )实现参照完整性规那么的。 D.NOT NULL25. 设计性能较优的关系模式称为标准化,标准化的主要理论依据是( ) 。 26. 在E-R模型转换成关系模型的过程中,以下表达不正确的选项是( )。N联系类型转换一个关系模式1和1N联系类型时,不生成新的关系模式。27. 假设采用关系数据库系统来实现应用,在数据库设计的( )阶段,需要将E-R模型转换为关系数据模型。 28. DBMS普遍采用 方法来保证调度的正确性。A. 索引B. 授权C. 封锁 D. 日志29. 多个事务执行的次序称为 A 步骤B 过程C 流程D 调度30. 如果事务 T 已在数据 R 上加了 X 锁,那么其他事务在数据 R 上 A 只可加 X 锁B 只可加 S 锁 C 可加 S 锁或 X 锁D 不能加任何锁31. 模式的逻辑子集通常称为 A 存储模式B 内模式 C 外模式D 模式 32. SQL语言的GRANT和REVOKE语句主要是用来维护数据库的 。 A 完整性B可靠性C 隔离性D平安性33. 在数据库设计中,将E-R图转换成关系数据模型的过程属于( ) 34. 如果事务 T 已在数据 R 上加了 S 锁,那么其他事务在数据 R 上 A 只可加 X 锁B 只可加 S 锁 C 可加 S 锁或 X 锁D 不能加任何锁 35. 在数据库系统中,视图可以提供数据的 A完整性B 并发性 C 平安性D 可恢复性 36. 事务的持续性是指 A事务中包括的所有操作要么都做,要么都不做B 事务一旦提交,对数据库的改变是永久的C. 一个事务内部的操作对并发的其他事务是隔离的D. 事务必须使数据库从一个一致性状态变到另一个一致性状态37. 一辆汽车由多个零部件组成,且相同的零部件可适用于不同型号的汽车,那么汽车实体集与零部件实体集之间的联系是 A. 1:1B. 1:MC. M:1D. M:N38. 系统故障会造成 A.内存数据丧失B.硬盘数据丧失C.软盘数据丧失D.磁带数据丧失39. 数据库系统核心是 A数据B数据库管理系统 C 数据库用户D数据库管理员40. 构造关系数据模型时,通常采用的方法是( )。 A.从网状模型导出关系模型B.从层次模型导出关系模型 C.从ER图导出关系模型D.以上都不是41. 数据库系统的三级模式中,表达物理数据库的是( )。A.外模式B.模式C.用户模式 D.内模式42. 具有坚实数学理论根底的数据模型是( )。 A.关系模型B.层次模型 C.网状模型D.ER模型43. SQL语言中,实现数据更新功能的语句是和DROP和DELETE和REVOKE和ROLLBACK44. 在关系模型中,关系的每一个属性值( )。 A.不能全同 B.可以全同 C.必须全同D.是不可分割的45. 多个用户同时对同一数据进行操作,描述的是( )。 A.数据库的完整性B.数据库的并发控制C.数据库的恢复 D.数据的完整性46. 一个供给商可供给多种原材料,而一种原材料可由多个供给商供给,那么实体供给商与原材料之间的联系是A.一对一 C.多对一 47. 以下四项中,不包括在数据库维护工作中的是( )。 C.定期维护 48. 如果有两个事务,同时对数据库中同一数据进行操作,不会引起冲突的操作是 。A.一个是DELETE,一个是SELECT B.一个是SELECT,一个是DELETEC.两个都是UPDATED.两个都是SELECT49. SQL语言的结构中,( )有对应的存储文件。 A.视图B.基表 C.视图和基表D.存储文件和视图50. 事务日志用于保存 。 A.程序运行过程B.程序的执行结果C.对数据的更新操作D.对数据的查询操作二、综合设计题51. 某公司欲建立一个定单管理系统,要求保存销售职工信息,产品信息,供给商信息,定货人信息。每个销售职工可销售多种产品,每个产品可被个多个销售职工销售。每个供给商可供给多种产品,而每种产品可由多个供给商供给 。每个定货人可订购多种产品,而每种产品可由多个定货人订购。销售职工有:职工号,姓名, ;供给商有:供给商号,姓名, ,地址;产品有:产品号,产品名称,型号规格。定货人有:定货人号,姓名, ,地址;每次定货有定货日期和数量。要求:1根据上述语义设计E-R模型,要求标注联系类型。2将其转化为关系模式。注明每个关系的主键和外键。52. 某个工厂中有多个工段,每个工段有多个车间,每个车间只在一个工段中, 每个车间生产多种产品,而每种产品可由多个车间生产。工段有:工段号,工段名;车间有:车间号,车间名,车间领导;产品有:产品号,产品名称,型号规格。每个车间完成的产品都有完工日期。1根据上述语义设计E-R模型,要求标注联系类型,可省略属性。2 E-R模型转换成关系数据模型,并指出每一个关系的主键和外键(如果存在)。53. 假设某公司在多个地区设有销售部经销本公司的各种产品,每个销售部聘用多名职工,且每名职工只属于一个销售部。销售部有:部门名称、地区和 等属性;产品有:产品编码、品名和单价等属性;职工有:职工号、姓名和性别等属性;每个销售部销售产品有数量属性。1根据上述语义画出ER图,要求在图中画出属性并注明联系的类型。2 试将ER模型转换成关系模型,并指出每个关系模式的主键和外键。54. 假设某公司的业务规那么如下:1公司下设几个部门,如技术部、财务部、市场部等。2每个部门承当多个工程工程,每个工程工程属于一个部门。3每个部门有多名职工,每一名职工只能属于一个部门。4一个部门可能参与多个工程工程。5工程工程有工程号、工程名两个属性;部门有部门号、部门名称两个属性;职工有职工号、姓名、性别属性;问题:1.根据上述规那么设计E-R模型。2.将E-R模型转换成关系数据模型,并指出每个关系的主键和外键。55. 某企业集团有假设干工厂,每个工厂生产多种产品,且每一种产品可以在多个工厂生产,每个工厂按照固定的方案数量生产产品;每个工厂聘用多名职工,且每名职工只能在一个工厂工作,工厂聘用职工有聘期和工资。工厂的属性有工厂编号、厂名、地址,产品的属性有产品编号、产品名、规格,职工的属性有职工号、姓名。1根据上述语义画出ER图,在ER图中需注明实体的属性、联系的类型及实体的标识符。2 将E-R模型转换成关系模型,并指出每个关系模式的主键和外键。三、编程题156. 在供给商、零件数据库中有以下3个关系模式:供给商:S(SNO,SNAME,CITY,STATUS) 零件:P(PNO,PNAME,WEIGHT,COLOR,CITY) 供给货:SP(SNO,PNO,QTY) 供给货关系SP表示某供给商SNO,供给了PNO零件,数量为QTY。用SQL语言完成以下操作: 1 求供给红色零件的供给商名字; 2 求北京供给商的号码、名字和状况(STATUS); 3 求零件P2的总供给量;4 把零件P2的重量增加5公斤,颜色该为黄色。5 统计每个供给商供给的工程总数。 6 建立一个存储过程,输入零件编号显示零件的PNAME,WEIGHT,COLOR,CITY57. 假设新华书店数据库中有2个关系模式: 出版社出版社编号,出版社名称,出版社地址图书图书编号,书名,出版社编号,图书分类,定价试用SQL语句完成下题。1检索出版社编号为“CS的图书编号、书名和定价。2查询图书分类为“教材的书名、定价和出版社名称。3按照出版社编号统计每个出版社出版的图书有多少种和平均定价。4检索由高等教育出版社出版、图书分类为“教材且定价超过30元的图书编号和书名。 5. 删除图书编号“的图书信息6. 建立一个存储过程,统计各分类的图书的本数。58. 设有三个关系模式如下:学生S(S#,SNAME,AGE,SEX) 各属性的含义为:学号,姓名,年龄,性别学习SC(S#,C#,GRADE) 各属性的含义为:学号,课程号,成绩课程C(C#,CNAME,TEACHER) 各属性的含义为:课程号,课程名,教师于以上关系模式试用SQL语句答复以下题:1统计男生和女生的人数。2.检索教师张明所授课程的课程号和课程名。4.选修数据库原理的学生名单。5.删除200030号学生的选课记录。6.建立一个存储过程,通过输入学号,显示学生选课门数.59. 职工职工号,姓名,性别,职务,家庭地址,部门编号部门部门编号,部门名称,地址, 保健保健卡编号,职工号,检查身体日期,健康状况用SQL语句完成以下问题:1.查找所有女科长的姓名和家庭地址;2.查找“办公室的科长姓名和家庭地址;3.统计“财务科中健康状况为“良好的职工人数。4.删除职工关系表中职工号为“3016的记录;5.将职工号为“3061的职工的健康状况改为“一般;6.建立健康状况为“差的职工的视图。60. 有三个关系部门(部门号,名称,负责人编号,联系 .职工(职工号,姓名,出生日期,性别,工资,部门号,职称) 医疗(职工号,就医日期,医疗费用,医院名称,诊断结果)用SQL语言实现以下问题:1.检索职工“卢仪作为部门负责人所在部门的名称和联系 ;2.检索在“协和医院中没有就医记录的职工号、姓名和部门名称;3.将职工号为 3301的职工每次的医疗费用减半;4.统计每个职工的医疗费用总和。5.定义一个没有任何医疗记录的职工的职工号、姓名视图AAA。6 建立一个存储过程,以职工号为形参,显示该职工的医疗清单。四、编程题261. 用PB编程程序,某登录界面如下:数据库中有表LOGINTID,PASSWORD,ROLE,请写出该窗口上控件cb_1的clicked事件的程序。当通过验证后进入窗口W-mian,否那么提示:“你是非法用户,不能进入系统62. 用PB编写程序,有窗口W_data能完成对数据的管理,如图请对分别对cb_1,cb_2,cb_3,cb_4编程。63. 如图lv_1为列表视图,报表风格,当w_list翻开时lv_list中显示数据库中学生表的所有学生的信息。请为w_1的open事件编程。使用表:学生姓名,性别,年龄,系别64. 用PB编程,如图1点击菜单中的注册新用户,翻开w_new.1 写出菜单项退出的clicked事件中的代码.2 在sle_1中输入新用户名,如果此用户名已存在那么出现消息框,提示此用户名已存在,请另输入用户名.3 写出cb_1的clicked事件中的代码.使用表user(username,password,role)65. 用PB编写程序,界面如图:1 对w_data的open事件编程,使w_data一翻开dw_1中就显示数据.2 对w_data的closequery事件编程,使dw_1中的数据发生改变而又未保存就退出窗口时给用户一个消息框提示.五、简答题略答案一、单项选择题1. A2. D3. C4. A5. A6. D7. D8. A9. D10. C11. D12. B13. B14. A15. D16. A17. A18. C19. C20. A21. C22. A23. B24. B25. A26. C27. C28. C29. D30. D31. D32. D33. C34. B35. C36. D37. D38. A39. B40. C41. D42. A43. B44. D45. B46. D47. B48. D49. B50. C二、综合设计题51. 供给商供给商号,姓名 , 主键:供给商号外键: 产品产品号,名称,规格,单价主键:产品号外键:供给产品号,供给商号,数量主键:产品号,供给商号 外键:产品号,供给商编号销售职工职工号,姓名,工资主键:职工号定货人定货人号,姓名,地址, 主键:定货人号订购定货人号,职工号,产品号,时间,数量主键:定货人号,职工号,产品号 外键:定货人号,职工号,产品号52. 工段工段号,工段名 主键:工段号 车间车间号,车间名,车间领导,工段号主键:车间号 外键:工段号产品产品号,产品名称,型号规格 主键:产品号 生产产品号,车间号,完工日期 主键:产品号,车间号外键:产品号,车间号。53. 销售部部门名称、地区、 主键:部门名称产品产品编码、品名、单价主键:产品编码职工职工号、姓名、性别、部门名称主键:职工号 外键:部门名称销售部门名称、产品编码、数量主键:部门名称、产品编码外键:部门名称、产品编码54. 工程工程工程号、工程名,部门号主键:工程号 外键:部门号部门部门号、部门名称主键:部门号职工职工号、姓名、性别、部门号主键:职工号,外键:部门号55. 工厂工厂编号、厂名、地址主键:工厂编号产品产品编号、产品名、规格主键:产品编号职工职工号、姓名、工资、聘期、工厂编号主键:职工号 外键:工厂编号生产产品编号、工厂编号、方案数量主键:产品编号、工厂编号 外键:产品编号、工厂编号三、编程题156. 1 SELECT SNAME FROM S WHERE SNO IN (SELECTSNO FROM P,SP WHERE PCOLOR=红色AND PPNO=SPPNO); 2 SELECT SNO,SNAME,STATUS FROM S WHERE SCITY=北京 3 Select sum(QTY)from SP WHERE PNO=P24 UPDATE P SET WEIGHT=WEIGHT十5,COLOR=黄色 WHERE PNO=P25 Select SNO,count(distinct PNO) From SP Group by(SNO)6 CTREATE PROC P_LIST Id CHAR(4)As Select PNAME,WEIGHT,COLOR,CITYFrom PWHERE PNO=Id57. 1 SELECT 图书编号, 书名 , 定价from 出版社, 图书where出版社. 出版社编号=图书. 出版社编号 and出版社编号=CS2SELECT 书名,定价 ,出版社名称from 图书where 图书分类= 教材3Selcet 出版社编号,count( distinct 图书分类),avg(定价)from 图书group by(出版社编号)4 SELECT 图书编号, 书名 from 出版社, 图书where出版社. 出版社编号=图书. 出版社编号 and 高等教育出版社 and图书分类=教材 and 定价>305 delete from 图书 where 图书编号 =6 create proc book_countas Selcet 图书分类,count( *) from 图书 group by(图书分类)58. 1 SELECT SEX ,COUNT*from S group by(sex)2SELECT C#,CNAME FROM Cwhere TEACHER=张明3 SELECT count(*) FROM S,SC,CWhere C.C#=SC.C# AND S.S#= SC.S# AND C.TEACHER=张明4 SELECT S.SNAME FROM C,SC,CWhere C.C#=SC.C# AND S.S#= SC.S# AND C. CNAME =数据库原理5 DELETE FROM S WHERE S# =2000306 CREATE PROC c_count id int for select count(distinct .课程编号)as 选课门数from 选课where 学号=id;59. 1 SELECT 姓名,家庭地址FROM职工WHERE性别=女 and职务=科长2SELECT 姓名,家庭地址FROM职工, 部门WHERE 部门.部门名称=办公室and职工.职务=科长 And 部门. 部门编号=职工.部门编号3 SELECT count(*)FROM职工, 部门, 保健WHERE 部门.部门名称= 财务科and保健. 健康状况=良好 And 部门. 部门编号=职工.部门编号And 保健. 职工号=职工.职工号4 delete form 职工 where 职工编号=30615 update 保健 set 健康状况=一般where职工编号=30616 create view bad_health as SELECT *FROM职工, 保健WHERE 保健. 健康状况=差 And 保健. 职工号=职工.职工号60. 1 SELECT 部门.名称, 部门.联系 FROM 职工,部门 WHERE职工. 姓名=卢仪 AND 部门.负责人编号 =职工. 职工号 2 SELECT 职工号,姓名,部门名称FROM 职工 WHERE职工号 not in Select 职工号 From医疗 Where医院名称= 协和医院3 UPDATE医疗SET 医疗费用=医疗费用/2 where职工号=3301 4 select 职工号 ,sum(医疗费用)from医疗 group by (职工号)5 create view AAA as SELECT 职工号,姓名 FROM 职工WHERE职工号 not in Select 职工号 From医疗 6 create proc health_list id char(4) as select 职工号,就医日期,医疗费用,医院名称,诊断结果from 医疗 where职工号=id四、编程题261. int id select number into :id from teacherWhere number=:sle_1.text and password=:sle_2.text;If sqlca.sqlcode=100 thenMessagebox(“警告,“输入的用户或口令错误)End if 62. 1添加的clicked事件int ii=dw_1.insertrow(0)dw_1.scrolltorow(i)dw_1.setfocus()2 删除的clicked事件dw_1.deleterow(0)3 保存的clicked事件int jj=dw_1.update()if j= -1 then messagebox("information","数据无法保存")elsemessagebox("information","数据已保存")end if4关闭的clicked事件close(parent)63. int i,jstring outname,outsex,soutageint outagelv_1.AddColumn("姓名", Left!, 600) lv_1.AddColumn("性别", Left!, 400) lv_1.AddColumn("年龄", Left!, 400) declare namecur cursor forselect name,sex,agefrom student;open namecur;if sqlca.sqlcode=-1 thenmessagebox("sql error",sqlca.sqlerrtext)elsefetch namecur into :outname,:outsex,:outage;i=1do while sqlca.sqlcode=0lv_1.addItem (outid,1) lv_1.Setitem (i,1,outname)lv_1.Setitem (i,2,outsex)soutage=string(outage)lv_1.SetItem (i,3,soutage) fetch namecur into :outname,:outsex,:outage;i+loop 64. 1 close(parent)2 sle_1 的modifed事件string abc;select roleinto :abcfrom userwhere username=:sle_1.text;if sqlca.sqlcode=100 then messagebox(“提示, 此用户名已存在,请另输入用户名)end if 3 insert into user values(:sle_1.text,:sle_2.text.:ddlb_1.text)65. 1 dw_1.settransobject(sqlca)2 integer m if dw_1.modifiedcount()+dw_1.deletedcount()>0 thenm=messagebox("信息","数据已改变,是否保存",question!,yesnocancel!,1)if m=1 thendw_1.update()=-1 return 0elseif m=2 then return 0elseif m=3 then return 1 end ifend if五、简答题略