文档库 最新最全的文档下载
当前位置:文档库 › SQL_Test_01

SQL_Test_01

?1. 下列哪个SQL 语句属于DDL 语句( CA )。
A. Create
B. Select
C. Grant
D. Insert

2. SQL Server 2008 的BEGIN TRANS 和COMMIT TRANS,ROOLBACK TRANS 语句可用在( B )中来支持操作的事务特性。
A. Select 语句
B. 存储过程
C. https://www.wendangku.net/doc/6a12545294.html, 连接对象的Transaction 属性
D. 触发器

3. 在SQL Server2008数据库中,从Product表中查询出Price(价格)高于Pname (产品名称)为“网通IP电话卡”的
所有记录中的最高价格的查询语句是( D )。
A. SELECT * FROM Product WHERE max(Price)>’网通IP电话卡’
B. SELECT * FROM Product WHERE Price>(SELECT max(*)FROM Product WHERE Pname=’ 网通IP电话卡’)
C. SELECT * FROM Product WHERE EXISTS Pname=’网通IP电话卡’
D. SELECT * FROM Product WHERE Price>(SELECT max(Price)FROM Product WHERE Pname=’ 网通IP电话卡’)

4. 在SQL Server 2008中,声明一个最多可以存储10个字符的变量pwd,正确的代码是( B )。
A. DECLARE pwd VARCHAR(10)
B. DECLARE @pwd VACHAR(10)
C. pwd VARCHAR(10)
D. @pwd VARCHAR(10)

5. 在SQL Server 2008中,已知Student表中有一个age列,数据类型是int,如果要限制该列的取值范围在18到28之间,
可以使用以下哪个SQL语句( A )。
A. alter table Student add check(age>=18 and age<=28)
B. alter table Student add defult(age>=18 and age<=28)
C. alter table Student add unique(age>=18 and age<=28)
D. alter table Student add set(age>=18 and age<=28)

6. SQL Server 2008数据库中,创建books表的语句如下,这个创建命令执行时出错,错误原因有( c )。
Cerate table books
(
bookid int primary key,
title varchar(20) not null,
author char not null,
loc int identity(1,1),
depid int foreign key,
comment text(1000)
)
A. 定义主键的方式错误
B. 必须对Char数据类型指定列宽度
C. 定义外键的方式错误
D. 定义外键列不能定义为标识列
E. 不能对text数据类型指定列宽度

7. 在SQL Server 2008中,创建存储过程如下:要在Students表中查找Age(年龄)是18岁的学生,( a )可以正确的调用这个存储过程。
CREATE PROCEDURE MyP1 @p Int As
SELECT Studentname,Age FROM Student WHERE Age=@p
A. EXEC Myp1 18
B. EXEC Myp1 @p=18
C. EXEC Myp1 p=’18’
D. EXEC Myp1 p=18

8. 在SQLServer2008中,假设Orders表中存在自动编号字段oid等于1的记录,执行下面T-SQL,以下说法正确的是( a )。
BEGIN TRANSACTION
Delete from Orders where oid=1
If(@@Error<>0)
ROLLBACK TRANSACTION
Else
COMMIT TRANSACTION
A. 执行成功,oid为1的记录被永久删除
B. 执行成功,Orders表没有任何变化
C. 执行时出现错误
D. 执行成功,但事务处理并没有任何结束

9. 在SQLServer 2008中,给定如下的T-SQL代码,以下说法正确的是( d )。
Create Procedure price_proc
(
@count int output,@avg_price money out

put,@type char(12)=’business’
)
as
Select @Count=Count(*),@avg_price=Avg(price) from titles where type=@type
A. 建立了存储过程price_proc,所有参数都是输出参数
B. 建立了存储过程price_proc,返回的是用户指定图书种类数量及平均价格
C. @count=count(*) 也可以用@count=count()代替
D. 创建存储过程失败,Select语句中使用了聚合函数,因此必须使用Group By进行分组

10. 在SQL Server 安全管理过程中,以下( C )的概念类似于WinNT 中的用户组。
A. 权限 B. 登录账户 C. 角色 D. 触发器

11. 在sql server2008中,与以下T-SQL等效的是( C )。
Update titles set price = price * 1.05 where pub_id in (select pub_id from publishers)

A. Update titles set price = price * 1.05 where exists (select pub_id from publishers)
B. Update titles set price = price * 1.05 from titles where pub_id in publishers.pub_id
C. Update titles set price = price * 1.05 where titles.pub_id =publishers.pub_id
D. Update titles set price = price * 1.05 from titles inner join publishers on titles.pub_id= publishers.pub_id

