文档库 最新最全的文档下载
当前位置:文档库 › 数据库原理及应用SQL_习题集(含答案)

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

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

《数据库原理及应用SQL》课程习题集

一、单选题

1. ER模型属于()

A.概念模型

B.层次模型

C.网状模型

D.关系模型

2.数据库系统的三级模式结构中,定义索引的组织方式属于()

A.概念模式

B.外模式

C.逻辑模式

D.内模式

3. SQL语言中,实现数据存取控制功能的语句是()

A.CREATE和DROP?

B.INSERT和DELETE

C.GRANT和REVOKE?

https://www.wendangku.net/doc/972134512.html,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

https://www.wendangku.net/doc/972134512.html,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

15. D

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

35. C

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

五、简答题

(略)……

相关文档