数据库应用考试题目答案
1.在安装SQL Server 2000时,“仅客户端工具”、“服务器和客户端工具”及
“仅连接”等安装定义有什么差别?
答:
仅客户端工具仅安装客户端关系数据库管理工具。此选项包含管理    SQL
Server的客户端工具和客户端连接组件。
服务器和客户端工具执行安装服务器和客户端工具以创建具有管理能力 的关系数据库服务器。
仅连接仅安装关系数据库客户端连接组件,包括连接 SQL Server 2000 命名实例所需的MDACMicrosoft数据访问组件)。该选项只提供连接工 具,不提供客户端工具或其它组件。
2•—个数据库中包含哪几种文件?
答:
主数据库文件用来存储数据库的启动信息以及部分或者全部数据,是所有 数据库文件的起点,包含指向其它数据库文件的指针。一个数据库只能有 一个主数据库文件。
辅助数据库文件用于存储主数据库文件中未存储的剩余数据和数据库对 象,一个数据库可以没有辅助数据库文件,但也可以同时拥有多个辅助数 据库文件
事务日志文件一个存储数据库的更新情况等事务日志信息 ,当数据库损 坏时,管理员使用事务日志恢复数据库每一个数据库至少必须拥有一个事 务日志文件,而且允许拥有多个日志文件。
3.事务文件和数据文件分开存放有什么好处?
答:
因为利用事务日志备份可以将数据库恢复到特定的即时点    如输入不想要的
数据之前的那一点或故障发生点。在媒体恢复策略中应考虑利用事务日志 备份。
4.什么是批处理?使用批处理有何限制?
答:
包含一个或多个T-SQL语句的组,从应用程序将一次性发送到 SQL Server 执行,SQL Server批处理语句作为整体编译成一个可执行单元。
限制:如不能够在同一个批处理中更改表,然后引用新列。如在一个批处 理程序中,有两条语句。第一条语句用来在一张表中插入一个字段,如在 User表中插入员工的出生年月第二条语句则用来引用这个列,如根据身份 证号码来推算出这个员工的出身年月并把这个值赋值给这个第一条语句创 建的出身年月字段。
5.数据检索时,COMP UTB CO MP UTE B产生的结果有何不同? 答:
COMPUTBY子句时,符合SELECT条件的每个组都有两个结果集:
每个组的第一个结果集是明细行集,其中包含该组的选择列表信息。
每个组的第二个结果集有一行,其中包含该组的    COMP UT子句中所指
定的聚合函数的小计。
COMP UT不带BY子句时,SELECT语句有两个结果集: 每个组的第一个结果集是包含选择列表信息的所有明细行。
第二个结果集有一行,其中包含COMP UTE子句中所指定的聚合函数的 合计。
6.什么是索引?索引分为哪两种?各有什么特点?
答:
数据库中的索引与书籍中的目录类似。在一本书中,利用目录可以快速查 所需信息,无须阅读整本书。在数据库中,索引使数据库程序无须对整 个表进行扫描,就可以在其中到所需数据。
聚集索引和非聚集索引。
聚集索引的特点:行的物理位置和行在索引中的位置是相同的,每个表只 能有一个聚集索引,聚集索引的平均大小大约为表大小的    5%左右。
非聚集索引特点:若未指定索引类型,则默认为非聚集索引,叶节点页的 次序和表的物理
存储次序不同,每个表最多可以有 249个非聚集索引,在非 聚集索引创建之前创建聚集索引。
7.创建索引有什么优点和缺点?
答:
优点:索引在数据库中的作用类似于目录在书籍中的作用,用来提高查 信息的速度。使用索引查数据,无需对整表进行扫描,可以快速到所 需数据。
缺点:索引需要占用数据表以外的物理存储空间。创建索引和维护索引要 花费一定的时间。当对表进行更新操作时,索引需要被重建,这样降低了 数据的维护速度。
8什么是视图?使用视图的优点和缺点是什么?
答:
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系 列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集 形式存在。行和列数据来自由定
义视图的查询所引用的表,并且在引用视 图时动态生成。
优点:隐蔽数据库的复杂性;控制用户提取数据;简化数据库用户管理;
简化查询
缺点:
性能:SQL Server必须把视图的查询转化成对基本表的查询,如果这个 视图是由,一个复杂的多表查询所定义,那么,即使是视图的一个简单 查询,SQL Server也,把它变成一个复杂的结合体,需要花费一定的时 间。
修改限制:当用户试图修改视图的某些行时,    SQLServer必须把它转化
为对基本,表的某些行的修改。对于简单视图来说,这是很方便的,但 是,对于比较复杂的,视图,可能是不可修改的。
9.修改视图中的数据会受到哪些限制?
答:
必须对视图的操作权限有权限
对视图上的某些列不能修改,这些列是:计算列,内置函数列和行集合函 数列
删除基表并不删除视图,建议采用与表明显不同的名字命名规则 对由多表连接成的视图修改数据时,不能同时影响一个以上的基表,也不 能删除视图中的数据
如果某些列因为规则或者约束的限制不能接受从视图插入的数据时,则插 入数据可能会失败
对具有NOT NULL的列进行修改时可能会出错。通过视图修改或者插入数据 时,必须保证未显示的具有 NOT NULL属性的列有值,可以是默认值, IDENTITY等,否则不能像视图中插入数据行。
10.什么是数据完整性?如果数据库不实施数据完整性会产生什么结果? 答:
指的是数据库中存储的数据的一致性和准确性;包括了实体完整性、域完 整性、参照完整性、用户定义的完整性。能够防止数据库中存在不符合语 义规定的数据,并且可以防止因错误信息的输入输出造成无效操作或错误 信息。
后果:无法保证数据库数据的一致性和准确性;容易造成数据库中存在不 符合规定的数据或者错误信息
11.数据完整性有哪几类?如何实施?
答:
数据完整性分为四类:实体完整性、域完整性、参照完整性、用户定义的 完整性。
数据库采用多种方法来保证数据完整性,包括外键、束约、规则和触发 器。系统很好地处理了这四者的关系,并针对不同的具体情况用不同的方 法进行,相互交叉使用,相补缺点。
12.什么是主键约束?什么是惟一约束?两者有什么区别?
答:
主键约束:有一列或列的组合,其值能唯一的标识表中的每一行。 唯一约束:不允许数据库表在指定列上具有相同的值,但允许有空值。
区别:一个表可以定义多个唯一约束,只能定义一个主键约束;空值得列 上可以定义唯一约束,不能定义主键约束。
13.什么是外键,怎样建立外键约束? 答:
外键是用于建立和加强两个表数据之间的链接的一列或多列。 通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之 间的链接。这个列就成为第二个表的外键。
14.什么是存储过程?使用存储过程有什么好处?
答:
定义:存储过程指的是存储在服务器上的 Tran sact-SQL语句的命名集 合,是封装重复性任务的方法,支持用户声明变量、条件执行以及其他强 有力的编程特性。
好处:
存储过程封装了商务逻辑,确保一致的数据访问和修改。若规则或策略 有变化,则只需要修改服务器上的存储过程,所有的客户端就可以直接 使用
屏蔽数据库模式的详细资料。用户不需要访问底层的数据库和数据库内 的对象
提供了安全性机制。用户可以被赋予执行存储过程的权限,而不必在存 储过程引用的所有对象上都有权限
改善性能。预编译的Transact-SQL语句,可以根据条件决定执行哪一 部分
减少网络通信量。客户端用一条语句调用存储过程,就可以完成可能需 要大量语句才能完成的任务,这样减少了客户端和服务器之间的请求    /
回答包
15 .什么是触发器?触发器分有什么作用?
答:
触发器是一类特殊的存储过程,不能被直接调用,也不传递或接受参数 作用:
维护不可能在表创建时刻通过声明性约束进行的复杂的完整性约束限 制。
通过记录所进行的修改以及谁进行了修改来审计表中的信息。 当表被修改的时候,自动给其他需要执行操作的程序发信号。 程序设计题 假设在factory数据库中已创建了如下3个表,
(1)
char⑵,出生日期:datetime,党员否: int
职工表worker,其结构为:
职工号:int,姓名:char(8),性别:
bit,参加工作:datetime,部门号:
(2)部门表dep art,其结构为:
部门号:int,部门名:char(10)
(3)职工工资表salary,其结构为:
datetime,工资:decimal(6,1)
职工号:int,姓名:char(8),日期:
.显示所有职工的年龄。
.求出各部门的党员人数。
.显示所有职工的姓名和
.显示所有职工的职工号、 .显示所有职工的职工号、
1.使用Transact-SQL语句完成如下各题:
(1)
什么是关系数据库20041月份工资数。 姓名和平均工资。
姓名、部门名和    20042月份工资,并按部门名
(2)
(3)
(4)
(5) 顺序排列。
(6).显示各部门名和该部门的所有职工平均工资。
(7).显示所有平均工资高于1200的部门名和对应的平均工资。
(8).显示所有职工的职工号、姓名和部门类型,其中财务处和人事处属管理部 门,市场部属市场部门。
答案:
(1) . select生名,丫EAR(GETDATE())-YEAR出生日期)AS '年龄' FROMworker
(2) . SELECT dep art.部门名,cou nt(*) AS    '党员人数'
FROM worker,de part
WHERE worker党员否=1 AND worker.部门号=depart.部门号
GROU P BY dep art.部门名
(3). SELECT worker.姓名 ‘salary.工资
FROM worker,salary
WHERE worker.职工号=salary.职工号 AND YEAR(salary.日期)=2004 AND MONTH(salary.日期)=1

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。