T-SQL考试题

本文介绍了SQLServer中多对多关系的示例,删除数据的关键字,事务的特性,查看数据库对象信息的系统存储过程,视图的概念和使用,以及变量声明和赋值的语法。此外,还涉及了删除约束、提交事务的语句,存储过程的性质,变量的分类,子查询的使用,以及表联接和子查询的选择。内容涵盖了数据库的日常管理和开发中的重要概念。
摘要由CSDN通过智能技术生成
  1. SQL Server中,下面的映射关系属于“多对多”的是( )。A
    A:某大学生物系的教师——某大学生物系的学生
    B:储户——银行卡
    C:孩子——父亲
    D:以上都不是

  2. 在SQL Server中,当删除数据库中的某张表的数据时,使用的T-SQL关键字为( )。C
    A:ALTER
    B:REMOVE
    C:DELETE
    D:DROP

  3. 在SQL Server中,以下对事务的理解正确的是( )。A
    A:事务是一个不可分割的工作逻辑单元
    B:事务具有原子性、完整性、隔离性、强制性四个特性
    C:事务必须用begin开始,用end结束
    D:所有的事务都是自动提交的

  4. 在SQL Server中,查看某个数据库对象的信息的系统存储过程是( )。B
    A:sp_helpindex
    B:sp_help
    C:sp_helptext
    D:sp_stored_procedures

  5. 在SQL Server中,关于视图的说法不正确的是( )。D
    A:视图是一种虚拟表,通常是作为执行查询的结果而创建的
    B:使用CREATE VIEW语句创建视图
    C:使用SELECT语句查看视图的查询结果
    D:定义视图的查询可以基于一个或多个表,但不可以基于其他视图

  6. 在SQL Server中,下面关于局部变量声明和赋值的语句错误的是( )。AD

A:
@x Int 
select @x=10
B:
declare @x int
select @x=10
C:
declare @@x int
set @@x=10
D:
@@x int
set @@x=10
  1. 在SQL Server中,使用( )语句可以删除数据库中学生表(Student)里名称为DF_stuSex的约束。B
A:ALTER  TABLE  Student  DELETE  CONSTRAINT  DF_stuSex
B:ALTER  TABLE  Student  DROP  CONSTRAINT  DF_stuSex
C:DROP  DF_stuSex  for  Student
D:DELETE  Student  for  DF_stuSex
  1. 在SQL Server中,用于提交事务的语句是( )。C
    A:BEGIN TRANSACTION
    B:SAVE TRANSACTION
    C:COMMIT TRANSACTION
    D:ROLLBACK TRANSACTION

  2. 在SQL Server中,关于存储过程的说法不正确的是( )。D
    A:存储过程一般分为系统存储过程、扩展存储过程和用户自定义存储过程
    B:存储过程是在数据库管理系统中保存的、预先编译的并能实现某种功能的SQL程序
    C:存储过程帮助实现了模块化编程
    D:用户在创建自定义存储过程后不能再被修改

  3. 在SQL Server中,下列可以正确执行的语句是( )。C
    A:

declare @n decimal(5,2),@m varchar(20)
go
set @n=99.995
set @m='n 的值为'
print @m+@n
go

B:

declare @n decimal(5,2),@m varchar(20)
go
set @n=99.995
set @m='n 的值为'
print @m+str(@n)
go

C:

declare @n decimal(5,2),@m varchar(20)
set @n=99.995
set @m='n 的值为'
print @m+str(@n)
go

D:

declare @n decimal(5,2)
declare @m varchar(20)
set @n=99.995
set @m='n 的值为'
print @m+@n
go
  1. 在SQL Server中,索引是在基本表的列上建立的一种数据库对象,它同基本表分开存储,使用它能够加快数据的( )速度。C
    A:插入
    B:修改
    C:查询
    D:删除

  2. 在SQL Server中,关于变量描述,不正确的是( )。C
    A:变量可分为全局变量和局部变量两大类
    B:全局变量是由系统提供且预先声明,通过在名称前加两个“@”符号区别于局部变量
    C:不能使用SELECT语句给变量赋值
    D:可使用DECLARE语句声明局部变量

  3. 在SQL Server中,运行以下T-SQL语句,输出的结果是( )。D

