数据库笔试题.docx

上传人:b****5 文档编号:11777957 上传时间:2023-04-01 格式:DOCX 页数:26 大小:27.97KB
下载 相关 举报
数据库笔试题.docx_第1页
第1页 / 共26页
数据库笔试题.docx_第2页
第2页 / 共26页
数据库笔试题.docx_第3页
第3页 / 共26页
数据库笔试题.docx_第4页
第4页 / 共26页
数据库笔试题.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

数据库笔试题.docx

《数据库笔试题.docx》由会员分享,可在线阅读,更多相关《数据库笔试题.docx(26页珍藏版)》请在冰豆网上搜索。

数据库笔试题.docx

数据库笔试题

软件--数据库--Ⅰ级

题目1

在数据库系统模型中,哪三种模型是目前使用的,其中最具优势的是哪种模型?

参考答案

层次模型、网状模型、关系模型;关系模型。

题目2

关系数据库的专用语言是什么,它可以对数据中的数据进行数据检索及哪些操作,对检索出来的数据可以进行哪些操作?

参考答案

SQL;数据更新、数据删除;数据复制、数据排序、数据连接。

题目3

如果想向一个表做插入、更新、删除操作的时能自动执行另一SQL操作,用什么来实现?

参考答案

触发器

题目4

1、在主键与外键的相互关系描述中下面哪个操作不破坏参照完整性

1)、主键值存在,删除外键值。

2)、外键值存在,删除主键值。

3)、主键值不存在,插入外键值。

参考答案

第一个。

题目5

如何避免数据库死锁?

参考答案

预先规定一个封锁顺序,所有的事务都必须按这个顺序对数据加锁。

题目6

请列举出ADO编程模型中4种以上对象的名称。

参考答案

连接、命令、参数、记录集、字段、错误、属性、集合、事件(四个即可)

题目7

写出一个连接查询的SQL语句。

参考答案

select*fromtablename1,tablename2wheretablename1.field1=tablename2.field2

题目8

写出一使用嵌套查询的SQL语句。

参考答案

select*fromtable1wheretable1.field1in(selecttable2.filed2fromtable2)

题目9

编写一游标操作示例,从表中检索出某一列数据。

参考答案

declare游标名cursorforselectclassnamefromclass;

open游标名;

fetch游标名into:

strClassName;

close游标名;

free游标名;

题目10

举例说明如何使用SQLSelect语句完成操作:

下面是图书管理模型:

关系1:

借书人(姓名、借书卡号、单位)

关系2:

图书借阅(卡号、书号、书名、借书日期)

关系3:

图书(书号、分类号、书名、作者、价格、书架号)

1)找出1999年9月15日前借书人的书证号和书号。

2)找出借阅的书号为223456的借书人的姓名和单位。

3)找出没被借出的书名。

参考答案

1、Select卡号,书号from图书借阅where借期<1999.09.05Orderby卡号。

2、Select姓名,单位from借书人where卡号=(select卡号from图书借阅where书号=’223456’)。

3、select书名from图书where书号Notin(select书号from图书借阅where书号=图书.书号and书名=图书.书名)

题目11

在下面列出的几种语言中,哪一种是关系数据库的标准语言?

A)CB)FORTRANC)SQLD)PASCAL

参考答案

C

题目12

什么是触发器,有什么作用

参考答案

(1)触发器是一种特殊类型的存储过程,当使用下面的一种或多种数据修改操作在指定表中对数据进行修改时,触发器会生效:

UPDATE、INSERT或DELETE。

触发器可以查询其它表,而且可以包含复杂的SQL语句。

它们主要用于强制复杂的业务规则或要求。

例如,可以控制是否允许基于顾客的当前帐户状态插入定单。

(2)触发器还有助于强制引用完整性,以便在添加、更新或删除表中的行时保留表之间已定义的关系。

然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。

如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。

(3)触发器是自动的:

它们在对表的数据作了任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活。

(4)触发器可以通过数据库中的相关表进行层叠更改。

例如,可以在titles表的title_id列上写入一个删除触发器,以使其它表中的各匹配行采取删除操作。

