数据库原理及应用sql_习题集含答案)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数据库原理及应用SQL》课程习
题集
一、单选题
1. ER模型属于()
A.概念模型
B.层次模型
C.网状模型
D.关系模型
2.数据库系统的三级模式结构中,定义索引的组织方式属于()
A.概念模式
B.外模式
C.逻辑模式
D.内模式
3. SQL语言中,实现数据存取控制功能的语句是()
A.CREATE和DROP?
B.INSERT和DELETE
C.GRANT和REVOKE?
MIT和ROLLBACK
4.物理结构的改变不影响整体逻辑结构的性质,称为数据库的()
A.物理数据独立性
B.逻辑数据独立性
C.物理结构独立性?
D.逻辑结构独立性
5.全局ER模型的设计,需要消除属性冲突、命名冲突和()
A.结构冲突?
B.联系冲突
C.类型冲突
D.实体冲突
6.一个供应商可供应多种零件,而一种零件可由多个供应商供应,则实体供应商与零件之间的联系是()
A.一对一?
B.一对多
C.多对一
D.多对多
7.表达式“AGE BETWEEN 18 AND 24”等价于()
A.AGE>18 AND G<24
B.AGE>=18 AND G<24
C.AGE>18 AND G<=24
D.AGE>=18 AND AGE<=24
8.在数据库设计中,独立于计算机的硬件和DBMS软件的设计阶段是()
A.概念设计?
B.物理设计
C.逻辑设计
D.系统实施
9.按照PX协议规定,一个事务要更新数据对象Q,必须先执行的操作是()
A.READ(Q)
B.WRITE(Q)
C.LOCK S(Q)
D.LOCK X(Q)
10.下列聚集函数中不忽略空值(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子句是(???)
A.SELECT B.ORDER??BY C.FROM? D.WHERE
15. SQL语言中,用GRANT/REVOKE语句实现数据库的(???)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)之间的关系是()
A.DBS包括DB和DBMS
B.DBMS包括DB和DBS
C.DB包括DBS和DBMS
D.DBS就是DB,也就是DBMS
23.区分不同实体的依据是()
A.名称
B.属性
C.对象
D.概念
24. SQL基本表的创建中是通过(?? ? )实现参照完整性规则的。

A.主键子句?
B.外键子句??
C.检查子句
D.NOT NULL
25.设计性能较优的关系模式称为规范化,规范化的主要理论依据是( ) 。

A.关系规范化理论
B.关系运算理论?????????
C.代数运算理论
D.数理逻辑理论
26.在E-R模型转换成关系模型的过程中,下列叙述不正确的是(??)。

A.每个实体类型转换成一个关系模式
B.每个M∶N联系类型转换一个关系模式
C.每个联系类型转换成一个关系模式
D.在处理1∶1和1∶N联系类型时,不生成新的关系模式。

27.假如采用关系数据库系统来实现应用,在数据库设计的(? )阶段,需要将E-R模型转换为关系数据模型。

A.概念设计
B.物理设计?
C.逻辑设计
D.运行阶段
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图转换成关系数据模型的过程属于( )
A.需求分析阶段
B.概念设计阶段
C.逻辑设计阶段
D.物理设计阶段
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:1 B. 1:M
C. M:1
D. M:N
38.系统故障会造成(???? )
A.内存数据丢失
B.硬盘数据丢失
C.软盘数据丢失
D.磁带数据丢失
39.数据库系统核心是()
A数据B数据库管理系统
C 数据库用户D数据库管理员
40.构造关系数据模型时,通常采用的方法是(?? )。

A.从网状模型导出关系模型
B.从层次模型导出关系模型?????
C.从E—R图导出关系模型
D.以上都不是
41.数据库系统的三级模式中,表达物理数据库的是( ???? )。

A.外模式
B.模式
C.用户模式?
D.内模式
42.具有坚实数学理论基础的数据模型是(? ?? )。

A.关系模型
B.层次模型?????????
C.网状模型
D.E—R模型
43. SQL语言中,实现数据更新功能的语句是()
A.CREATE和DROP
B.INSERT和DELETE
C.GRANT和REVOKE
MIT和ROLLBACK
44.在关系模型中,关系的每一个属性值(?? )。