12. Sqlserver 2008 中,已知执行语句:Select count(score),sun(score)from score 返回的结果是5和750,
那么执行语句:Select avg(score) from score,返回的结果是( b )。
A. 5
B. 150
C. 1500
D. 750

13. 在Sql Server 2008数据库中,使用T-SQL编程时,下列( d )语句可以从WHILE语句块中退出。
A. CONTINUE
B. EXIT
C. BREAK
D. RETURN

14. 在SQL Server 2008数据库中运行以下T-SQL语句,将输出( B )。
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. 更新时间
B. 更新
C. 不打印任何信息
D. 以上代码将出现运行错误而中断

15. 在SQL Servet 2008中,执行以下的T-SQL,若能找到title_id为“tc2”的记录,将( b )。
begin transaciton
if exists(select title_id from titles where title_id=’tc2’)
begin
delete titles where title_id=’tc2’
rollback transaction
print’OK’
end
A. 删除该记录行,不打印任何信息
B. 不删除该记录行,并且打印OK
C. 删除该记录行,并且打印OK
D. 不删除该记录行,也不打印任何信息

16. 在SQL Server 2008中,有Products(产品)表,包含字段Pname(产品名称)、Price(价格)。
若要得到最贵产品的产品名称和产品价格,应该使用的查询语句有( d )。
A. SELECT TOP 1 Pname,Price FROM Products ORDER BY Price
B. SELECT Pname,MAX(Price) FROM Products
C. SELECT Pname,MAX(Price) FROM Products GROUP BY Pname
D. SELECT Pname,Price FROM Products WHERE Price = (SELECT MAX(Price) FROM Products)

17. 在SQL Server2008中,分析下面的存储过程,执行后的结果是( D

)。
CREATE Procedure lookup(@a int)
AS
IF @a is null
Begin
Print ‘缺少参数’
RETURN
End
Select * from sysobjects where id=@a
RETURN
Go
EXECUTE lookup
A. 该存储过程会打印“缺少参数”
B. 该存储过程会基于无参数情况做一个查找,返回表中的所有行
C. 该存储过程有语法错误
D. 数据库服务器会打印一条消息,提示该存储过程需要提供一个参数

18. Sql Server2008中已知有表,表中共有10条status列值为0的记录,创建视图:
CREATE VIEW view1
AS
select * from student where status=0
视图创建成功后,执行如下命令:
Update view1 set status=1
Select * from view1
命令执行的结果是( d )。
A. 错误提示:不能对视图执行更新操作
B. 错误提示:不能对视图执行查询操作
C. 返回10条记录
D. 返回0条记录

19. Sql Server2008中,创建触发器的语句如下:
Create trigger trig_score on score for insert
as
declare @sid int,@score float
select @sid=sid,@score=score from inserted
update student set score=score+@score where sid=@sid
Go
其中score表通过sid列与student表建立了外键约束,假定数据库中的数据具备完整性,
创建触发器成功后执行语句,insert into score(aid,score)values(2,20),执行后的结果是( a )。
A. score表中插入一条数据,student表中更新一条数据
B. score表中插入一条数据,student表中插入一条数据
C. score表中插入一条数据,student表中没有变化
D. 提示错误:没有inserted这张表

20. 为表userinfo添加约束,语法如下:
alter table userinfo add constraint uq_userid unique(userid)
执行成功后,为userinfo表的( )字段添加了( b )约束。
A. Userid ; 主键
B. Userid ; 唯一
C. Uq_userid ;外键
D. Uq_userid ;检查

21. 运行如下T-SQL,结果返回包含( C)的记录集。
create table scores
(
scoreid int identity(1,2),
score numeric(4,2) not null,
courseid int
)
insert into scores values(90.5, null)
insert into scores values(100, 2)
select * from scores
A. 1、90.5、null
3、100、2
B. 1、100、2l
C. 1、90.50、null
D. 1、90.5、null
3、100.0、2

22. 关于子查询,以下说法正确的是( a )。
A. 一般来说,联接查询都可以用子查询替换
B. 一般来说,子查询都可以用联接查询替换
C. 相对于联接查询,子查询适合作为查询的筛选条件
D. 相对于联接查询,子查询适合查看多表的数据

23. 创建存储过程如下:
CREATE procedure bookproc

@id int, @title char(20) OUTPUT

AS
select @title=title from book where id= @id
执行该存储过程的方法正确的是( C )。
A. exec bookproc 1,@title output
print @title
B. exec bookproc @id =1,@title output
print @title
C. declare @title char(20)
exec bookproc 1,@title output
print @title
D. declare @title char(20)
ex

ec bookproc @id =1,@title output
print @title