该触发器用title_id列作为唯一键,在titleauthor、sales及roysched表中对各匹配行进行定位。

(5)触发器可以强制限制,这些限制比用CHECK约束所定义的更复杂。

与CHECK约束不同的是,触发器可以引用其它表中的列。

例如,触发器可以回滚试图对价格低于10美元的书(存储在titles表中)应用折扣(存储在discounts表中)的更新。

(6)触发器是一种很好的方法,可以用于实现业务规则,可以检查事务,也可以很容易地存档系统信息。

(7)通过使用触发器收集的信息,可以提高数据库的性能,以及确定所要采用的索引方案。

所有这些功能,包括实时更新,使触发器成为任何企业级数据库应用的集成部分。

触发器可以使用户的应用程序的功能更强大。

题目13

什么是存储过程,怎样写存储过程?

存储过程与应用程序有什么不同

参考答案

(1)存储过程可以使得对数据库的管理、以及显示关于数据库及其用户信息的工作容易得多。

存储过程是SQL语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。

存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。

(2)存储过程可包含程序流、逻辑以及对数据库的查询。

它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。

(3)可以出于任何使用SQL语句的目的来使用存储过程,它具有以下优点:

可以在单个存储过程中执行一系列SQL语句。

可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。

存储过程在创建时即在服务器上进行编译,所以执行起来比单个SQL语句快。

数据访问的公共接口

代码的模块化和重用

通过数据隔离实现安全性

独立于外部编程语言

(4)存储过程的功能取决于数据库所提供的功能。

(5)创建存储过程

可使用Transact-SQL语句CREATEPROCEDURE创建存储过程。

创建存储过程前,请考虑下列事项:

不能将CREATEPROCEDURE语句与其它SQL语句组合到单个批处理中。

创建存储过程的权限默认属于数据库所有者,该所有者可将此权限授予其他用户。

存储过程是数据库对象,其名称必须遵守标识符规则。

只能在当前数据库中创建存储过程。

创建存储过程时,应指定:

所有输入参数和向调用过程或批处理返回的输出参数。

执行数据库操作(包括调用其它过程)的编程语句。

返回至调用过程或批处理以表明成功或失败(以及失败原因)的状态值。

题目14

描述tablespace和datafile之间的关系

参考答案

tablespace是逻辑上的概念,datafile是物理上的概念。

一个tablespace可以由多个datafile组成,但一个datafile不能跨越多个tablespace。

题目15

绑定变量是什么?

绑定变量有什么优缺点?

参考答案

通俗的说,绑定变量就是变量的一个占位符,使用绑定变量可以减少对SQL语句的解析。

优点:

A.提高执行SQL语句性能;B.减少对SHAREPOOL的占用

缺点:

编码相对复杂,SQL语句不能动态拼装。

题目16

SQL语言和PL/SQL的区别

参考答案

SQL是非过程化语言,PL/SQL是一种过程化语言,能够象C语言那样进行过程控制。

题目17

以下数据库哪个不能安装在UNIX操作系统

ASqlserverBOracleCDB2DSybase

参考答案

A

题目18

列出你知道的oracle索引类型

参考答案

B树索引、位图索引、函数索引、反序索引

题目19

在ORACEL中,有哪些类型的SQL语句,请具体举例

参考答案

DATAREETRIVE:

数据查询---SELECT

DML:

数据操作语言---INSERTUPDATEDELETEMERGE

DDL:

数据定义语言---CREATEALTERDROPRENAMETRUNCATE

DCL:

数据控制语言---GRANTREVOKE

TRANSACTIONCONTROL:

事物控制---COMMITROLLACKSAVEPOINT

题目20

在ORACEL中,有几种约束来保证数据的完整一致,请具体列出

参考答案

1.NOTNULL---不能为空

2.PRIMARYKEY---主键

3FOREIGNKEY---外键

4UNIQUE---唯一

5CHECK---检查

题目21

请列出ORACLE数据库中常用的几种数据库对象(至少8种)

参考答案

