数据库面试题 联系客服

发布时间 : 星期二 文章数据库面试题更新完毕开始阅读

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)