A.不能全同?
B.可以全同?????
C.必须全同
D.是不可分割的
45.多个用户同时对同一数据进行操作,描述的是(??)。

A.数据库的完整性
B.数据库的并发控制
C.数据库的恢复?
D.数据的完整性
46.一个供应商可供应多种原材料,而一种原材料可由多个供应商供应,则实体供应商与原材料之间的联系是()
A.一对一?
B.一对多
C.多对一?
D.多对多
47.以下四项中,不包括在数据库维护工作中的是(??? )。

A.故障维护
B.设计关系模型
C.定期维护?
D.日常维护
48. 如果有两个事务,同时对数据库中同一数据进行操作,不会引起冲突的操作是()。

A.一个是DELETE,一个是SELECT
B.一个是SELECT,一个是DELETE
C.两个都是UPDATE
D.两个都是SELECT
49. 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模型转换成关系模型,并指出每个关系模式的主键和外键。

三、编程题1
56.在供应商、零件数据库中有以下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,CITY
57.假设新华书店数据库中有2个关系模式:
?出版社(出版社编号,出版社名称,出版社地址)
图书(图书编号,书名,出版社编号,图书分类,定价)
试用SQL语句完成下题。

1.检索出版社编号为“CS”的图书编号、书名和定价。

2.查询图书分类为“教材”的书名、定价和出版社名称。

3.按照出版社编号统计每个出版社出版的图书有多少种和平均定价。

4.检索由高等教育出版社出版、图书分类为“教材”且定价超过30元的图书编号和书名。


5. 删除图书编号“2000301”的图书信息
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 建立一个存储过程,以职工号为形参,显示该职工的医疗清单。