1.TABLE表2.INDEX索引3.FUNCTION函数4.PROCEDURE过程5.PACKAGE包6.VIEW视图7.SYNONYM同义词8.CLUSTER簇9.PACKAGEBODY包体10DATABASLINK数据连接11.TABLEPARTITION表分区12INDEXPARTITION索引分区13.TYPE对象14.TRIGGER触发器15SEQUENCE序列16MATERIALIZEDVIEW物化视图

软件--数据库--Ⅱ级

题目1

为什么要使用存储过程,有哪些好处?

参考答案

存储过程是集中存储在数据库服务器中的预先定义且已经编译好的事务。

存储过程SQL语句和流程控制语句组成。

存储过程是预编译过的,这就意味着它与普通的SQL语句或批处理的SQL语句不同,当首次运行一个存储过程时,SQLServer的查询处理器对其进行分析,在排除了语法错误之后形成存储在系统中的可执行方案。

由于查询处理的大部分工作已经完成,所以存储过程执行速度很快。

  存储过程和待处理的数据都放在同一台运行数据库服务器的计算机上,使用存储过程查询当地的数据,效率自然很高。

 存储过程一般多由Client端通过存储过程的名字进行调用,即跨网传送的只是存储过程的名字及少量的参数(如果有的话),而不是构成存储过程的许多SQL语句,因此可以减少网络传输量,加快系统响应速度。

  存储过程还有着如同C语言子函数那样的被调用和返回值的方便特性。

  存储过程大大增强了SQL语言的功能、效率和灵活性,所以要使用存储过程。

题目2

请说明触发器的主要作用和分类。

参考答案

保证数据的一致性。

Deleted,inserted,updated

题目3

unique约束和primarykey约束有何不同?

参考答案

unique产生唯一的非聚集约束.其列允许为空。

primarykey产生唯一的聚集约束.其列不允许为空。

题目4

存储过程为什么执行较快?

参考答案

已编译好放在服务器端。

题目5

为什么要使用视图?

参考答案

使用视图是为了安全性和一致性以及屏蔽复杂性。

安全性:

用户只拥有操作视图的权限而无操作表的权限,可以使一些用户不该操作的数据得到保护;

一致性:

当基表发生变化时,视图也进行修改,保持一致。

屏蔽复杂性:

视图可以使某些复杂的查询操作以简单的形式将结果表现出来。

题目6

在VISUALC++下的数据库访问接口有哪些,请列举出3种以上。

参考答案

ODBCAPI、EmbeddedSQL、ADO、RDO、DAO、OLEDB、DMO等。

题目7

聚类索引(clustered)、非聚类索引(noclustered)的区别何在?

参考答案

在聚类索引中,表中数据行的物理顺序与索引中键行的顺序一致,非聚类索引表中数据行并不是这样排列顺序。

题目8

在何种情况下应该避免使用系统管理员登录数据库?

参考答案

在任何情况下尽量避免,在安装好数据库后就应重新建立一个登录用户,保证访问安全。

题目9

触发器是存储过程吗?

请写出一个触发器的简单示例。

参考答案

触发器是一种特殊的存储过程。

Createtriggertrigger_name

ontable_name

for{INSERT,DELETE,UPDATE}

asSQL语句

题目10

有两个表:

学生表(学号、姓名)和选修课成绩表(学号、成绩)

试编写一SQL语句,从选修课成绩表中删除学号在学生表中不存在的记录。

参考答案

deletefrom选修课成绩表where学号notin(select学号from学生表)。

题目11

VisualFoxPro(VFP)对xBase数据库作了许多改变,主要包括Ⅰ.VFP扩充了xBase关于一个数据库实质上是一个二维表的数据库概念Ⅱ.VFP提供了数据字典Ⅲ.VFP提供了存储过程、视图、触发器等A)Ⅰ和ⅡB)Ⅱ和ⅢC)Ⅰ和ⅢD)都是

参考答案

D

题目12

下面程序段的时间复杂度是:

s=0;

for(i=0;i

for(j=0;j

s+=B[i][j];

sum=s;

参考答案

O(n*n)

题目13

在一个单链表中,若在指针q所指结点之后插入节点s,则执行:

参考答案

s.next=q->next;

q->next=&s;

题目14

设有下列程序段:

intarr[]={6,7,8,9,10};

int*ptr;

ptr=arr;

*(ptr+2)+=2;

printf("%d,%d\n",*ptr,*(ptr+2));

请选择,程序段的输出结果为:

A)8,10B)6,8C)7,9D)6,10

