当前位置:文档之家› 关系数据库与SQL语言练习答案(完整版)

关系数据库与SQL语言练习答案(完整版)

一.1.选择题:1.B2.B3.C4.D5.A6.B7.C8.C9.D10.B11.C12.A13.C14.B15.A16.C17.A18.C19.D2.填空1. 外模式2. 个体3. 实体集4. 一对一,一对多,多对多5. 型值6. 层次模型网关模型关系模型7. 并发性控制8. 集成性9. 封装对象类10. 多媒体数据库3.简答:1.数据:描述事物的符号记录称为数据。

数据的种类有文字、图形、图象、声音、正文等等。

数据与其语义是不可分的。

数据库:数据库是长期储存在计算机内、有组织的、可共享的数据集合。

数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。

数据库系统:数据库系统(dbs)是指在计算机系统中引入数据库后的系统构成。

数据库系统由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。

数据库管理系统:数据库管理系统(dbms)是位于用户与操作系统之间的一层数据管理软件。

用于科学地组织和存储数据、高效地获取和维护数据。

dbms主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。

2.使用数据库系统的好处是由数据库管理系统的特点或优点决定的。

使用数据库系统的好处很多,例如可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护的负担等。

使用数据库系统可以大大提高应用开发的效率。

因为在数据库系统中应用程序不必考虑数据的定义、存储和数据存取的具体路径,这些工作都由dbms来完成。

用一个通俗的比喻,使用了dbms就如有了一个好参谋好助手,许多具体的技术工作都由这个助手来完成。

开发人员就可以专注于应用逻辑的设计而不必为管理数据的许许多多复杂的细节操心。

还有,当应用逻辑改变,数据的逻辑结构需要改变时,由于数据库系统提供了数据与程序之间的独立性。

数据逻辑结构的改变是dba的责任,开发人员不必修改应用程序,或者只需要修改很少的应用程序。

从而既简化了应用程序的编制,又大大减少了应用程序的维护和修改。

使用数据库系统可以减轻数据库系统管理人员维护系统的负担。

因为dbms在数据库建立、运用和维护时对数据库进行统一的管理和控制,包括数据的完整性、安全性,多用户并发控制,故障恢复等等都由dbms执行。

总之,使用数据库系统的优点是很多的,既便于数据的集中管理,控制数据冗余,可以提高数据的利用率和一致性,又有利于应用程序的开发和维护。

读者可以在自己今后的工作中结合具体应用,认真加以体会和总结。

3. 文件系统与数据库系统的区别:文件系统面向某一应用程序,共享性差、冗余度大,独立性差,纪录内有结构、整体无结构,应用程序自己控制。

数据库系统面向现实世界,共享性高、冗余度小,具有高度的物理独立性和一定的逻辑独立性,整体结构化,用数据模型描述,由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力。

4. 实体,实体型,实体集,属性,码,实体联系图(e-r图)实体:客观存在并可以相互区分的事物叫实体。

实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体称为实体型。

实体集:同型实体的集合称为实体集。

属性:实体所具有的某一特性,一个实体可由若干个属性来刻画。

码:唯一标识实体的属性集称为码。

实体联系图:e-r图提供了表示实体型、属性和联系的方法:·实体型:用矩形表示,矩形框内写明实体名。

·属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。

·联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1 : 1,1 : n或m : n)。

