设为首页 加入收藏

TOP

数据库面试题 4
2014-11-13 00:26:05 来源: 作者: 【 】 浏览:28
Tags:数据库 试题

数据库面试题 4


第一章:
1)E-R模型的组成包括以下的元素,除了(C)。(选择一项)
a) 实体
b) 属性
c) 记录
d) 关系


2) 你为公司开发了一个逻辑模型:公司有10个部门,每个部门有6-7个员工,但每个员工可能会不止一个部门工作。下面所给的模型正确的是(B)。(选择一项)
a) 部门和员工之间是一种确定的一对多的关系
b) 建立一个关联表,从该关联表到员工建立一个一对多的关系,然后再从该关
联表到部门表建立一个一对多的关系
c) 建立一个关联表,从员工表到该关联表建立一个一对多的关系,然后再从部
门表到该关联表建立一个一对多的关系
d) 这种情况不能建立正常的数据库模型


3) 下面(C)不是数据库规范化要达到的效果.(选择一项)
a) 改善数据库的设计
b) 实现最小的数据冗余
c) 可以用一个表来存储所有数据,使设计及存储更加简化
d) 防止更新,插入及删除的时候,产生数据丢失


4) (A)是个人能看到的相关数据库部分的数据库视图。(选择一项)
a) 外部级别
b) 逻辑级别
c) 用户级别
d) 物理级别


5) 在某ERD里有“客户”和“订单”两个实体,他们的关系是“客户”发出“订单”,在“订单”这个实体里又有“订购数量”、“产品代码”等属性,“产品”与“产品代码”之间的关系应该是(B)。(选择一项)
a) 一对一
b) 一对多
c) 多对多
d) 循环对应


6) 在ACCESS数据库表设计的时候,某用户在设计视图的有效性规则中设置为[get score]>[average score],则此用户用的是(C)类型的检查约束。(选择一项)
a) 字段值
b) 记录级
c) 表级
d) 平均值


第二章:T-SQ程序设计
1) 使用T-SQL定义两个局部变量AA和BB,正确的语句是(A).(选择一项)
a) DECLARE@AA,@BB
b) PIRVTE@AA;@BB
c) PUBLIC@AA;@BB
d) DECLARE@AA;@BB


第三章:事务和锁
1) 四个并发连接各自同时在select,insert,update和delete操作,有时当选择的行数超 10,000时再做update/delete操作时会停止,你该(C)去修复。(选择一项)
a)在Selesct会话中,设置低优先级的Deadlock
b)在Update/Delete会话中,设置低优先级的Deadlock
c)在Select会话中,设置末提交读隔离低级别
d)设置查询等待选项为50,0000


第四章:用户和安全管理
1) 在sql server 2000的查询分析器中执行以下的t-sql:
exec sp_grantdbacces’workarea\remotelongin’,’dblocalh’
下列理解正确的是(B)(一项)
a) 允许windows nt 域 workarea的所有远程登陆的用户都具有访问数据库dblocalh的权限
b) 在当前数据库中为windows nt 用户workarea\remotelogin添加帐户,并取名为dblocalh
c) 把windows nt 用户workarea\remotelogin赋予已经存在的角色dblocalh的全部权限
d) 限制windows nt windows nt 用户workarea\remotelogin只能访问数据库dblocalh


2)在SQL server 2000的安全模型中,提供了“服务器”和(B)两种类型的角色。(选择一项)
a) 客户端
b) 数据库
c) 操作系统
d) 数据对象


3) 在SQL Server2000的查询分析器中,执行以下的: EXEC sp_droplogin’DBLocalHost’ 正确的为
a) 若存在数据库DBLocalHost,将删除该数据库及其所有相关的对象
b) 若存在角色DBLocalHost,将删除该角色并从所有的相关的用户回收该角色所具有的权限
c) 若存在登录名DBLocalHost,将删除该登录.并阻止使用登录名访问
d) 若存在数据库用户DBLocalHost,将删除该用户


4) 在SQL Server2000数据库中Pubic角色是一类特殊的角色,并且具有以下的特性,除了(D)。
a) 它不能被删除。
b) 每个数据库用户都属于Public角色,甚至包括sa帐户。
c) 它包含在每个数据库中。
d) 不能为Public角色分配其他更加高级的权限。


5)在SQL Server数据库中,以下对象都可以通过Drop关键字进行删除,除了(D)。(选择一项)
A)表
B)触发器
C)视图
D)角色


6) 在SQL Server 2000的查询分析器中运行以下的T-SQL:
USE Pubs Go
GRANT INSERT,UPDATE,DELETE ON authors TO MaryYa
Go将(C).(选择一项)
a) 禁止用户MaryYa操作数据库pubs中除了authors之外所有的表
b) 把数据库pubs中表authors中的数据全部转移到数据库MaryYa中
c) 赋予用户MaryYa操作数据库pubs中表authors插入更新和删除数据的权利
d) 代码运行将失败,提示GRANT操作无效


