SQLServer期末考试题目和答案 下载本文

内容发布更新时间 : 2024/11/17 2:45:26星期一 下面是文章的全部内容请认真阅读。

如对您有帮助,欢迎下载支持,谢谢!

句。

41. 是一种常用的改善数据库性能的技术。

42. SQL Server2000中引入索引主要是为了加速________速度,也可保证数据的惟一性。

43. 索引可以加速selcet语句中Order By和____________选项的执行速度。 44. 索引一经创建就完全由SQL Server2000系统 选择和维护。 45. 索引会影响对基本表的________、________和________等操作的速度。

46. 从是否改变基本表记录的物理位置角度可将索引分为__________和__________索引两类。

47. 聚集索引与非聚集索引相比,查询速度更 。

48. 注释是一些说明性的文字,而不是 语句,不参与程序的编译。 49. SQL Server2000支持两种形式的变量,即 和 。 50. 一个局部变量的使用范围局限于一个 内,即两个GO语句之间的那一部分。

51. SQL Server2000中为局部变量赋值的语句是 和 。

52. 触发器是一种特殊的 ,基于表而创建,主要用来保证数据的完整性。 53. 使用create database命令定义一个数据库,包括定义__________文件和__________文件两个部分。

54. 使用create database命令定义一个数据库,定义其数据文件以关键字________开始,定义日志文件以关键字________开始。

55. 修改数据库定义的命令关键字为________________,删除整个数据库的命令关键字为________________。

56. 在SQL Server2000中,打开一个数据库使之成为当前库,有________种方法,其中之一使用的命令关键字为_______。

57. 索引可以由系统根据约束条件自动建立,也可以由用户通过命令或菜单方式建立,但它的________和_______将根据需要由系统自动实现,无须用户过问。 58. 索引是在基本表的列上建立的一种数据库对象,它同基本表分开存储,使用它将降低数据的________、________、_________速度。 59. 基本表中的记录数越______,每条记录占用的字节数越______时,使用索引就越有利。

60. 创建索引的命令关键字为________________,删除索引的命令关键字为________________。

61. 在索引命令中使用关键字CLUSTERED或NOCLUSTERED分别表示将建立的是________或________索引。

62. 在基本表的某个列上建立索引,可以使基本表中的所有记录按该列值的________或________排列。

63. 当指定基本表中某一列或若干列为主码时,则系统将在这些列上自动建立一个________、________和________的索引。

64. 当指定基本表中某一列或若干列为UNIQUE约束时,则系统将在这些列上自动________一个唯一值________。

65. 若规定基本表中某一列或若干列为非空和唯一值双重约束,则这些列就是该基本表的________码,若只规定为唯一值约束,则__________空值重复出现。

66. 在SQL Server2000中,通常不需要用户建立索引,而是通过使用________约束和________约束,由系统自动建立索引。

5

如对您有帮助,欢迎下载支持,谢谢!

68. 单行或行尾注释的开始标记为________,多行注释的开始标记为________,结束标记为________。

68. 局部变量的开始标记为______,全局变量的开始标记为________。 69. 每条________语句能够同时为多个变量赋值,每条________语句只能为一个变量赋值。

70. 定义局部变量的语句关键字为__________,被定义的各变量之间必须用________字符分开。

71. 在SQL Server2000中,每个程序块的开始标记为关键字__________,结束标记为关键字________。

72. 在SQL Server2000中,前后相邻的语句之间可以使用________、________或________字符分开。

73. 在SQL Server2000中,CASE结构是一个________,只能作为一个________使用在另一个语句中。 74. 在SQL Server2000中,CASE函数具有______种格式,每种格式中可以带有________个WHEN选项,可以带有______个ELSE选项。

75. 在条件结构的语句中,关键字IF和ELSE之间和ELSE之后,可以使用________语句,也可以使用具有____________格式的语句块。 76. 在循环结构的语句中,当执行到关键字__________后将终止整个语句的执行,当执行到关键字__________后将结束一次循环体的执行。

77. 声明游标语句的关键字为________________,该语句必须带有__________子句。 78. 打开和关闭游标的语句关键字分别为________和________。

79. 判断使用FETCH语句读取数据是否成功的全局变量为________________。

80. 使用游标对基本表进行修改和删除操作的语句中,WHERE选项的格式为“WHERE __________ OF ____________。 81. 每次执行使用游标的取数、修改或________操作的语句时,能够对表中的________个记录进行操作。

