发布时间 : 星期五 文章数据库期末综合练习题及答案更新完毕开始阅读9e7de1056c85ec3a87c2c550
2. SQL Server提供的单行注释语句是使用( )开始的一行内容。 A. “/*” B. “--” C. “{” D. “/” 3. 不属于SQL Server系统全局变量的是( )。 A. @@Error B. @@Connections C. @@Fetch_Status D. @Records
4. 下列SQL Server语句中出现语法错误的是( )。 A. DECLARE @Myvar INT B. SELECT * FROM [AAA] C. CREATE DATABASE AAA D. DELETE * FROM AAA
5. 索引是在基本表的列上建立的一种数据库对象,它同基本表分开存储,使用它能够加快数据的( )速度。
A. 插入 B. 修改 C. 删除 D. 查询
二、填空题
1. 如果希望修改数据库的名字,可以使用的系统存储过程是 。
2. 数据库备份和恢复的Transact-SQL语句分别是____________________和__________________。 3. 找回被删除表的惟一方法是事先做好数据库的 工作。 4. 是一种常用的改善数据库性能的技术。
5. 索引会影响对基本表的________、________和________等操作的速度。 6. 聚集索引与非聚集索引相比,查询速度要 。 7. SQL Server中为局部变量赋值的语句是 和 。
8. 使用create database命令定义一个数据库,包括定义__________文件和__________文件两个部分。
9. 基本表中的记录数越______,每条记录占用的字节数越______时,使用索引就越有利。 10. 在索引命令中使用关键字CLUSTERED或NOCLUSTERED分别表示将建立的是________或________索引。
11. 当指定基本表中某一列或若干列为主码时,则系统将在这些列上自动建立一个________、________和________的索引。
12. 单行或行尾注释的开始标记为________,多行注释的开始标记为________,结束标记为________。 13. 每条________语句能够同时为多个变量赋值,每条________语句只能为一个变量赋值。 14. 在SQL Server中,每个程序块的开始标记为关键字__________,结束标记为关键字________。 15. 在条件结构的语句中,关键字IF和ELSE之间和ELSE之后,可以使用________语句,也可以使用具有____________格式的语句块。
16. 声明游标语句的关键字为________________,该语句必须带有__________子句。 17. 判断使用FETCH语句读取数据是否成功的全局变量为________________。
18. 一个事务处理控制语句以关键字________________开始,以关键字________________或________________结束。
19. 建立一个存储过程的语句关键字为________________,执行一个存储过程的语句关键字为____________。
20. 触发器是一种特殊的存储过程,它可以在对一个表上进行________、________和________操作中的任一种或几种操作时被自动调用执行。
21. 使用一种约束时,可以使用关键字_____________和标识符____________的选项命名该约束,也可以省略该选项由系统自动命名,因为用户很少再使用其约束名。
22. 数据库的安全机制分为4个等级,分别为客户端____________的安全、数据库的________安全、数据库使用安全和数据库对象的使用安全。
23. 要访问SQL Server数据库服务器,用户必须提供正确的__________和__________。
三、写出下列每条查询语句的执行结果,或者写出下列每条语句或程序段的功能。
假设存在名为AAA的数据库,包括Students(学号 char(8),姓名 varchar(8),年龄 int,专业 varchar(20),入学日期 DateTime)和Score(学号 char(8),课程名 varchar(10),成绩 numeric(5,2))两张表。
1. declare @a numeric(5,2)
set @a=(select avg(成绩) from score) select * from score where 成绩>=@a
2. declare @a char(6) set @a='刘亮'
if(exists(select * from students where 姓名=@a)) print '姓名为'+@a+'的同学存在!' else
print '姓名为'+@a+'的同学不存在!'
3. select year(入学日期) as 入学年份,count(*) as 人数 from students
group by year(入学日期)
4. select day(入学日期) as 入学日号,count(*) as 人数 from students
group by day(入学日期)
5.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
6.create procedure xxk4 (
@a char(8),@b varchar(10),@c numeric(5,2) ) as begin update score set 成绩=@c
where 学号=@a and 课程名=@b end
7.create procedure xxk6 (
@a char(8),@b varchar(10)