第五章:高级查询
1)在SQL Server数据库中,你想得到在products表中最贵的产品的产品名称和产品价格应该使用的查询是(A)。(选择一项)
a) SELECT TOP 1 Productnamem ,Price FROM Products ORDER BY Price desc
b) SELECECT Productname,MAX(price)FROM Products
c) SELECTCT Productname


2)以下分别是sql server 2000中两个数据表的结构描述和已经有的数据项,除Anumber字段为数字类型外,其他字段数据类型都是长度为32的字符:
在查询分析器内执行以下的T-SQL(C)。(选择一项)
SELECT Acount_No,Aname FROM Saving_Accounts
UNION SELECT Account_No,Bname FROM Current_Accounts
Account No Aname Anumber
S001 James 1
S002 Rita 2
S003 Mary 3
S004 Valentina 4
Saving_Accounts 表
Acceout No Bname
C001 Micheel
C002 Rodin
Current_Accouns 表
a). 查询错误,因为使用UNION查询的时候,两个字段结构必须保持一致
b). 查询错误,因为使用UNION查询的时候,查询输出的列名必须保持一致
c). 正确得到联合查询的结果集,并且输出的列名名称为Account_No 和 Aname
d) 正确得到联合查询的结果集,并且输出三列六行数据


3) 该发年终奖了,你想找出销售量最高的前5名销售,在sql server中,你会使用下面(B)查询语句。
a) select top 5 orderamount,salesmanid form orders
b) select top 5 orderamount,salesmanid form orders order by orderamount desc
c) select top 5 with orderamount,salesmanid form orders order by salesmanid desc
d) slesect top5 with orderamount,salesmanid from orders order by orderamount


4)在microsoft access 的sql视图里有:
select distinctrow 产品.产品名称,产品.产品单价 from产品 where (((产品.单价)>(select avg([单价]) from 产品)))order by 产品.单价 desc; 下面说法错误的是(B)。(选择一项)
a) ”select avg([单价] from 产品)” 是子查询
b) “order by 产品.单价 desc”是指按单价从低到高顺序排列
c) 查询结果显示的是单价大于平均价格的记录
d) 这次查询显示的字段只有“产品名称”和“单价”


5) 以下的T-SQL代码:
UPDATE titles
SET t.ytd_sales=t.ytd_sales+s.qty FROM titles t,sales s
WHERE t.title_id=s.title_id AND s.ord_date=(SELECT MAX(sales.ord_date)FROM sales)
该代码在查询分析器执行后,将(B)。(选择一项)
a) 不能执行数据更新,因为Update子句中, 不能使用FROM
b) 不能执行数据更新,因为set T.YTD_sales=t.ytd_sales+s.qty行中不能使用表的别名t
c) 不能执行数据更新,因为s.ord_date=(SELECT MAX(sales.ord_date)FROM sales)不符合逻辑,一个字段的值不允许等于一个子查询的输出
d) 正确执行数据更新


第六章:索引
1)在SQL Sever数据库一个班级表里只记录了100位同学的情况,那么对该表建立索引文件的说法正确的是(B)。(选择一项)
a) 一定要,因为索引有助于加快搜索记录的错误
b) 不适宜,因为对少量记录的表进行索引实际上会产生不利的影响
c) 一定要,因为索引对于任何数据库都是必要的
d) 没有必要,因为建立索引对任何数据库的性能没有影响


2) 关于全文索引,以下说法正确的是(A)。(选择一项)
a) 全文索引被存储在文件系统中。
b) 表允许有多个全文本索引。
c) 可以用Transact-SQL语句来创建、管理和丢弃全文本索引。
d) 全文索引与表的聚集、非聚集索引无关,可以只建立全问索引而不需要聚集
或者非聚集索引。


第七章:视图和游标
1) 以下SQL Server是支持的三种游标类型,除了(A).(选择一项)
a) 幻想游标
b) Transact-SQL游标
c) API服务器游标
d) 客户端游标


2) 以下是SQL Server中使用游标变量并进行赋值的T-SQL:
DECLARE @CurV CURSOR
DECLARE OBJCurV CURSOR FOR SELECT LastName FROM Employees—(1)此处填写正确的游标赋值语句,则(1)处应填写的正确的代码为(A)。(选择一项)
a) Set @Curv = ObjCurV
b) B)@Curv = ObjCurV
c) SET Curv =ObjCurV
d) Curv =ObjCurV


3) 在sql server中,以下对象可以通过create语句来创建,除了(B)。(选择一项)
a) 视图
b) 游标
c) 存储过程
d) 触发器


4) 在SQL Server数据库中,(B)可以看成为虚拟的表。(选择一项)
a) 游标
b) 视图
c) 全文索引
d) 存储过程