CREATE PROC usp_selectStu
@stuNo varchar(8)=NULL 
 AS
  IF @stuNo IS NULL
    Begin
      Print '请输入学号'
      RETURN
    End
  SELECT * FROM stuInfo WHERE stuNo=@stuNo
GO
EXEC  usp_selectStu

A:编译错误
B:调用存储过程usp_ selectStu出错
C:显示空的学员信息记录集
D:显示“请输入学号”

  1. 在SQL Server中,调用存储过程的说法错误的是( )。C
    A:带输出参数的存储过程调用时,在变量后跟随OUTPUT关键字
    B:存储过程可以用exec调用
    C:只有系统存储过程必须用exec调用,自定义存储过程则不必
    D:带参数的存储过程,参数类型为输入参数和输出参数

  2. 在SQL Server中,Result表保存了100个学生的成绩信息,以下T-SQL代码,说法正确的是( )。C
    SELECT * FROM Student WHERE studentNo =(SELECT StudentNo FROM Result)
    A:此代码正确的查询出所有参加考试的学生的信息
    B:此代码中将“=”换作“>=”更合理
    C:此代码中将“=”换作“IN”更合理
    D:此代码正确的查询出参加考试的第一条学生的信息

  3. 关于SQL Server的表联接和子查询,以下说法错误的是( )。CD
    A:当查询结果来自多张表的时候,优先使用表联接
    B:当查询的条件依赖另外的表时,优先使用子查询
    C:查询语句如果使用了表联接,就不能再配合使用子查询
    D:表联接和子查询不能相互替换

  4. 在SQL Server数据库中,关于事务日志文件说法正确的是( )。C
    A:SQL Server数据库可以有事务日志文件,也可以没有
    B:事务日志文件记录所有的数据和操作
    C:事务日志文件记录所有事务以及每个事务对数据库所做的修改
    D:事务日志文件是一个表

  5. 在SQL Server中,已经存在Students表,其中包括“学号”和“分数”两列,执行以下代码,正确的查询结果是( )。B

delete from students
insert into students values ('s117501',90)
if not exists (select * from students where 学号='s117502')
 	begin
		select '没有找到!'
		return
 	end
select '已经找到!'
return

A:没有找到!
已经找到!
B:没有找到!
C:已经找到!
D:null

  1. 在SQL Server中,关于子查询描述错误的是( )。B
    A:相对于表连接,子查询更适合于作为查询的筛选条件
    B:使用EXISTS关键字引入一个子查询,子查询产生查询结果集
    C:使用IN子查询返回的查询结果是一列零值或更多值。子查询返回结果后,外部查询可以使用这些查询结果
    D:子查询可由一个比较运算符引入。比较运算符可以是=、<>、>、<、>=、<=等

  2. 以下T-SQL代码,说法不正确的是( )。CD

SELECT 学号 = StudentNo, 成绩 =
 CASE  
       WHEN StudentResult < 60 THEN 'E'
       WHEN StudentResult BETWEEN 60 AND 69 THEN 'D'
       WHEN StudentResult BETWEEN 70 AND 79 THEN 'C'
       WHEN StudentResult BETWEEN 80 AND 89 THEN 'B'
       WHEN ELSE 'A'
FROM Result

A:ELSE前面不用写WHEN
B:缺少END关键字
C:在每一个WHEN的条件表达式后面缺少逗号
D:缺少break关键字

  1. 在SQL Server中,以下用于更改数据库名称的存储过程是( )。C
    A:sp_renamedatabase
    B:sp_alterdb
    C:sp_renamedb
    D:sp_helpdb

  2. 在数据库设计中,分析客户的业务和数据处理需求属于( )阶段的内容。A
    A:需求分析
    B:概要设计
    C:详细设计
    D:运行测试

  3. 在SQL Server中,当查询某种型号的手机的详细信息时,下划线处应填写( )。
    SELECT * FROM mobilePhone WHERE phoneNo ___ (此处为返回多个phoneNo的SQL语句)A
    A:IN
    B:LIKE
    C:=
    D:>=

  4. 关于SQL Server中的事务,以下说法错误的是( )。C
    A:事务中的所有元素必须作为一个整体提交或回滚
    B:对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务
    C:SQL Server中不能使用事务日志保存受到故障影响的事务
    D:当事务成功完成时,数据必须再次回到已知的一致状态

  5. 在SQL Server中,下面的( )语句是正确的。C
    A:

