当前位置:文档之家› SQL_Server_2008数据库试题(A)概论

SQL_Server_2008数据库试题(A)概论

SQL Server 2008网络数据库试题A班级:学号:_________ 姓名:分数一、单项选择题(每题2分,共15题,合计30分)1. SQL Server 2008是一个()的数据库系统。

A.网状型B.层次型C.关系型D.以上都不是2.关于主键描述正确的是:()A.包含一列B.包含两列C.包含一列或者多列D.以上都不正确3. SQL Server 2008 采用的身份验证模式有()。

A.仅Windows身份验证模式B.仅SQL Server身份验证模式C.仅混合模式D.Windows身份验证模式和混合模式4. 如果希望完全安装SQL Server,则应选择()。

A. 典型安装B. 最小安装C. 自定义安装D. 仅连接5. 在SQL SERVER中局部变量前面的字符为:()A.*B.#C.@@D.@6. 在T-SQL语言中,若要修改某张表的结构,应该使用的修改关键字是()。

A.ALTERB.UPDATEC.UPDAETD.ALLTER7. 要查询book表中所有书名中以“计算机”开头的书籍的价格,可用()语句。

A. SELECT price FROM book WHERE book_name = ‘计算机*’B. SELECT price FROM book WHERE book_name LIKE ‘计算机*’C. SELECT price FROM book WHERE book_name = ‘计算机%’D. SELECT price FROM book WHERE book_name LIKE ‘计算机%’8.SQL server 数据库文件有3类,其中日志文件的后缀为_____。

A. .ndf B..ldf C. .mdf D. .idf9.根据关系数据基于的数据模型——关系模型的特征判断下列正确的一项:(___)A.只存在一对多的实体关系,以图形方式来表示。

B.以二维表格结构来保存数据,在关系表中不允许有重复行存在。

C.能体现一对多、多对多的关系,但不能体现一对一的关系。

D.关系模型数据库是数据库发展的最初阶段。

10.关系数据库中,主键是(__)。

A.为标识表中唯一的实体B.创建唯一的索引,允许空值C.只允许以表中第一字段建立D.允许有多个主键的11.表在数据库中是一个非常重要的数据对象,它是用来(__)各种数据内容的A.显示B.查询C.存放D.检索12.为数据表创建索引的目的是(___)A.提高查询的检索性能B.创建唯一索引C.创建主键D.归类13.在Transact-SQL语法中,用来插入数据的命令是(___),用于更新的命令是(___)。

A.INSERT,UPDATEB.UPDATE,INSERTC.DELETE,UPDATED.CREATE,INSERT INTO14.在SQL SERVER服务器上,存储过程是一组预先定义并(__)的Transact-SQL语句。

A.保存B.编译C.解释D.编写15、下列四项中,不属于数据库特点的是()。

A.数据共享B.数据完整性C.数据冗余很高D.数据独立性高二、填空题(每空2分,共10空,共计20分)1.数据库系统具有数据的__外模式__、___模式______和内模式三级模式结构。

2.SQL Server 2000局部变量名字必须以____@_____开头,而全局变量名字必须以__@@______开头。

3. 如果要计算表中数据的平均值,可以使用的聚合函数__avg()_。

4. 游标的概念包括两个部分,它们是游标结果集和游标位置。

5. 在SQL Server 2008中,我们创建数据库的语句是CREATE DATABASE,而修改数据库的语句是ALTER DATABASE 。

6.语句 select day('2004-4-6'), len('我们快放假了.') 的执行结果是:___6_____和_____7___。

三、简答(每题5分,共10分)1. 声明一个长度为16的字符型变量“cname”, 并赋初值为”数据库系统概述”。

请按前面的要求写出相应语句。

DECLARE cname char(16)SET cname=’数据库系统概述’2. 简述视图的意义和优点?分割数据,简化操作、提供自动的安全保护功能,为数据库重构提供一定的逻辑独立性。