第八章:存储]过程
1) 以下的T-SQL代码:
Create procedure price_proc
(@count int output,@avg_price money output,@type char(12)=’business’)
as
Selec@Count=Count(*),@avg_price=Avg(price)from titles where type=@type
以下说法正确的是(B)。(选择一项)
a) 建立一个存储过程price_proc,所有参数都有是输出参数
b) 建立一个存储过程price_proc,返回的是用户指定类图书的数量及平均价格
c) c)@count=count(*)也可以用@count=count()代替
d) 创建存储过程失败,因为select语句中用了聚合函,因此必须使用Group By进行分组


2) 考虑下面SQL Server的存储过程
CREATE procedure lookup(@a int)As
If@a is null
Begin
Print ‘You forgot to pass in a parameter’
Return End
Select * from sysobjects where id = @a
retunrn
如果这个存储过程不带参数运行会发生(C)。(选择一项)
a) 该存储过程会打印”You forgot to pass in a parameter“
b) 该存储过程会基于无参数情况做一个查找,返回表中的所有行
c) 该存储过程有语法错误
d) 服务器会打印一条消息,提示该存储过程需要提供一个参数


3) 用sp_recompile系统存储过程可以强制 存储过程在下一次启动时进行重新编译,其语法为:其中的可以是以下某个对象名称,除了(C).(选择一项)
a) 存储过程名称
b) 触发气名称
c) 约束对象名称
d) 试图名称


4) 在SQL Server 2000中,系统存储过程(A)。(选择一项)
a) 存储在Master数据库中
b) 可以在查询分析器中修改
c) 一些名称以”sp_”开头,一些名称以”sys_”开头
d) 用来代替用户自定义的存储过程


第九章:触发器
1) 在SQL Server 2000的查询分析器中运行以下T-SQL(C):
use pubs go
create table my_table(a int NULL,b int NULL)go
create trigger my_trig on my_table for in sert as
if update(b) begin Create database AAA print’OK…’end go
insert my_table values(3,4)go
update my_table set a=5 where b=4 go(选择 一项)
a) 正确创建数据库AAA,并且打印OK…
b) 第一次正确创建数据库AAA,打印OK…,在第二次触发的时候报告错误信息,数据库AAA已经存在
c) 报告错误信息,提示不能在触发器中使用CREATE DATABASE语句
d) 该触发器不会被触发,代码运行完毕后,不创建数据库,也不会打印任何输出信息


2) 在SQL SERVER 中,以下都是触发器的特性,除了 (B)。(选择一项)
a) 强化约束
b) 可级联运行
c) 跟踪变化
b)查询优化


3)在sql server 2000中的查询分析器中运行以下的T_sql;
use pubs
create table my_table (a int null,b int null)
go
create trigger My_trig on my_table for insert
as
if update(b)
print “更新….”
Go
Insert My_table values(3,4)
Go
Update My_table set a=5 where b=4
Go
将打印输出(A)。(选择一项)
a) 更新….
b) 更新….
更新…..
c) 不打印任何信息
d) 以上代码将出现运行错误而中断


4)在查询分析器中你运行下面的语句:
CREATE TABLE numbers(
N1 INT,
N2 NUMERIC(5,0),
N3 NUMERIC(4,2)
GO
INSERT numbers VALUES(1.7,1.6,1.4)
SELECT *FROM numbers
)
得到的结果是(C)。(选择一项)
a) 2.2,1.50
b) 1.7,1.6,1.4
c) 1,2,1.40
d) CREATE TABLE 命令不会执行,因为无法为列N2设置精度为0。


5) 假设两张表建立“主键-外键”的引用关系,则(B、C)
A.主表数据必须在子表中有对应
B.主表数据可以比子表中的数据多
C.子表外键列可以包含空值
D.外键不能是列的组合,即一个外键不能包含多列
E.与外键对应的主键不能是列的组合,即不能是组合键


1. 关于数据规范化,下列说法正确的有(ABCD):
A. 数据规范化的目的是为了除去关系型数据库表中冗余的数据
B. 通常第三范式被认为是大多数应用程序所需的最高等级
C. 从性能上考虑,应该将关系数据规范化到最高等级
D. 有时候为了提高整体性能,可以增加冗余――即将数据非规范化


2. 如果一个表定义了主键,不包含重复的列,且只包含依赖于主键的列,则我们称该表满足(C)。
A. 第一范式
B. 第二范式
C. 第三范式
D. 第四范式


3. 用于表示数据库实体之间关系的图是(B)。
A. 数据模型图
B. 实体关系图
C. 实体分类图
D. 以上都不是


4. 下列那条语句可以用来从T-SQL的WHILE语句中退出?(D)
A. CLOSE
B. BREAK
C. EXIT
D. 以上都是