24. 假设需要设计一个表,记录各个作者著作的所有图书信息,表结构设计如下:
作者(作者名称、图书1、版本1、书价1、图书2、版本2、书价2、……),
该表最高符合第( b )范式。
A. 1NF B. 2NF
C. 3NF D. 未规范化的

25. 分析下面的代码段,说法错误的是( B )。
1 CREATE PROCEDURE proc_stuInfo
2 @stuName VARCHAR(10),
3 @m INT OUTPUT,
4 @stuAge=18 INT
5 AS
6 .....代码略
7 GO

9 DECLARE @s INT
10 EXEC proc_stuInfo '张三',@s,30
11 EXEC proc_stuInfo @stuAge=22,@stuName='李四',@m=@s OUTPUT
A. 此代码段创建了一个存储过程,并测试调用此存储过程
B. 第4行代码有误
C. 第10行代码有误
D. 第11行代码有误

26. 分析以下代码,说法正确的是( b )。
select * from stuInfo where stuNo not in(select stuNo from stuMarks where writtemExam ! =100 )
A. 此语句查询笔试成绩不等于100分的学生所有信息
B. 此语句查询笔试成绩等于100分的学生所有信息
C. 此语句查询所有没有参加考试的学生信息
D. 此语句查询所有参加考试的学生信息

27. 分析以下代码,说法正确的是( d )。
create trigger trig_update_transInfo
on transInfo
for update
as
if update(transDate)
rollback transaction
go
A. 为transInfo表创建了一个update触发器,不允许更改表中记录
B. 为transInfo表创建了一个update触发器,允许更改表中记录
C. 创建了一个列级update触发器,允许更改transInfo表中transDate 字段
D. 创建了一个列级update触发器,不允许更改transInfo表中transDate 字段

28. 语句:
while (1=1)
begin
update stuMarks set labExam=labExam+1
if((select max(labExam) from stuMarks)>=97)
break
end
以上程序的运行结果是( C )。
A. 死循环,程序一直执行下去
B. 在stuMarks 表中将机试成绩加1分
C. 给stuMarks 表中给机试成绩加分,直到有人达到97分结束
D. 在stuMarks表中,机试成绩肯定不会有人超过97分

29. select top(1) * from stuInfo where stNo not in(select top(2) stNo from stuInfo)
以上语句的功能是( 3 )。
A. 查询学员信息表的第一条记录
B. 查询学员信息表的第二条记录
C. 查询学员信息表的前两条记录
D. 查询学员信息表中除了前两条记录之外的其余记录

30. 关于系统存储过程xp_cmdshell说法正确的是( B )。
A. Sql Server2008允许登录的所有用户执行xp_cmdshell存储过程
B. 用于执行DOS命令
C. 用于查看某个表的约束
D. 添加或修改登录账户的密码

31. 关闭游标使用的命令是( D )。
A. delete cursor B. drop cursor C. deallocate D. close cursor

32. 使用子查询时受一定的限制,下列说法正

确的有( c )。
A. 子查询的选择列表中允许出现text数据类型
B. 包括GROUP BY的子查询不能使用DISTINCT关键字
C. 如果外部查询的WHERE子句包括某个列名,则该子句必须与子查询选择列表中的该列在联接上兼容
D. 可以指定COMPUTE和INTO子句
33. 关于批处理,下列说法错误的是( C )。
A. GO是批处理的标志
B. 批处理中的语句集要么都执行,要么都不执行
C. 批处理的主要好处就是简化数据库的管理
D. 批处理可以提高执行效率


34. 有一个分数表score,包括stu_id(学号)、subject(科目)、marks(分数)字段,查询C语言最高的学员的学号,可以用( bc )。
A. Select stu_id,max(marks) From score Where subject =’c’
B. Select stu_id From score Where marks=(select max(marks) from score where subject=’c’)
C. Declare @max float
select @max= max(marks) from score where subject=’c’
Select stu_id From score Where marks=@max
D. 以上都正确

35. 可以与子查询一起使用以检查行或列是否存在的是( a )子句。
A. exists
B. in
C. union
D. Not in

36. 下列说法正确的有( b )。
A. exists子句可以替换In子句
B. exists子句只用来检测存在性
C. in子句主要用来判断是否在某个范围
D. 有not in子句但是没有not Exists子句

37. 下面的T-SQL语句功能,描述正确的是( c )。
SELECT * FROM Employee WHERE EXISTS(SELECT * FROM Expertise WHERE SkillLevel>5)
A. 如果所有员工技能都大于5级,则查询出全部的员工
B. 如果有一个员工的技能大于5级,就查询显示全部的员工
C. 如果存在着员工技能,就查询出全部员工
D. 查询出技能级别大于5级的全部员工

