数据库笔试题(答案)

时间:2022-08-30 09:08:46

一、填空题(每题2分,共10分)

1. 索引字段值不唯一,应该使用的索引类型为(  普通索引  )

2. 只有满足联接条件的记录才包含在查询结果中,这种联接为( 内联接)

3. E-R模型的组成包括那些元素(实体 )( 属性 )(关系 )

4. 事务所具有的特性有( 原子性 )(一致性 )( 隔离性 )(持久性 )

5、结构化程序设计的三种基本逻辑结构是顺序结构),(选择结构),(循环结构)

二、选择提  (每题1分,共20分)

1、在删除整表数据,同时保留表结构时,采用(  C )的效率比( A )要高;

A. delete B. drop table    C. truncate Table

2、数据库管理系统中,能实现对数据库中的数据进行插入/修改/删除的功能称为(C);

A.数据定义功能 B.数据管理功能 C.数据操作功能 D.数据控制功能

3、24、在关系模型中,实现"关系中不允许出现相同的元组"的约束是通过(B)。

  A:候选键   B:主键 C:外键 D:超键

4、数据库管理系统DBMS S是 ( D);

A.信息管理的应用软件 B.数据库系统+应用程序

C.管理中的数据库 D.管理数据的软件

5、关系数据库中,实现表与表之间的联系是通过 (B

  A、实体完整性规 B、参照完整性规则

  C、用户自定义的完整性 D、值域

6、设有部门和职员两个实体,每个职员只能属于一个部门,一个部门可以有多名职员,则部门与职员实体之间的联系类型(B)。

  A、m:n   B、1:m C、m:1 D、1:1

7、设有课程和学生两个实体,每个学生可以选修多个课程,一个课程可以有多名学生选修,则课程与学生实体之间的联系类型( A )。

  A、m:n   B、1:m C、m:1 D、1:1

8、如果一个班只能有一个班长,而且一个班长不能同时担任其它班的班长,班级和班长两个实体之间的关系属于(D

  A、m:n   B、1:m C、m:1 D、1:1

9、索引字段值不唯一,应该选择的索引类型为( B )。

  A:主索引  B:普通索引 C:候选索引 D:唯一索引

 

10、如果指定参照完整性的删除规则为"级联",则当删除父表中的记录时( C )。

   A:系统自动备份父表中被删除记录到一个新表中

   B:若子表中有相关记录,则禁止删除父表中记录

  C:会自动删除子表中所有相关记录

   D:不作参照完整性检查,删除父表记录与子表无关

 

11、设有两个数据库表,父表和子表之间是一对多的联系,为控制子表和父表的关联,可以设置"参照完整性规则",为此要求这两个表( B )。

  A:在父表连接字段上建立普通索引,在子表连接字段上建立主索引

  B:在父表连接字段上建立主索引,在子表连接字段上建立普通索引

  C:在父表连接字段上不需要建立任何索引,在子表连接字段上建立普通索引

  D:在父表和子表的连接字段上都要建立主索引

 

12、把实体-联系模型转换为关系模型时,实体之间多对多联系在模型中是通过(C_。

   A:建立新的属性来实现 B:建立新的关键字来实现

   C:建立新的关系来实现 D:建立新的实体来实现

 

13、用树形结构来表示实体之间联系的模型称之为( B)

A. 关系模型 B. 层次模型 C.网状模型  D. 数据模型

14、SQL语句中修改表结构的命令是(  C  )_。

  A:MODIFY TABLE B:MODIFY STRUCTURE

  C:ALTER TABLE D:ALTER STRUCTURE

15 、用SQL语句建立表时将属性定义为主关键字,应使用短语( B )。

  A:CHECK B:PRIMARY KEY

  C:FREE D:UNIQUE

16、SQL实现分组查询的短语是 ( B )。

  A:ORDER BY B:GROUP BY C:HAVING D:ASC

17、数据库系统中采用*技术的目的是为了保证( A

A. 数据的一致性 B. 数据的可靠性 C. 数据的完整性 D. 数据的安全性

 

18、在数据库设计中,表示用户业务流程的常用方法是(A

A. DFD B. 程序流程图 C. E-R图 D. 数据结构图

 

19、为"歌手"表增加一个字段"最后得分"的 SQL 语句是(A

A)ALTER TABLE 歌手 ADD 最后得分 F(6,2)

B)ALTER DBF 歌手 ADD 最后得分 F 6,2

C)CHANGE TABLE 歌手 ADD 最后得分 F(6,2)

D) CHANGE TABLE 学院 INSERT 最后得分

 

20、插入一条记录到"评分"表中,歌手号、分数和评委号分别是"1001"、9.9 和"105",

  正确的 SQL 语句是(C)

A)INSERT VALUES("1001",9.9, "105")INTO;

       评分(歌手号,分数,评委号)

B)INSERT TO 评分(歌手号,分数,评委号);

       VALUES("1001",9.9,"105")

C)INSERT INTO 评分(歌手号,分数,评委号);

       VALUES("1001",9.9,"105")

D)INSERT VALUES("100"9.9"105")TO;

       评分(歌手号,分数,评委号)

 

三、SQL基础题( 共30分)

设教学数据库Education有三个关系:

学生关系S(SNO,SNAME,AGE,SEX,SDEPT);学习关系SC(SNO,CNO,GRADE);课程关系C(CNO,CNAME,CDEPT,TNAME)

查询问题:

1)检索计算机系的全体学生的学号,姓名和性别;  3分

2)检索学习课程号为C2的学生学号与姓名;       3分