82. 在SQL Server2000中,一个事务是一个__________的单位,它把必须同时执行或不执行的一组操作________在一起。

83. 在SQL Server2000中,一个事务处理控制语句以关键字________________开始,以关键字________________或________________结束。

84. 每个存储过程可以包含________条Transact-SQL语句,可以在过程体中的任何地方使用__________语句结束过程的执行,返回到调用语句后的位置。 84. 建立一个存储过程的语句关键字为________________,执行一个存储过程的语句关键字为____________。

86. 在一个存储过程定义的AS关键字前可以定义该过程的________,AS关键字之后为该过程的__________。

87. 触发器是一种特殊的存储过程,它可以在对一个表上进行________、________和________操作中的任一种或几种操作时被自动调用执行。

88. 创建和删除一个触发器的语句关键字为________________和________________。 89. 在一个表中最多只能有一个关键字为_____________的约束,关键字为FOREIGN KEY的约束可以出现________次。

90. CHECK约束被称为________约束,UNIQUE约束被称为__________约束。

91. 使用一种约束时,可以使用关键字_____________和标识符____________的选项命名该约束,也可以省略该选项由系统自动命名,因为用户很少再使用其约束名。

6

如对您有帮助,欢迎下载支持,谢谢!

92. 当一个表带有约束后,执行对表的各种________操作时,将自动________相应的约束,只有符合约束条件的合法操作才能被真正执行。

93. 在SQL Server2000中,数据库的安全机制分为4个等级,分别为客户端____________的安全、数据库的________安全、数据库使用安全和数据库对象的使用安全。 94. 数据库的安全管理问题归结为对________和________的管理问题。

95. 要访问SQL Server2000数据库服务器,用户必须提供正确的__________和__________。

96. 对用户授予和收回数据库操作的语句关键字分别为__________和__________。 97. 在授予用户访问权限的语句中,所给表名选项以关键字________开始,所给用户名选项以关键字________开始。

98. 在收回用户访问权限的语句中,所给表名选项以关键字________开始,所给用户名选项以关键字________开始。

99. 使用游标取数和释放游标的语句关键字分别为____________和____________。

三、写出下列每条语句或程序段的功能

假设存在名为AAA的数据库,包括Students(学号 char(8),姓名 varchar(8),年龄 int,专业 varchar(20),入学日期 DateTime)和Score(学号 char(8),课程名 varchar(10),成绩 numeric(5,2))两张表。 1. SELECT *

FROM Students

WHERE DATEPART(year,入学日期) =DATEPART(year,GETDATE())

2. DECLARE @MyNO CHAR(8) SET @MyNO='20030001'

IF (SELECT 专业 FROM Students WHERE 学号=@MyNO)='计算机软件' BEGIN

SELECT AVG(成绩) AS 平均成绩 FROM Score WHERE 学号=@MyNO END

ELSE

PRINT '学号为' +@MyNO+'的学生不存在或不属于软件专业' GO

3. declare @a numeric(5,2)

set @a=(select avg(成绩) from score) select *

from score

where 成绩>=@a

4. declare @a numeric(5,2),@b numeric(5,2) set @a=(select max(成绩) from score) set @b=(select min(成绩) from score) print @a-@b

7

如对您有帮助,欢迎下载支持,谢谢!

5. declare @a char(6)

set @a='刘亮'

if(exists(select * from students where 姓名=@a)) print '姓名为'+@a+'的同学存在!' else

print '姓名为'+@a+'的同学不存在!'

6. declare @a char(8)

set @a='计算机'

select 计算机专业人数=count(*) from students where left(专业,3)=@a

7. select year(入学日期) as 入学年份,count(*) as 人数 from students

group by year(入学日期)

8. select month(入学日期) as 入学月份,count(*) as 人数 from students

group by month(入学日期)

9. select day(入学日期) as 入学日号,count(*) as 人数 from students

group by day(入学日期)

10. create procedure xxk1 as begin

select *

from students x,score y where x.学号=y.学号 end

11.create procedure xxk2 as begin

select x.学号,x.姓名,x.专业,count(*) as 门数 from students x,score y where x.学号=y.学号

group by x.学号,x.姓名,x.专业 end

12.create procedure xxk3

8