数据库期末综合练习题及答案 联系客服

发布时间 : 星期二 文章数据库期末综合练习题及答案更新完毕开始阅读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)