5. 关于T-SQL中变量的使用,下列说法正确的有(C)?
A. 局部变量以@为前缀,全部变量以@@为前缀
B. 局部变量可以不用声明而直接使用
C. 全局变量@@ROWCOUNT用于返回最近打开的游标中的行数
D. SET语句是给局部变量赋值的唯一方法


6. 语句select datediff(mm,’01/01/1999′,’09/30/1999′)的返回值为(C)。
A. 272
B. 0
C. 8
D. 23500800


7. 事务所具有的特性有(ABCD)。
A. 原子性
B. 一致性
C. 隔离性
D. 持久性


8. 事务可以分为哪几种类型?(AB)
A. 显式事务
B. 隐式事务
C. 自动提交事务
D. 延迟事务


9. 下列哪条语句用于清除自最近的事务语句以来所有的修改?(B)
A. Commit Transaction
B. Rollback Transaction
C. Begin Transaction
D. Save Transaction


10. SQL Server认可的登录身份验证机制包括(A)。
A. SQL Server身份验证
B. 混和模式身份验证
C. 明文身份验证
D. 密码身份验证


11. SQL Server使用__________、____________和___________命令来管理权限(A)
A. GRANT、DENY、REVOKE
B. ALLOW、DENY、REVOKE
C. ALLOW、DISALLOW、PERMIT
D. PERMIT、DENY、REVOKE


12. 下面的SQL语句用于在SQL Server的PUBS数据库中查找所有住在California,并且收到的某本书的版税低于30%的第二作者的姓名,与之返回结果相等的SQL语句是(B)。
SELECT au_lname, au_fname FROM authors WHERE state=’CA’ AND au_id IN (SELECT au_id FROM titleauthor WHERE royaltyper<30 AND au_ord=2)
A. SELECT au_lname, au_fname FROM authors INNER JOIN titleauthor ON authors.au_id= titleauthor.au_id WHERE state=’CA’ AND royaltyper<30 AND au_ord=2
B. SELECT au_lname, au_fname FROM authors UNION titleauthor ON authors.au_id= titleauthor.au_id WHERE state=’CA’ AND royaltyper<30 AND au_ord=2
C. SELECT au_lname, au_fname FROM authors OUTTER JOIN titleauthor ON authors.au_id= titleauthor.au_id WHERE state=’CA’ AND royaltyper<30 AND au_ord=2
D. SELECT au_lname, au_fname FROM authors CROSS JOIN titleauthor ON authors.au_id= titleauthor.au_id WHERE state=’CA’ AND royaltyper<30 AND au_ord=2


13. 关于用UNION操作符联接多个数据表中的行,下列说法正确的有(ABCD)?
A. UNION操作符可以将两个或多个SELECT语句的结果合并为一个结果集,每个SELECT语句都必须具有相同的结果:兼容的列类型和相同的列数
B. 在UNION后如果包括ALL子句,则所有的行都包括在结果集中,并且不会删除重复的行
C. 默认情况下,UNION操作符从结果集中删除重复的行
D. 通过 UNION 生成的表中的列名来自 UNION 语句中的第一个单独的查询。若要用新名称引用结果集中的某列(例如在 ORDER BY 子句中),必须按第一个 SELECT 语句中的方式引用该列


14. ______________子句为聚合函数生成汇总值,该汇总值作为一个附加的行显示在结果集中(BD)
A. COMPUTE
B. EXISTS
C. UNION
D. DISTINCT


15. SELECT INTO子句可用来基于现存的表创建一个新的表,下列说法正确的有(AD)
A. 创建的新表具有与现存表相同的结构
B. 创建的新表是一个临时表,相当于一个游标,数据库关闭的时候会自动释放
C. 创建的新表是只读的,不能向里面添加数据
D. 创建的新表可以执行添加、删除数据的操作


16. 关于SQL Server的索引,下列说法正确的有(B)
A. 索引分为聚集索引和非聚集索引两种类型
B. 聚集索引确定表中数据的物理顺序,非聚集索引确定表中数据的逻辑顺序
C. 一个表中可以只能包含一个聚集索引,但是可以包括多个非聚集索引
D. 对于频繁更改的列,最好使用聚集索引


17. 下列关于视图的说法,正确的有:(CD)
A. 视图可以防止未经许可的用户访问敏感数据
B. 创建视图时,可以将列名改为有意义的名称,使用户更容易理解列所代表的内容
C. 定义的视图中可以包含ORDER BY子句
D. 不能为视图建立索引


18. 在不再需要使用某个游标时,可以使用哪个语句将该游标的引用释放删除(A)
A. CLOSE
B. FETCH
C. NOTHING
D. DEALLOCATE


19. 下列关于存储过程的说法正确的有:(A)
A. 存储过程的编写体现了模块化程序设计的思想
B. 使用存储过程在某种意义上将降低了网络流量
C. 在C/S结构中使用存储过程,保证了数据的安全性
D. 存储过程比大量的T-SQL批代码执行要快