四、程序阅读题(15分)下面程序段的功能是:在数据库中判断是否存在名为my_proc的存储过程,若存在,则删除之,然后创建同名的存储过程,该存储过程的功能是向author_id、author_name、address和telephone字段插入数据。

阅读并回答以下问题:USE bookdbGOIF EXISTS(SELECT __name_____FROM SysobjectsWHERE name=’my_proc’ and type=_P__’)DROP PROC my_procGOCREATE PROC my_proc@a int, @b char(8),@c char(50)__AS____INSERT INTO clients(client_id,client_name,address)VALUES(@a,@b,@c)GO问题:(1)填写该程序段中空白处的内容:(2)任写一条调用该存储过程的语句。

EXEC my_proc 7,‘李好’,‘考试书店’五、编程题(25分,共4题)student表(学生表)course表(课程表)sc表(选课表)1、把course表中课程号为3的课程的学分修改为3。

(5分)update course set 学分=3 where课程号=32、在student表中查询年龄大于18的学生的所有信息,并按学号降序排列。

(5分)select * from student where 年龄>18 order by 学号 desc3、在以上三个表中查询选的课程的“学分”为3,并且成绩大于80的学生的学号、姓名和性别。

(7分)select student.学号,姓名,性别from student, course, scwhere (student.学号=sc.学号) and (course.课程号=sc.课程号) and (course.学分=3) and (sc.成绩>80)4、为student表创建一个名称为my_trig的触发器,当用户成功删除该表中的一条或多条记录时,触发器自动删除SC表中与之有关的记录。

(注:在创建触发器之前要判断是否有同名的触发器存在,若存在则删除之。

)(8分)If exists(Select name From sysobjectsWhere name=’my_trig’and type=’tr’)Drop trigger my_trigGoCreate trigger my_trigOn student For DeleteAsDelete From sc Where 学号=Deleted.学号GoSQL Server数据库试题答案参考答案一、单项选择题(每题2分,共15题)1. C2.c3.D4.A5.D6.C7.D8. B9. B 10. A11. C12. A 13 . A 14 . B 15 . D二、填空题(每空2分,共15空)1.外模式、模式2.@、@@3.AVG函数4.游标结果集游标位置5.CREATE DATABASE ALTER DATABASE6.6、7三、简答(10分)1.DECLARE cname char(16)SET cname=’数据库系统概述’或者是DECLARE cname char(16)SELECT cname=’数据库系统概述’2. 答:分割数据,简化优点简化操作提供自动的安全保护功能为数据库重构提供一定的逻辑独立性。

四、程序阅读题(5分)1. name P as2. EXEC my_proc 7,‘李好’,‘考试书店’或者 EXEC my_proc @a=7,@b=‘李好’,@c=‘考试书店’五、编程题(25分,共4题)1、 (4分)update course (1分)set 学分=4 (2分)where课程号=2 (1分)2、select * from student where 年龄>18 order by 学号 desc (5分)3、(6分)方法1:select distinct student.学号,姓名,性别 (1分)from student, course, sc (1分)where (student.学号=sc.学号) and (course.课程号=sc.课程号) and (course.学分=4) and (sc.成绩>80) (1+1+1+1分)方法2:select distinct student.学号,姓名,性别 (1分)from student Inner Join (sc Inner Join course On course.课程号=sc.课程号)On student.学号=sc.学号 (2分+2分)where (course.学分=4) and (sc.成绩>80) (1分+1分)4、(10分)If exists(Select name From sysobjectsWhere name=’my_trig’and type=’tr’) (整个If语句 1分)Drop trigger my_trig (0.5分)Go (0.5分)Create trigger my_trig (1分)On student (0.5分)For Delete (1分)As (0.5分)Delete From sc (2分)Where 学号 in (Select 学号 From Deleted) (1分+2分) Go1加到100的存储过程:declare @number int,@varnumber intset @number=0set @varnumber=0while @varnumber<=100beginset @number = @number+@varnumberset @varnumber=@varnumber+1endselect @number 答案为5050。

相关主题