38. 要查询的数据来自多张表,下面( A )方式无法完成任务。
A. 使用UNION联合
B. 使用子查询
C. 使用局部变量
D. 使用多表联接查询

39. 下面的语句执行时不会出现错误的有( bd )。
A. SELECT ename,job,sal FROM EMP WHERE deptno ALL ( SELECT deptno FROM dept WHERE dname LIKE 'A%');
B. SELECT ename,job,sal FROM EMP WHERE deptno = ANY ( SELECT deptno FROM dept WHERE dname LIKE 'A%');
C. SELECT ename,job,sal FROM EMP WHERE deptno ANY ( SELECT deptno FROM dept WHERE dname LIKE 'A%');
D. SELECT ename,job,sal FROM EMP WHERE deptno IN ( SELECT deptno FROM dept WHERE dname LIKE 'A%');

40. 关于数据库同义词,说法正确的是( c )。
A. 只能为本机服务器中的对象创建同义词
B. 同义词没有访问权限的限制,任何用户都可以访问
C. 同义词是为了简化对对象的访问,它类似于对象的别名
D. 同义词是指与对象有着相同含义的词汇

41. 关于函数和存储过程的区别,下列说法中正确的有( B )。
A. 存储过程声明中不能指定返回值,而函数的声明中一定要指定返回值


B. 存储过程可以调用函数
C. 函数可以是用UPDATE修改数据库表的数据
D. 函数是预编译的,存储过程不是预编译的

42. 关于内联表值函数和多语句表值函数的区别,说法正确的有( B )。
A. 内联表值函数可以使用局部变量,多语句表值函数不能使用局部变量
B. 多语句表值函数可以使用局部变量,内联表值函数不能使用局部变量
C. 内联表值函数必须有函数体,放在BEGIN END之间
D. 多语句表值函数返回的数据不一定都要来自数据库中的表

43. 关于标量值函数,说法错误的是( A )。
A. 标量值函数可以使用EXECUTE执行
B. 标量值函数可以在SELECT语句中直接调用
C. 标量值函数可以返回TABLE类型的值
D. 标量值函数的定义中可以使用多条SQL语句

44. 下列选项中,可用于检索游标中的记录的有( c )。
A. DEALLOCATE
B. DROP
C. FETCH
D. CREATE
E. OPEN

45. 下列选项中,( b )选项定义游标要复制一个它要使用的数据的临时副本。
A. STATIC
B. DYNAMIC
C. KEYSET
D. FAST_FORWARD

46. 下列关于登录名和用户名的说法中错误的是( c )。
A. 登录名是服务器的一个实体,使用一个登录名只能进入服务器,而不能让用户访问服务器中的数据库资源
B.登录名和用户名是1对1的映射关系
C. 用户名是一个或多个登录对象在数据库中的映射,可以对用户对象进行授权,以便为登录对象提供对数据库的访问权限
D.一个登录名可以访问多个数据库

47. Sql Server数据库的“恢复模式”有以下哪几种( abc )。
A. 简单恢复模式
B. 完整恢复模式
C. 差异恢复模式
D. 大容量事务日志恢复模式

48. 对下面代码描述错误的有( b )。
use master
go
alter database demo
SET RECOVERY FULL
go
backup database demo
to disk='d:\backup\demofull_bak'
with format,
medianame='第一个媒体集',
name='demo数据库的完整备份'
go
use master
go
backup LOG demo to disk='d:\backup\demolog_bak'
go
A. 代码设置了数据库的demo的恢复模式为简单恢复模式
B. 代码对数据库demo做了一次完整备份后又进行了日志备份
C. 代码设置了数据库demo的恢复模式为完整恢复模式
D. 代码没有备份数据库demo的事务日志

49. 假设数据库HR有员工表Employee,表中有字段HireDate(就职日期),对下面的代码描述正确的是( b )。
USE HR
GO
CREATE SYNONYM dbo.Emp FOR HR.dbo.Employee
GO
SELECT * FROM dbo.Emp WHERE DATEDIFF(yyyy,Hiredate,getdate())>=10
A. 从Emp表中查询工龄大于等于10年的员工
B. 从Employee表中查询工龄大于等于10年的员工
C. 语句执行会出错,提示HR数据库中不存在对象Emp
D. 语句执行会出错,提示HR数据库中没有对象Employee

50. 一个学生只能就读于一个班级,而一

个班级可以同时容纳多个学生,学生与班级之间是( c )关系。
A. 一对一 B. 一对多
C. 多对一 D. 多对多


相关文档