四、编程题2
61.用PB编程程序,某登录界面如下:
数据库中有表LOGIN(TID,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. A
2. D
3. C
4. A
5. A
6. D
7. D
8. A
9. D
10. C
11. D
12. B
13. B
14. A
16. A
17. A
18. C
19. C
20. A
21. C
22. A
23. B
24. B
25. A
26. C
27. C
28. C
29. D
30. D
31. D
32. D
33. C
34. B
36. D
37. D
38. A
39. B
40. C
41. D
42. A
43. B
44. D
45. B
46. D
47. B
48. D
49. B
50. C
二、综合设计题
51.
供应商(供应商号,姓名,电话)
主键:供应商号外键:
产品(产品号,名称,规格,单价)
主键:产品号外键:
供应(产品号,供应商号,数量)
主键:(产品号,供应商号)外键:产品号,供应商编号销售职工(职工号,姓名,工资)
主键:职工号
定货人(定货人号,姓名,地址,电话)
主键:定货人号
订购(定货人号,职工号,产品号,时间,数量)
主键:(定货人号,职工号,产品号)外键:定货人号,职工号,产品号
52.
工段(工段号,工段名)
主键:工段号
车间(车间号,车间名,车间领导,工段号)
主键:车间号外键:工段号
产品(产品号,产品名称,型号规格)
主键:产品号
生产(产品号,车间号,完工日期)
主键:(产品号,车间号)外键:产品号,车间号。

53.
销售部(部门名称、地区、电话)
主键:部门名称
产品(产品编码、品名、单价)
主键:产品编码
职工(职工号、姓名、性别、部门名称)
主键:职工号外键:部门名称
销售(部门名称、产品编码、数量)
主键:(部门名称、产品编码)外键:部门名称、产品编码
54.
工程项目(工程号、工程名,部门号)主键:工程号外键:部门号
部门(部门号、部门名称)
主键:部门号
职工(职工号、姓名、性别、部门号)主键:职工号,外键:部门号
55.
工厂(工厂编号、厂名、地址)
主键:工厂编号
产品(产品编号、产品名、规格)
主键:产品编号
职工(职工号、姓名、工资、聘期、工厂编号)
主键:职工号外键:工厂编号
生产(产品编号、工厂编号、计划数量)
主键:(产品编号、工厂编号)外键:产品编号、工厂编号
三、编程题1
56. 1 SELECT SNAME FROM S WHERE SNO IN (SELECTSNO FROM P,SP WHERE P.COLOR=‘红色’AND P.PNO=SP.PNO);
2. SELECT SNO,SNAME,STATUS FROM S WHERE S.CITY=‘北京’
3. Select sum(QTY)from SP WHERE PNO=‘P2’.
4UPDATE P SET WEIGHT=WEIGHT十5,COLOR=‘黄色’ WHERE PNO=‘P2’
5Select SNO,count(distinct PNO) From SP Group by(SNO) 6CTREATE PROC P_LIST @Id CHAR(4)
As Select PNAME,WEIGHT,COLOR,CITY
From P
WHERE PNO=@Id
57. 1 SELECT 图书编号, 书名 , 定价
from 出版社, 图书
where出版社. 出版社编号=图书. 出版社编号 and出版社编号=’CS’
2.SELECT 书名,定价 ,出版社名称
from 图书
where 图书分类= ‘教材’
3.Selcet 出版社编号,count( distinct 图书分类),avg(定价)from 图书
group by(出版社编号)
4 SELECT 图书编号, 书名 from 出版社, 图书
where出版社. 出版社编号=图书. 出版社编号
and 高等教育出版社 and图书分类=’教材 and 定价>30
5 delete from 图书 where 图书编号 =’2000301’
6 create proc book_count
as Selcet 图书分类,count( *) from 图书 group by(图书分类)
58. 1 SELECT SEX ,COUNT(*)from S group by(sex) 2.SELECT C#,CNAME FROM C
where TEACHER=’张明‘
3. SELECT count(*) FROM S,SC,C
Where C.C#=SC.C# AND S.S#= SC.S# AND C.TEACHER=’张明‘.4 SELECT S.SNAME FROM C,SC,C
Where C.C#=SC.C# AND S.S#= SC.S# AND C. CNAME =’数据库原理‘
5 DELETE FROM S WHERE S# =‘200030’
6CREATE PROC c_count @ id int for
select count(distinct .课程编号)as 选课门数
from 选课
where 学号=@id;
59. 1 SELECT 姓名,家庭地址
FROM职工
WHERE性别=’女’ and职务=’科长’
2.SELECT 姓名,家庭地址
FROM职工, 部门
WHERE 部门.部门名称=’办公室’and职工.职务=’科长’’ And 部门. 部门编号=职工.部门编号
3. SELECT count(*)
FROM职工, 部门, 保健
WHERE 部门.部门名称=’财务科’and保健. 健康状况=’良好’ And 部门. 部门编号=职工.部门编号And 保健. 职工号=职工.职工号
4 delete form 职工 where 职工编号=’3061’
5 update 保健 set 健康状况=‘一般’where职工编号=’3061’
6 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
四、编程题2
61. int id
select number
into :id
from teacher
Where number=:sle_1.text and password=:sle_2.text;
If sqlca.sqlcode=100 then
Messagebox(“警告”,“输入的用户或口令错误”)
End if
62. 1添加的clicked事件
int i
i=dw_1.insertrow(0)
dw_1.scrolltorow(i)
dw_1.setfocus()
2 删除的clicked事件
dw_1.deleterow(0)
3 保存的clicked事件
int j
j=dw_1.update()
if j= -1 then
messagebox("information","数据无法保存") else
messagebox("information","数据已保存") end if
4关闭的clicked事件
close(parent)
63. int i,j
string outname,outsex,soutage
int outage
lv_1.AddColumn("姓名", Left!, 600)
lv_1.AddColumn("性别", Left!, 400)
lv_1.AddColumn("年龄", Left!, 400)
declare namecur cursor for
select name,sex,age
from student;
open namecur;
if sqlca.sqlcode=-1 then
messagebox("sql error",sqlca.sqlerrtext) else
fetch namecur into :outname,:outsex,:outage; i=1
do while sqlca.sqlcode=0
lv_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 role
into :abc
from user
where 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 then m=messagebox("信息","数据已改变,是否保存",question!,yesnocancel!,1)
if m=1 then
dw_1.update()=-1 return 0
elseif m=2 then
return 0
elseif m=3 then return 1 end if end if
五、简答题
(略)……。

相关文档
最新文档