CREATE VIEW view1
AS
   	SELECT * INTO #S1 FROM DEPT
GO

B:

CREATE VIEW view1
AS
   SELECT * FROM DEPT ORDER BY DEPTID
GO

C:

CREATE VIEW view1
AS
   SELECT TOP 5 * FROM DEPT ORDER BY DEPTID
GO

D:

CREATE VIEW view1
AS
DECLARE did int
SET @did=10
SELECT  *  FROM DEPT WHERE DEPTID =@did
GO
  1. 在SQL Server中,以下关于视图描述错误的是( )。BD
    A:定义视图的查询可以基于一个或多个表
    B:定义视图的查询不可以基于其它视图
    C:视图通常在查询数据时使用
    D:视图一旦被删除,视图中的数据也同时被删除

  2. 关于SQL Server的索引,以下说法错误的是( )。BD
    A:学生表中性别字段仅有“男”、“女”两种取值,不建议仅对该列创建索引
    B:索引不仅能提高查询的效率,还能提高增删改语句的运行速度
    C:一个表最多只能有一个聚集索引
    D:索引不会占用资源,所以为了提高查询的效率,往往会对表的每个列都建立索引

  3. 在SQL Server中,下面选项可以正确实现对变量赋值的是( )。AD
    A:

declare @name char(10)
set @name='小强'

B:

declare @age int(4)
select @age=18

C:

declare @sex bit
set @sex=0

D:

declare @money money(4)
set @money=4
  1. 在SQL Server中,有一个Customer表,字段creditLimt表示信用额度,字段verified表示是否通过身份验证。需要确保表里的数据满足下列需求:未通过身份验证的客户的信用额度必须为0;通过身份验证的客户信用额度必须少于10000。应该使用( )约束。B
A:Check(creditLimt=0 and verified=0) AND (creditLimt between 0 and 10000 and verified=1)
  B:Check(creditLimt=0 and verified=0) OR (creditLimt between 0 and 10000 and verified=1)
  C:Check(creditLimt=0 or verified=0) AND (creditLimt between 0 and 10000 or verified=1)
  D:Check(creditLimt=0 or verified=0) or (creditLimt between 0 and 10000 or verified=1)
  1. 在SQL Server中,书目表(titles)包含书籍标题(title)、预付款(advance)和书籍类型(type)等字段。要求查询预付款大于商业类书籍平均预付款的书籍标题,下列选项正确的是( )。B
    A:
SELECT title
FROM titles
WHERE advance>
 	(SELECT advance 
FROM titles
WHERE type='business')

B:

SELECT title
FROM titles
WHERE advance>
 	(SELECT avg(advance)
FROM titles
WHERE type='business')

C:

SELECT title
FROM titles
WHERE advance>=
 	(SELECT avg(advance)
FROM titles
WHERE type='business')

D:

SELECT title
FROM titles
WHERE advance> avg(advance)
AND type='business'
  1. 在SQL Server中,若实体A和B是多对多的关系,实体B和C是1对1的关系,则实体A和C是( )。D
    A:一对一
    B:一对多
    C:多对一
    D:多对多

  2. 在SQL Server的Orders表中,需要删除所有不活动的订单记录。现在需要开发一个存储过程来删除这些行,代码如下。

   DECLARE @rowcount INT
   DELETE FROM Orders 
    WHERE status='inactive'
   SET @rowcount=@@ROWCOUNT
   IF (@rowcount=0)
   BEGIN
     _____________________
   END
   PRINT '共删除'+CONVERT(varchar(20),@rowcount )+'行'
   GO