二.1.选择1.D2.D3.B4.A5.C6.C7.A8.B9.B10.C11.D12.C13.A14.C15.B16.C17.B18.C2.填空1. 相容的2. 查询所有的数据3. 关系代数4. 差或除法5. 域6. 主属性7. 5元8. 两个不变性3. 计算题1. ∏s#,c#(SC)÷∏c#(σc#=’c1’∨c#=’c2’(C))×∏sn(S)2. ∏s#,c#(SC)÷∏c#(σcn=’数据库原理’(C))×∏s#,sn(S)三.1.select * from student;select * from sc;2.select 姓名,年龄from studentwhere 所在系=’计算机系’;3.select 学号,成绩from scwhere 课程号=’c01’4.select *from scwhere 成绩between 70 and 805.select 姓名,年龄from studentwhere 年龄between 18 and 20 and 性别=’男’6.select *from scwhere 学号=’951201’7.select max(成绩)from scwhere 课程号=’c01’8.select distinct 课程号from sc9.select max(年龄),min(年龄)from student10.select avg(成绩),max(成绩),min(成绩)from scwhere 课程号=’c02’11.select count(学号)from studentgroup by 所在系12.select count(学号),max(成绩)from scgroup by 课程号13.select count(课程号)from scgroup by 学号order by count(课程号)14.select count(student.学号),avg(成绩)from sc,studentwhere student.学号=sc.学号group by 所在系15.select 学号,count(课程号), avg(成绩)from scgroup by 学号having count(课程号)>=216.select 学号,sum(成绩)from scgroup by 学号having sum(成绩)>20017.select 姓名,所在系from sc,studentwhere 课程号=’c02’ and student.学号=sc.学号18.select 姓名,课程号,成绩from sc,studentwhere 成绩>=80 and student.学号=sc.学号order by 成绩desc19.select 姓名,年龄,成绩from sc,student,coursewhere 所在系=’计算机’and 课程名=’数据库’and student.学号=sc.学号and sc.课程号=course.课程号20.select student.学号,姓名,course.课程号,成绩from sc,student,coursewhere student.学号=sc.学号and sc.课程号=course.课程号21.select top 3 student.学号,姓名,所在系,成绩from sc,student,coursewhere 课程名=’数据库’ student.学号=sc.学号and sc.课程号=course.课程号order by 成绩desc22.select distinct s1.学号,s1.课程号from sc s1,sc s2where s1.课程号=s2.课程号order by s1.课程号23.select distinct s1.姓名,s1.年龄from student s1,student s2where s1.年龄=s2.年龄24.select course.课程号,course.课程名from course,scwhere course.课程号=sc.课程号and course.课程号not in (select 课程号from sc)25.select 姓名student_name,课程名course_name,成绩grade into new_scfrom student,sc,coursewhere student.学号=sc.学号and sc.课程号=course.课程号and sc.成绩is not null26.select student.所在系,student.姓名,student.性别,course.课程号,sc.成绩from student,course,scwhere sc.学号=student.学号and sc.课程号=course.课程号and student.所在系=’计算机系’unionselect student.所在系,student.姓名,student.性别,course.课程名,sc.成绩from student,course,scwhere student.学号=sc.学号and sc.课程号=course.课程号and student.所在系=’信息系’27.1.select 姓名,所在系from studentwhere 学号in(select 学号from sc where 课程号=’c01’)2.select 学号,姓名from student where 学号in(select distinct 学号from sc where 成绩>80)and 所在系=’数学系’3.select 课程名from coursewhere 课程号in (select 课程号from sc where 学号in(select 学号from student where 所在系=’计算机系’))4.select 学号,姓名,所在系from studentwhere 学号in(select top 3 学号from sc where 课程号in(select 课程号from course where 课程名=’vb’) order by 成绩desc)28.insert into test_t values(null,'b1','')insert into test_t values('1','b2','c2')insert into test_t values('2','b3','')insert into test_t values(null,'b4','c4')29.(1)select 学号,课程号into new_scfrom sc,studentwhere sc.学号=student.学号and 所在系=’计算机系’ and 成绩>80(2)create table new_sc (学号varchar(7),课程号varchar(10));insert into new_scselect 学号,课程号from sc,studentwhere 成绩>80 and 所在系=’计算机系’ and student.学号=sc.学号30.deletefrom scwhere 成绩<5031.子查询实现:deletefrom scwhere 成绩<50 and 学号in( select 学号from student where 所在系=’信息系’)连接查询实现deletefrom scwhere 学号in(select 学号from sc,student where sc.学号=student.学号and 成绩<50 and 所在系=’信息系’)32.update scset 成绩=成绩+10where 课程号=’c01’33.连接查询实现:update scset 成绩=成绩+10where 学号in(select 学号from sc,student,coursewhere sc.学号=student.学号and course.课程号=sc.课程号and 所在系=’计算机系’ and sc.课程名=’计算机文化学’)子查询实现:update scset 成绩=成绩+10where课程号in (select 课程号from course where 课程名=’计算机文化学’) and 学号in ( select 学号from student where所在系=’计算机系’)四.1.选择题1.c2.c3.c4.a5.b6.d7.c8.d9.d10.b2.1. grant2.分解具有无损连接性3.1NF4.不是五.1.C2.C3.A4.A5.A6.B7.C8.B9.A10.B11.D12.A13.D2.1. 一次加锁法顺序加锁法2.利用数据冗余3.数据存储3.1.2.车队(车队号,车队名)主码:车队号车辆(车牌号,出厂日期,厂家)主码:车牌号司机(司机编号,姓名,性别)主码:司机编号聘用(车队号,司机编号,聘期)主码:车队号,司机编号外码:车队号(引用自车队关系),司机编号(引用自司机关系)车辆使用(司机编号,车牌号,使用日期,公里数)主码:司机编号,车牌号,使用日期,公里数外码:司机编号(引用自司机关系),车牌号(引用自车辆关系)车辆归属(车队号,车牌号)主码:车队号,车牌号外码:车队号(引用自车队关系),车牌号(引用自车辆关系)。

相关主题