1、SQL Server 与数据库应用开发试题(14 卷)一、单项选择题:(每小题 1 分,共 10 分)1触发器可以创建在( )中。A. 表 B. 过程C. 数据库 D. 函数2删除表的语句是( )。A.DROP B.ALTERC.UPDATE D.DELETE 3. 以下触发器是当对表1进行( )操作时触发。Create Trigger abc on 表1For insert , update , deleteAs A.只是修改 B.只是插入C.只是删除 D.修改、插入、删除4. 规则对象在使用上与( )约束类似。A.CHECK B.PRIMARY KEYC.FOREIGN KEY D.UNI
2、QU5主索引可确保字段中输入值的( )性。A.多样 B.重复C.唯一 D.若干6关于视图下列哪一个说法是错误的( )。A.视图是一种虚拟表 B.视图中也保存有数据 C.视图也可由视图派生出来 D.视图是保存在 SELECT 查询7执行带参数的过程,正确的方法为( )。A. 过程名 参数 B. 过程名(参数) C.过程名参数 D.A,B,C 三种都可以8查询毕业学校名称与“清华”有关的记录应该用( )。A. SELECT * FROM 学习经历 WHERE 毕业学校 LIKE *清华*B. SELECT * FROM 学习经历 WHERE 毕业学校 = %清华%C. SELECT * FROM
3、学习经历 WHERE 毕业学校 LIKE ?清华?D. SELECT * FROM 学习经历 WHERE 毕业学校 LIKE %清华%9. Select 职工号 FROM 职工 WHERE 工资1250 命令的功能是( )。A.查询工资大于 1250 的纪录 B.查询 1250 号记录后的记录C.检索所有的职工号 D.从职工关系中检索工资大于 1250 的职工号10. 关于关系图下列哪一个是正确的( )。A.关系图是在同一个表中不同字段之间建立关联B.关系图是表与表之间建立关联,与字段无关C.关系图是在不同表中的字段之间建立关联D.关系图是在不同数据库之间建立关联二、判断题:(每小题 1 分,
4、共 10 分)1ODBC是由Microsoft定义的一种数据库访问标准。( )2信息和数据是相对的,有时是可以互相转换的。( )3创建存储过程必须在企业管理器中进行。( )4触发器主要是通过表操作事件进行触发而被执行的。( )5主键字段允许为空。( )6SQL Server 自动为primary key约束的列建立一个索引。( )7SQL Server的数据库可以转换成 Access数据库。( )8删除表时,表中的触发器被同时删除。( )9数据库的名称一旦建立就不能重命名。( )10固定数据库角色:db_datarader 的成员可修改本数据库内表中的数据。( )三、填空题:(每题 1 分,共
5、计 20 分)1IBM公司的研究人员E.F.Codd连续发表了论文,提出了关系模型,奠定了 _管理系统的基础。2数据库的数据模型包含_、_和_三个要素。3_可用于实现参数化视图的功能,这种类型的函数在使用参数和扩展索引视图方面提供了比_更多的灵活性。4_是已经存储在SQL Server 服务器中的一组预编译过的Transact-SQL语句。5SQL Server 数据库的体系结构也是三级模式结构,但术语与传统的关系模式不同,在SQL Server 中,_ 对应于视图、_对应于基本表、_对应于存储文件。6SQL Server的数据库文件的扩展名为 _、事务日志文件的扩展名为_。7建立和使用_的目
6、的是为了保证数据的完整性。8BACKUP命令是对数据库进行_, RESTORE命令是对数据库进行_。9从最终用户角度来看,数据库应用系统分为单用户结构、主从式结构、分布式结构、_结构和 _结构。10对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的_。11SQL Server 的安全性分为两类: _安全性和_安全性。四、简述题(每小题 5 分,共 20 分)1什么是数据库管理系统?它的主要功能是什么?2什么是数据完整性?完整性有哪些类型?3自定义内嵌表值函数与视图的使用有什么不同?4存储过程与触发器有什么不同?五、阅读下列程序,说明它们的功能。(每题 4 分,共 20 分)1use
7、 成绩数据库If exists ( select name from sysobjectsWhere name=student_inf and type=p)Drop procedure student_infGoCreate procedure student_info asSelect 学号, 姓名, 总学分 from xsqk2use 成绩数据库CREATE TRIGGER abc ON dbo.XSCJ FOR UPDATE ASif update(成绩 )update xscjset xscj.学分=(select 学分 from xskc where deleted.课程号=xsk
8、c.课程号)from xscj,xskc,deletedwhere xscj.成绩=60 and deleted.学号=xscj.学号 and deleted.课程号=xscj.课程号3use 教学成绩管理数据库go alter table 学生信息表add email varchar(20) null,学历 text,照片 image4use 教学成绩管理数据库select 姓名, 性别, 年龄 =datediff(year,出生日期,getdate() from 学生信息表 where (datediff(year,出生日期,getdate()=20) and (性别=女)5use 教学成
9、绩管理数据库select 教学成绩表.学号,姓名,sum( 分数) 总分,avg(分数) 均分from 学生信息表 join 教学成绩表 on 学生信息表.学号 = 教学成绩表 .学号group by 教学成绩表 .学号,姓名 order by avg(分数) desc六、设计题(每小题 4 分,共 20 分)现有关系数据库如下: 数据库名:学生成绩数据库学生表(班级编号,学号,姓名,性别,民族,身份证号,出生日期) 课程表(课程号,课程名,开课学期,学时 ) 成绩表(ID,学号,课程号,分数) 用 SQL 语言实现下列功能的 sql 语句代码:1查询学生信息表中的年龄(重复年龄只显示一次)2
10、从学生信息表和教学成绩表中查询查询学生的学号、姓名、课程名和分数3从课程表中统计第二学期的总学时。执行结果为:课程好 课程名 开课学期 学时 sum= 4编写一个存储过程,输入学号,从“教学成绩表视图” 显示该学生的姓名、课程名、分数。5创建一个触发器,当修改学生表中的姓名时,显示“学生姓名已被修改” 。参考答案一、单项选择题:(每小题 1 分,共 10 分)1 2 3 4 5 6 7 8 9 10A A D A C B A D D C二、判断题:(10 分)(正确的在答题纸对应的题号下打,错误的打)1 2 3 4 5 6 7 8 9 10 三、填空题:(每题 1分,共计 20 分)1、关系数
11、据库2、数据结构、数据操作、完整性约束3、内嵌表值函数、视图4、存储过程5、外模式、模式、内模式6、mdf、ldf7、约束8、备份、恢复9、客户/服务器、浏览器/服务器10、基本表11、数据访问、数据运行四、简述题(每小题 5 分,共 10 分)1.什么是数据库管理系统?它的主要功能是什么?DBMS 是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。包括数据库的建立、查询、更新及各种数据控制。2什么是数据完整性?完整性有哪些类型?数据完整性用于保证数据库中数据的正确性、一致性和可靠性。数据完整性有四种类型: 实体完整性、域完整性、引用完整性、用
12、户定义完整性 3自定义内嵌表值函数与视图的使用有什么不同?答:内嵌标值函数可用于实现参数化视图的功能。这种类型的函数在使用参数和扩展索引视图方面提供了比视图更多的灵活性。4存储过程与触发器有什么不同?答:触发器是特殊类型的存储过程,它能在任何试图改变表中由触发器保护的数据时执行。触发器主要通过事件进行触发而被执行,触发器不能直接调用执行,也不能被传送和接受参数,而存储过程可以通过存储过程名被直接调用。触发器与表有关,存储过程与表无关。五、阅读下列程序,说明它们的功能。(每小题 4 分,20 分)1如果“Syudent_info”存储过程存在,则删除。创建存储过“Syudent_info”2创建
13、触发器“abc”,当修改XSCJ表中的纪录时,成绩60分,则根据XSKC表中的该门课程的学分修改XSCJ表中该记录的学分。3在学生信息表中增加email、学历、照片列。4查询年龄为20岁、性别为女的学生5查询每个学生的学号、姓名、总分和均分,结果按均分降序排列六、设计题(每小题 4 分,共 20 分)1查询学生信息表中的年龄(重复年龄只显示一次)use 教学成绩管理数据库select distinct 年龄=datediff(year,出生日期,getdate() from 学生信息表2从学生信息表和教学成绩表中查询查询学生的学号、姓名、课程名和分数use 学生成绩数据库select 成绩表.
14、学号, 姓名 ,课程名,分数from 教学成绩表, 学生信息表where 成绩表 .学号 = 学生表. 学号 AND 成绩表.课程号=课程表.课程号3. 从课程表中统计第二学期的总学时。Select 课程号, 课程名, 开课学期 , 学时From 课程表Where 开课学期 =2 compute avg(学时)4编写一个存储过程,输入学号,从“教学成绩表视图” 显示该学生的姓名、课程名、分数。CREATE PROCEDURE 成绩 1 xh char (6)asselect 姓名,课程名称, 分数 from 教学成绩表视图where 学号=xh5创建一个触发器,当修改学生表中的姓名时,显示“学生姓名已被修改” 。Create Trigger 触发器 7 On 学生表For updataAsPrint “学生姓名已被修改”Go