横线处应填入的代码是( )。C
A:PRINT (‘没有删除的数据!’,16,1)
B:RAISERROR(‘没有删除的数据!’,16,1)
C:RAISERROR(‘没有删除的数据!’,16,1)
RETURN
D:PRINT (‘没有删除的数据!’,16,1)
RETURN

  1. 在T-SQL中使用if…else语句时,条件表达式不能是()。CD
    A:1>0
    B:exists(select * from 学生表)
    C:true
    D:false

  2. 在SQL Server中,关于数据库设计三范式的描述,正确的是( )。AB
    A:数据库的设计范式有助于减少数据冗余
    B:数据库如果满足第三范式,则肯定满足第二范式
    C:设计数据库必须严格遵守设计三范式
    D:满足范式的级别越高,系统性能就越好

  3. 在SQL Server中,使用T-SQL语句创建一个外键约束的步骤是( )。C
    A:创建主键表和外键表–>在外键表添加外键约束–>向主键表添加主键约束
    B:创建主键表和外键表–>在外键表添加主键约束–>向主键表添加外键约束
    C:创建主键表和外键表–>在主键表添加主键约束–>向外键表添加外键约束
    D:创建主键表和外键表–>在主键表添加主键约束–>向主键表添加外键约束

  4. 在T-SQL中给变量赋值可以用( )。B
    A:给局部变量赋值用set,给全局变量赋值用select
    B:给局部变量赋值用set或select,不能给全局变量赋值
    C:给局部变量赋值用select,给全局变量赋值用set
    D:给局部变量赋值用set或select,给全局变量赋值用系统存储过程sp_setvalue

  5. 在SQL Server中,调用以下存储过程语句正确的是( )。AC

create proc sp_getscore
@examNo int=3201,
@score int output
as
select @score=score from stuScore where exmaNo=@examNo
go
A:declare @score int
exec sp_getscore 3202, @score output
B:declare @score int 
exec sp_getscore @score output
C:declare @score int
exec sp_getscore default, @score output
D:declare @score int
exec sp_getscore, @score
  1. 在SQL Server中,创建数据库应使用( A)语句。
    A:CREATE DATABASE 数据库名
    B:DROP DATABASE 数据库名
    C:ALTER DATABASE 数据库名
    D:NEW DATABASE 数据库名
  2. 关于SQL Server中的视图,以下说法错误的是(C)。
    A:视图是一种虚拟的表,通常是作为执行查询的结果而创建的
    B:视图充当着对查询中指定的表的筛选器
    C:更改视图中的数据,原始表中的数据不会随之更改
    D:视图的结构和数据是建立在对表的查询基础上的
  3. 在SQL Server中,对于使用索引的描述正确的是(C)。
    A:一个表只能创建一个非聚集索引,但可以有多个聚集索引
    B:创建了唯一约束,要立刻手动创建唯一索引
    C:在聚集索引中,表中各行的物理顺序与键值的逻辑顺序相同
    D:创建索引时,可以将多个列组合作为索引,这种索引称为全文索引
  4. 在SQL Server中,以下关于常用的系统存储过程的说法正确的是(AC)。
    A:sp_databases用于列出数据库服务器中的所有数据库信息
    B:sp_helpconstraint用于查看某个表的索引
    C:sp_stored_procedures用于显示存储过程的列表
    D:sp_tables用于查看系统中存在的表的个数
  5. 下面关于T-SQL中存储过程的说法正确的是()。C
    A:所有存储过程都有参数
    B:存储过程用break返回运算结果
    C:存储过程用输出参数返回运算结果
    D:没有输出参数的存储过程,调用时可以不必使用exec关键字
  6. 在SQL Server中, 分数值范围规定如下:
    成绩<60分:C
    60<=成绩<80分:B
    80<=成绩<=100:A
    根据分数值范围,正确输出结果的是(C)。

A:

select  学号,成绩,等级=
      case  
          when 成绩<=100 then 'A'          
          when 成绩<80 then 'B'
          when 成绩<60 then 'C'
       else '成绩输入有误!'
       end
  from students
  go

B:

select  学号,成绩,等级=
      case  
          when 成绩<=100 then 'A'          
          when 成绩<80 then 'B'
          when 成绩<60 then 'C'
       else '成绩输入有误!'
       end case
  from students
  go 

C:

select  学号,成绩,等级=
      case  
          when 成绩<60 then 'C'
          when 成绩<80 then 'B'
          when 成绩<=100 then 'A'
          else '成绩输入有误!'
       end
  from students
  go

D:

select  学号,成绩,等级=
      case  
          when 成绩< 60 then 'A'          
          when 成绩<80 then 'B'
          when 成绩<=100 then 'C'
       else '成绩输入有误!'
       end case
  from students
  go
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

专治八阿哥的孟老师

您的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值