20. 关于存储过程的两种类别,下列说法正确的有(B)
A. 系统存储过程位于master数据库中
B. 用户只能通过系统存储过程访问和更新系统表
C. 创建用户自定义存储过程可以通过企业管理器或查询分析器完成
D. 系统存储过程sp_helptext可以显示加密的存储过程的原始文本


21. 在SQL Server2000中通过存储过程返回数据的方法包括(BCD)
A. 输入参数
B. 输出参数
C. 返回代码
D. SELECT语句的结果集


22. 通过存储过程中处理错误信息的方法包括(AB)
A. 返回代码
B. 使用RAISEERROR语句
C. 使用ON ERROR GOTO 语句
D. 使用 ON ERROR RESUME语句


23. 在创建存储过程中指定WITH RECOMPILE会产生什么效果?(C)
A. 下次执行时重新编译该过程
B. 下次启动SQL Server以及执行过程时会重新编译该过程
C. 每次执行过程时都重新编译过程
D. 每次在引用表上创建索引时都重新编译该过程


24. SQL Server提供的几种重新编译存储过程的方法为(ABC)
A. 使用系统存储过程sp_recompile
B. 在创建存储过程使指定with recompile
C. 在使用execute时指定with recompile
D. 在SQL Server启动时候强制重新编译


25. 关于触发器,下列说法正确的有?(ABC)
A. 触发器主要通过事件进行触发
B. 触发器的主要作用是能够实现主键和外键所不能保证的复杂的参照完整性和数据一致性
C. 同存储过程和约束一样,触发器也是一个在数据库服务器端实现或执行业务规则的有效方法
D. 触发器可以嵌套任意层


26. 下列关于实体完整性的说法正确的有:(B)
A. 实体完整性是数据完整性约束条件的一种,其规则规定基表主键的任何部分都不可以接受空值
B. 实体完整性将行定义为特定表的唯一实体
C. 实体完整性牵制表的标识符列或主键的完整性
D. 可以通过主键约束、标识列、外键约束等实现实体完整性


27. 以下哪几项是主键约束和唯一约束的区别(BD)
A. 一个表可以有多个唯一约束,但是只能有一个主键约束
B. 主键约束列不能为空,而唯一约束可以为空
C. 主键约束只能包含一列,而唯一约束可以包含多列
D. 主键约束实现实体完整性,而唯一约束实现引用完整性


28. 关于数据库的主要数据文件和次要数据文件,下列哪一项说法是正确的(B)
A. 数据库可以有多个主要数据文件和多个次要数据文件
B. 数据库只能有一个主要数据文件,并且可以没有次要数据文件
C. 数据库只能有一个次要数据文件,但是可以有多个主要数据文件
D. 数据库可以没有主要数据文件,也可以没有次要数据文件


29. 唯一标识表中的记录的一个或者一组列被称为(B)
A. 外键
B. 主键
C. 关系
D. 度


30. SQL Server中数据库文件类型有如下几种(ABC)
A. 主要数据文件
B. 次要数据文件
C. 日志文件
D. 备份文件


31. 关于Access和SQL Server数据库的比较,以下那些说法是正确的(B、E)
A.他们都将数据保存在一个物理文件中
B.他们使用相同的SQL语言
C.他们采取类似的备份方式
D.他们都具有数据文件和日志文件
E.在打开Access数据库或者SQL Server正在运行时,数据库对应的物理文件不能被删除


32.在SQL Server的系统数据库中,(A)数据库用于保存数据库的配置信息
A.Master
B.Model
C.MSDB
D.SysDB
E.System


33.使用IDENTITY来标识特定的行时,下列写法符和要求的有(A、E)
A.CREATE TABLE ABC(Id_Num int IDENTITY(1,3),fname varchar(20))
B.CREATE TABLE ABC(Id_Num IDENTITY(5),fname varchar(20))
C.CREATE TABLE ABC(Id_Num IDENTITY(5,1),fname varchar(20))
D.CREATE TABLE ABC(Id_Num varChar IDENTITY,fname varchar(20))
E.CREATE TABLE ABC(Id_Num int IDENTITY,fname varchar(20))


34.假设有T-SQL为:ALTER TABLE ABC ADD CONSTRAINT PRIMARYKEYS CHECK(CH>300),则它的执行结果是(B)
A.为表ABC添加主键约束,并且字段CH的值必须大于300
B.为表ABC添加检查约束,约束名为PRIMARYKEYS
C.为表ABC添加约束,规定字段CH为主键
D.为表ABC添加一个字段CH,并且字段CH的值必须大于300
E.检查CH,如果CH大于300,则为表ABC添加一个字段CH,并设为主键


35.在表STUD中有一列为SNAME,执行查询语句“DELETE FROM STUD WHERE SNAME LIKE ‘_[ae]%’”时,下列STUD中哪些数据行可能被删除(B)
A.Whyte
B.Carson
C.Annet
D.Hunyer
E.都不会被删除