3)检索选修课程名为“DS”的学生学号与姓名;    3分

4)检索选修课程号为C2或C4的学生学号;        3分

5)检索至少选修课程号为C2和C4的学生学号;    3分

6)检索不学C2课的学生姓名和年龄; 5分

7)检索学习全部课程的学生姓名;        5分

8)查询所学课程包含学生S3所学课程的学生学号。 5分

 

1)检索计算机系的全体学生的学号,姓名和性别;

SELECT Sno,Sname,Sex

FROM S

WHERE  Sdept =’CS’;

 

(2)检索学习课程号为C2的学生学号与姓名;

1.SELECT  Sno,Sname FROM  S WHERE Sno  IN ( SELECT  Sno FROM  SC WHERE Cno=‘C2’)

2.SELECT  S.Sno,Sname FROM S,SC WHERE S.Sno=SC.Sno  AND    SC.Cno=‘C2’;

 

 3)检索选修课程名为“DS”的学生学号与姓名

    本查询涉及到学号、姓名和课程名三个属性,分别存放在S和C表中,但S和C表没有直接联系,必须通过SC表建立它们二者的联系。 C →  SC → S

基本思路:

1)首先在C表中找出“DS”课程的课程号Cno;

2)然后在SC表中找出Cno等于第一步给出的Cno 集合中的某个元素Cno;

3)最后在S关系中选出Sno等于第二步中Sno 集合中某个元素的元组,取出Sno 和Sname送入结果表列。

SELECT Sno,Sname

FROM S

WHERE  Sno  IN(SELECT Sno FROM SC WHERE Cno  IN (SELECT Cno FROM C WHERE  Cname=‘DS’));

 

 

(4)检索选修课程号为C2或C4的学生学号;

SELECT  Sno

FROM SC

WHERE  Cno=‘C2’  OR Cno=‘C4’;

 

 

(5)检索至少选修课程号为C2和C4的学生学号;

SELECT  Sno

FROM SC  X,SC  Y

WHERE  X.Sno=Y.Sno  AND  X.Cno=‘C2’ AND Y.Cno=‘C4’ ;

 

(6)检索不学C2课的学生姓名和年龄;

A.SELECT  Sname   FROM  S WHERE Sno  NOT IN ( SELECT  Sn    FROM  SC WHERE Cno=‘C2’);

或者

B.SELECT  Sname FROM  S WHERE  NOT EXISTS ( SELECT  * FROM  SC WHERE SC.Sno=S.Sno AND  Cno=‘C2’);

 

(7)检索学习全部课程的学生姓名;

在表S中找学生,要求这个学生学了全部课程。换言之,在S表中找学生,在C中不存在一门课程,这个学生没有学。

SELECT Sname

FROM  S

WHERE  NOT EXISTS

 SELECT *

     FROM C

 

 

四、简答题(每题5分,共20分,其中1,2 任选一题,其他必做题)

1. Oracle的索引有几种,各有何用途

唯一索引索引列的所有值都只能出现一次,即必须唯一

非唯一索引索引列的值可以重复

函数索引:保存了数据列基于function返回的值

反向索引:转了索引码中的字节,是索引条目分配更均匀,用于减少索引叶的竞争。

位图索引适合与决策支持系统;做UPDATE代价非常高;非常适合OR操作符的查询;基数比较少的时候才能建位图索引

域索引:主要用于多媒体数据;

 

2、mysql存储引擎常用的有3种,分别是什么,各自分别有什么特点,应用场景是哪些?

 

1.1 innoDB   

优点:支持事务管理,崩溃修复能力和并发控制,支持自动增长列,支持外键;

缺点:读写效率较差,占用数据空间大;

应用场景:适合于对事务完整性要求高,要求并发控制,需要频繁更新,删除等操作的数据库;

1.2 MyISAM

优点:占用空间小,处理速度快;

缺点:不支持事务的完整性和并发性;

应用场景:适用于表主要用于插入新纪录和读出记录,对应用完整性和并发性要求低;

1.3 MEMORY存储引擎

优点:处理速度快;

缺点:数据易丢失,生命周期短;

应用场景:适用于读写速度快,对数据安全性要求低,使用相对较小的数据库表;

2. 请描述char,varchar,nvarchar的区别

CHAR存储定长数据

VARCHAR存储变长数据

NVARCHAR存储变长数据, Unicode编码,支持多语言

 

3. 何为范式,有几种,试列举并简要描述之

设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小

第一范式(1NF)实体中的某个属性有多个值时,必须拆分为不同的属性

第二范式(2NF)要求数据库表中的每个实例或记录必须可以被唯一地区分

第三范式(3NF)要求一个关系中不包含已在其它关系已包含的非主关键字信息

 

4. 试论Oracle与SQL Server, MYSQL 三类之区别

此题答案可能比较广泛,故不列出标准

 

 

五、综合题(每题10分,共30分,第1题必做,其余任选两题)

--以下各题可能存在多种答案,故不列出标准

1. 请以任何语言实现1+2+3+…+100

 

2. 请以任何语言实现1-100之间的

 

3. 门外三个开关分别对应室内三盏灯,线路良好,在门外控制开关时候不能看到室内灯的情况,现在只允许进门一次,确定开关和灯的对应关系?

 

4. 烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?

 

5. 如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?

 

6. 12个球一个天秤,现知道只有一个和其它的重量不同,问用天秤怎样称才能用三次就找到那个球。(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)

 

7. 在9个点上画10条直线,要求每条直线上至少有三个点?

8. 在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?