参考答案

D

题目15

在栈顶指针为HS的链栈中,编写一个计算该链栈中节点个数的函数。

参考答案

参考答案:

intcount(node*HS)

{

intn=0;

node*p;

p=HS;

while(p!

=NULL)

{

n++;

p=p->next;

}

return(n);

}

题目16

Oracle数据库中是否大小写敏感?

参考答案

1有些命令敏感,如

TheCASCADEandRESTRICTclausesintheDROPTABLE,DROPVIEW,andREVOKEstatements

2有些命令视具体的驱动器不同而大小写敏感情况不同

如通过某些桥式驱动程序访问时大小写敏感,

如删除表记录时在sqlplus等工具大小写不敏感,而在jdbc中大小写敏感,

题目17

在ORACLE中如何用转换函数进行16进制和10进制数的互转?

参考答案

16进制转换为10进制:

to_number(’19f’,’xxx’)

10进制转换为16进制:

to_char(123,’xxx’)

题目18

简单描述ORACLE数据库tablespace/segment/extent/block之间的关系

参考答案

这4个都是逻辑上的概念。

block是最小的储存单元,多个block组成extent,多个extent组成segment,多个segment组成tablespace。

题目19

如何使用CBO,CBO与RULE的区别?

参考答案

通过初始化参数optimizer_mode=CHOOSE/FIRST_ROWS/ALL_ROWS使用CBO

CBO根据表和索引的统计信息、db_file_multiblock_read_count、CPU并行能力等因素决定访问路径;

RULE(RBO)根据表的索引及字句顺序决定访问路径。

题目20

Oracle数据库中哪个内存区域存放最近使用过的数据库块儿

参考答案

数据库缓冲区

题目21

请列出oracle数据库的主要后台进程

参考答案

数据库写进程、日志写进程、系统监控进程、进程监控进程、检查点进程

题目22

ORACLE数据库内置函数union和unionall有区别吗?

如果有请简述一下。

参考答案

有区别1.union会把结果集重复的记录过滤掉,只保留一条,在执行时会产生排序,速度相对较慢,所耗资源相对较多2.unionall只是把结果集简单相加,在执行时会不产生排序,速度相对较快,所耗资源相对较少

题目23

在ORACLE数据库,有一张表有10万条记录,大小为10M,通过DELETE命令把记录全部删除,

请问删除后标的大小为多少?

为什么?

参考答案

表大小仍为10M,因为DELETE命令虽然把表的记录都删除了,但表高水位标志(HWM)并没有

降下来,所以表的大小不变。

题目24

DECLARE

BEGIN

FORIIN1…1000000LOOP

INSERTINTOEMP(ID,

NAME,

AGE,

DEPT

)VALUE

(I+1,

‘TEST’,

I+1,

‘TEST’

);

COMMIT;

ENDLOOP;

END;

请问在ORACLE数据库此段代码是否合理,如果不合理请指出是哪里,给出原因并修改代码

参考答案

不合理,不应该每循环一次都进行提交(COMMIT),

原因:

1.频繁的提交(COMMIT),会导致日志文件的频繁物理写入,容易产生等待

2.导致不必要的块清除(blockcleanout),消耗大量的CPU资源

修改后的代码:

DECLARE

JNUMBER;

BEGIN

FORIIN1…1000000LOOP

INSERTINTOEMP(ID,

NAME,

AGE,

DEPT

)VALUE

(I+1,

‘TEST’,

I+1,

‘TEST’

);

J:

=J+1;

IFJ=5000THEN---数量不一定是5000

COMMIT;

ENDIF;

J:

=0;

ENDLOOP;

END;

软件--数据库--Ⅲ级

题目1

在数据库系统中,规则和约束有何区别?

参考答案

规则和约束都是用来对表的列的数据进行限制的,约束是首选的、标准的方式,表的每一列仅可以有一个规则,但可以有多个约束,约束是表的一部分,和表一起创建,而规则可以在表创建之前创建。

题目2