36.假设ABC表中的A列存储电话号码信息,则查询不是以7开头的所有电话号码,正确的查询语句是(C)
A.SELECT A FROM ABC WHERE A IS NOT ’7%’
B.SELECT A FROM ABC WHERE A LIKE ‘%7%’
C.SELECT A FROM ABC WHERE A NOT LIKE ’7%’
D.SELECT A FROM ABC WHERE A LIKE ‘[1-6]%’
E.SELECT A FROM ABC WHERE A NOT IN(’7%’)


下面的SQL试题将使用到如下一个银行基本数据库,基本表结构如下:
表名 列名
Branch
(分支机构) branch-name
branch-city
assets
表名 列名
Customer
(客户) customer-name
customer-street
customer-city


表名 列名
Loan
(贷款) loan-number
branch-name
amount
表名 列名
Borrower
(贷款人) customer-name
loan-number


表名 列名
Account
(账户) account-number
branch-name
balance


表名 列名
Depositor
(存款人) customer-name
account-number


37.如果在同一个查询中同时存在Where子句和Having子句,那么首先应用Where子句。满足Where子句的条件的记录可以通过group by子句形成分组。Having子句若存在,就将在用于每一分组。不符合having子句条件的分组将被抛弃,剩余的分组被Select子句用来产生查询结果记录集。
我们利用上面信息来完成如下操作:“找出住在Harrison且在银行中至少有三个账户的客户的平均余额”:
A. Select depositor. customer-name, avg(balance) From depositor, account, customer
Where depositor.account-number = account.account-number And
account.account-number = customer.customer-name And
customer-city = ‘Harrison’ group by account.customer-name
having count (distinct depositor.account-number)>=3
B. Select depositor. customer-name, avg(balance) From depositor, account, customer
Where depositor.account-number = account.account-number And
depositor.account-number = customer.customer-name And
customer-city = ‘Harrison’ group by depositor.customer-name
having count (depositor.account-number)>=3
C. Select depositor. customer-name, avg(balance) From depositor, account, customer
Where depositor.account-number = account.account-number And
depositor.account-number = customer.customer-name And
customer-city = ‘Harrison’ group by depositor.customer-name
having count (distinct depositor.account-number)>=3
D. Select depositor. customer-name, avg(balance) From depositor, account, customer Where depositor.account-number = account.account-number And
depositor.account-number = customer.customer-name And
customer-city = ‘Harrison’ group by account.customer-name
having count (depositor.account-number)>=3


38.“找出在银行中有贷款的客户的名字,并且他的名字既不是Smith 也不是 Jones”:(C)
A. select distinct customer-name from borrower where customer-name not is (‘Smith’,’Jones’)
B. select customer-name from borrower where customer-name not is (‘Smith’,’Jones’)
C. select distinct customer-name from borrower where customer-name not in (‘Smith’,’Jones’)
D. select distinct customer-name from borrower where customer-name in (‘Smith’,’Jones’)


39.“找出那些总资产至少比位于Brooklyn某一家支行要多的支行的名称”:(C)
A. Select distinct T.branch-name From branch as T
Where T.assets > T.assets and T.branch-city = ‘Brooklyn’
B. Select distinct T.branch-name From branch as T, branch as S
Where T.assets < S.assets and S.branch-city = ‘Brooklyn’
C. Select distinct T.branch-name From branch as T, branch as S
Where T.assets > S.assets and S.branch-city = ‘Brooklyn’
D. Select distinct T.branch-name From branch as T, branch as S
Where T.assets > S.assets and T.branch-city = ‘Brooklyn’


40.“找出所有在Perryridge支行中只有一个账户的客户”:(B)
A. Select T.customer-name From depositor as T Where (select R.customer-name
From account, depositor as R Where T.customer=R.customer-name and
R.account-number=account.account-number and Account.branch-name=’Perryridge’)
B. Select T.customer-name From depositor as T Where unique (select R.customer-name
From account, depositor as R Where T.customer=R.customer-name and
R.account-number=account.account-number and Account.branch-name=’Perryridge’)
C. Select T.customer-name From depositor Where unique (select R.customer-name
From account, depositor as R Where T.customer=R.customer-name and
R.account-number=account.account-number and Account.branch-name=’Perryridge’)
D. Select T.customer-name From depositor as T Where not unique (select R.customer-name
From account, depositor as R Where T.customer=R.customer-name and R.account-number=account.account-number and Account.branch-name=’Perryridge’)


41.找出loan表中amount为空值的贷款号:(B)
A. Select loan-number From loan Where amount in (null)
B. Select loan-number From loan Where amount is null
C. Select loan-number From loan Where amount is ’null’
D. Select loan-number From loan Where amount = null


42. “找出每个支行储户数”:(C)
A. Select branch-name, count(customer-name) From depositor, account
Where depositor.account-number = account.account-number Group by branch-name
B. Select branch-name, count(distinct customer-name) From depositor, account
Where depositor.account-number = account.account-number
C. Select branch-name, count(distinct customer-name) From depositor, account
Where depositor.account-number = account.account-number Group by branch-name
D. Select branch-name, count(customer-name) From depositor, account
Group by branch-name


43.“找出账户平均余额大于1200元的支行”:(C)
A. Select branch-name, avg(balance) From account
Where balance > 1200 Group by branch-name
B. Select branch-name, avg(balance) From account
Group by branch-name Having balance > 1200
C. Select branch-name, avg(balance) From account
Group by branch-name Having avg(balance) > 1200
D. Select branch-name, avg(balance) From account Where balance>avg(balance)
Group by branch-nameHaving balance > 1200


44.“找出街道地址中包含子串Main的所有客户的姓名”:(C)
A. Select customer-name From customer Where customer-street like ‘_Main_’
B. Select customer-name From customer Where customer-street like ‘Main%’
C. Select customer-name From customer Where customer-street like ‘%Main%’
D. Select customer-name From customer Where customer-street like ‘\%Main\%’


1) 数据库设计的任务是(c)。


a) 选择一个符合项目需求的数据库
b) 根据需求建立几个表来存贮数据
c) 规划和结构化数据库中的数据对象以及这些对象之间的关系
d) 能使程序同时访问多个或多种数据库


2) (a)图被用来表示数据库实体之间的关系。


a) 实体关系
b) 数据模型
c) 实体分类
d) 以上都不是


3) 用户程序使用 SQL批处理技术的好处是(bcd)(多选)。


a) 没有好处,和每次传递一条SQL语句一样
b) 可以减少网络流量
c) 简化数据库的管理
d) 提高效率


4) 在sql server的存储过程中,有几个语句用于为局部变量赋值(b)。


a) 1个
b) 2个
c) 3个
d) 不需要语句,等号即可


5) 在用户程序中,如果没有设置显示或隐式事务模式,那么SQL server(b)。


a) 不进行任何事务处理
b) 使用自动提交模式
c) 就处理不了数据的更新
d) 选择默认的隐式事务模式


6) 当我们的程序使用了select * from table时,sql server会为我们建立(c)锁。


a) 意向
b) 排他
c) 共享
d) 构架


7) 如果某公司有10个部门,每个部门有6-7个员工,但每个员工可能会为不止一个部门工作。下面所给的模型合理的是( c)。


a) 部门和员工之间是一种确定的一对多的关系
b) 建立一个关联表,从该关联表到员工表建立一个一对多的关系,然后再从该关连表到部门表建立一个一对多的关系
c) 建立一个关联表,从员工表到该关联表建立一个一对多的关系,然后从部门表到该关联表建立一个一对多的关系
d) 这种情况,不能建立正常的数据库模型


8) 有一张销售表orders,含有地区编号(regionID)、销售额(orderamount)两列,现希望统计出各地区的销售总额以及所有销售额总和,下面( c)语句可以实现。


a) SELECT SUM (orderamount) FROM orders GROUP BY salepersonID, regionID
b) SELECT regionID, SUM (orderamount) FROM orders ORDER BY regionID
COMPUTE SUM (orderamount)
c) SELECT regionID, orderamount FROM orders ORDER BY regionID
COMPUTE SUM (orderamount) BY regionID COMPUTE SUM (orderamount)
d) SELECT regionID, orderamount FROM orders
GROUP BY regionID, orderamount COMPUTE SUM (orderamount)


9) 你想删除在t表中5年以前的数据,可以使用以下(a)的T-SQL


a) Delete from t Where OrderDate < DATEADD(YYYY,-5,GETDATE())
b) Delete from t Where OrderDate < DATEADD(YYYY,5,GETDATE())
c) Delete from t Where OrderDate < GETDATE(), -5
d) Delete from t Where OrderDate < GETDATE(), +5


10) 一存储过程:
CREATE PROCEDURE pr_getstudent @age Int As
select name,age from Students where Age = @age
假如你要在Students表中查找年龄是18岁的学生,( b)可以正确的调用这个存储过程。


a) EXEC pr_getstudent @ age ='18'
b) EXEC pr_getstudent @ age =18
c) EXEC pr_getstudent age ='18'
d) EXEC pr_getstudent age =18


11) 在SQL Server 2000的查询分析器中运行以下T-SQL:
USE PUBS GO sp_recompile Authors
下面说法正确的是:C
a) 报告语法错误,因为执行存储过程需要EXEC关键字
b) 执行成功,并且Authors表中的数据行被重新排列
c) 执行成功,并且Authors表中的存储过程在下次运行时将重新编译
d) 执行成功,并且Authors表中的触发器将被暂时禁止使用,直到下次运行本命令