在数据库中,怎样确定用户是否具有访问视图和执行存储过程的权限?

参考答案

用户要访问视图和执行存储过程,必须拥有访问视图的基表或存储过程所引用的对象的权限。

题目3

在大型数据库系统中,有几种方式可以实现数据备份/恢复,它们是什么?

(至少两种)

参考答案

3种。

1.数据库整体备份/恢复,即使用Dump备份数据库和Load恢复数据库;2.批量数据备份/恢复,如BCP,对BCP有命令行方式、Bulk-Library/C编程和DB-Library/C编程等方式。

3.通过ODBC等访问接口编程实现。

题目4

什么样的表满足第二范式?

什么样的表满足第三范式?

参考答案

满足第二范式的表,表中任一非主键列都依赖于主键列;满足第三范式的表,在满足第二范式的基础上,表中任一非主键列都不依赖于另一非主键列;

题目5

角色权限与用户权限有什么区别?

参考答案

可使用grant授权各类角色,包括系统和用户自定义角色。

角色权限特殊性在于,角色权限驾凌于用户权限之上:

如用户A具有角色B,角色B有权限执行存储过程,当用户A的执行该存储过程的权限被取消后,通过角色B,用户仍可执行该存储过程。

题目6

数据库同步时,做好配置后,数据库间传递的是什么?

参考答案

数据库同步时,做好配置后,数据库间传递的是:

日志

题目7

你正在创建一个数据库,预计对它会有频繁的INSERT、UPDATE、DELETE操作,你将要怎样调整事物日志默认的大小?

如果主要用于查询,要怎样处理?

参考答案

应该考虑手工增加事务日志的大小。

主要用于查询的数据库通常不需要非常大的事务日志,应考虑将事务日志的大小降到数据库总大小的10%。

题目8

假设有两个表:

class(classid,classname);

score(studentid,classid,sumscores)

其中第一个表存放班级信息,第二个存放学生的总成绩,试编写一个SQL语句,查询出学生总成绩的平均分超过80分的班级名称。

参考答案

selectclass.classnamefromclasswhereclass.classidin(selectscore.classidfromscoregroupby(score.classid)havingavg(score.sumscores)>80)

题目9

为用户提供什么样的备份恢复策略比较好?

参考答案

应尽量提供自动备份功能,在用户要求的时间范围自动备份数据。

题目10

若使用ORACLE系统开发一个数据库应用系统,在进行数据库模式设计时,在如下所列出的软件中,应选用A)ORACLEDeveloper/2000B)ORACLEDesigner/2000C)ORACLEPL/SQLD)ORACLERDBMS

参考答案

B

题目11

谈谈你对3NF(三范式)的理解,为什么数据库设计最少要满足3NF的要求?

参考答案

当数据库按第三范式设计,就没有数据冗余,数据更新只需在一个地点进行,能够最大的保证数据的完整性、一致性,提高数据库的性能和效率。

题目12

Oracle数据库中是否大小写敏感?

参考答案

1有些命令敏感,如

TheCASCADEandRESTRICTclausesintheDROPTABLE,DROPVIEW,andREVOKEstatements

2有些命令视具体的驱动器不同而大小写敏感情况不同

如通过某些桥式驱动程序访问时大小写敏感,

如删除表记录时在sqlplus等工具大小写不敏感,而在jdbc中大小写敏感,

题目13

存储量1GB(GigaByte)大约等于,A)1000KBB)100KBC)1000000KBD)100000KB

答案

C

题目14

以下关于链式存储结构的叙述中哪一条是不正确的?

A)结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构B)逻辑上相邻的结点物理上不必邻接C)可以通过计算直接确定第i个结点的存储地址D)插入、删除运算操作方便,不必移动结点

参考答案

C

题目15

在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值11,所需的关键码比较次数为A)2B)3C)4D)5

参考答案

C

题目16

设有关系R,S和T如下。

关系T是由关系R和S经过哪种操作得到的?

R

┌─┬─┬─┐ST

│A│B│C│┌─┬─┬─┐┌─┬─┬─┐

├─┼─┼─┤│A│B│C││A│B│C│

│1│

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 英语考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1