12) 在SQL Server的视图里有:
SELECT DISTINCT productName, price FROM
product WHERE (price>(SELECT AVG(price) FROM product))
ORDER BY price DESC;
下面说法错误的是(B ).
a) ”SELECT AVG(price) FROM product ”是子查询
b) ”ORDER BY price DESC”是指按price从低到高顺序排列
c) 查询结果显示的是大于平均价格的产品记录
d) 此查询显示的字段只有”productName”和”price”


13) 以下是SQL Server表autos的定义:
Create table autos
(
make varchar(20) not null,
model varchar(20) not null,
acquisition_cost money null,
acquisition_date datetime null
)go
创建该表后再执行以下的语句:
Truncate table autos
Begin tran
Insert autos (make,model) values (‘Tucker’,'Torpedo’)
If exists (select * from autos)
Rollback tran
Else
Commit tran
go
以下说法正确的是(B)
a) 该批处理将失败,因为begin tran……commit tran 没有正确嵌套
b) 该批处理结束后,表内没有数据行
c) 该批处理结束后,表内有一行数据
d) 插入数据行的语句将失败,并且提示错误信息


14) 下列哪些答案最好地表达了下面建表命令的执行结果? (AC)
Create table MyTable (id int not null, price smallmoney not null, markup numeric (5,2) not null, msrp as price *(1+(markup/100)))
a) SQL Sever存储了一张4列的表
b) SQL Server存储了一张看上去像4列实际上是3列的表
c) 建立了一张表,只允许msrp字段为null
d) Markup字段是7位数字宽度


15) 关于IDENTITY属性的描述,错误的说法是? C
a) 一个表只能有一个列具有IDENTITY属性。
b) 你不能对定义了IDENTITY属性的列加上 default约束。
c) 附加了IDENTITY属性的列可以是任意数据类
d) 你不能直接更新一个定义了IDENTITY属性的列。


16) Create table Sale(SaleId numeric identity,
CustomerId numeric(10),
SaleNote varchar(2000) default ‘NONE’,
SaleDate datetime) 你不想将SaleNote再存储到表中,为了从表中删除SaleNote,下面所列的做法中最好的是D
a) 将sale表从数据库中以块的方式拷贝了来,删除该表,然后建立一个新的sale表,并将数据库块拷贝到的Sale表中,但忽略SaleNote列。
b) 通过删除SaleNote列来改变Sale表。
c) 先将Sale表改名,然后建立一个新的Sale表,用DTS将数据转移到新的Sale表中,但忽略SaleNote列。最后删除原始的sale表。
d) 先删除SaleNote列的缺省对象(包括索引和约束等),然后再删除该SaleNote列。


17) 对于下列建表语句:描述正确的是(A)。
Create table MyTable(id int not null,price smallmoney not null,markup numeric(5,2) not null,msrp as price*(1+(markup/100)))
a) 在数据库中建立了表MyTable
b) 表中所有字段都可以为null
c) 除了字段msrp,表中所有其它字段都可以为null
d) 不会建立表MyTable


18) 考虑下列实例,设计一个数据库跟踪系里的课程负载情况 :
PROFESSORS表包含每一个教授的信息。
COURSES 表包含所有的课程的信息。
每门课程被分配给一个指定的教授,而每一个教授可以教授几门课程。
只有在PROFESSORS 表中注册过的教授才能够教授课程,而这个教授也只能教授那些在COURSES表中登记过的课程 。
有关约束方面,下列说法正确的是(B)?
a) 在PROFESSORS表中建立一个主键,引用COURSES表。
b) 在COURSES表中创建一个外键,引用 PROFESSORS表。
c) 在PROFESSORS表中创建一个外键,引用COURSES表。
d) 在COURSES表中建立一个主键,引用PROFESSORS表。


19) 有关下列T-SQL语句,说法正确的是(BC)。
ALTER TABLE MyTable
ADD AddDate smalldatetime NULL
CONSTRAINT AddDateDflt
DEFAULT getdate( ) WITH VALUES
a) 修改表MyTable,添加一个约束“AddDate”,要求数据必须为日期格式,默认值为当前日期
b) 修改表MyTable,添加一列“AddDate”,数据类型为日期
c) 修改表MyTable,添加一列“AddDate”,允许为空,默认值为当前日期
d) WITH VALUES选项表示用当前日期填充现有行的AddDate列数据。


20) 有关下列T-SQL语句,说法正确的是(BC)。
CREATE DATABASE mytest GO
a) 创建数据库需要日志文件和数据文件,所以上述语句错误。
b) 上述语句创建数据库mytest,并创建相应的主文件和事务日志文件,保存在默认的位置。
c) 上述语句创建数据库mytest,主数据库文件的大小为 model 数据库主文件的大小。
d) 上述语句创建数据库mytest,日志文件的大小为master 数据库事务日志文件的大小。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇今天面试回忆 软件开发工程师 下一篇Oracle9i笔试题面试题A

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: