《SQL数据库管理与开发教程与实训》试题————————————————————————————————————————————北京大学出版社1ISBN7-301-10173-2/TP.0842《SQL数据库管理与开发教程与实训》试题一、单项选择题:(每小题1分,共10分)1.触发器可以创建在()中。A.表B.过程C.数据库D.函数2.删除表的语句是()。A.DROPB.ALTERC.UPDATED.DELETE3.以下触发器是当对[表1]进行()操作时触发。CreateTriggerabcon表1Forinsert,update,deleteAs……A.只是修改B.只是插入C.只是删除D.修改、插入、删除4.规则对象在使用上与()约束类似。A.CHECKB.PRIMARYKEYC.FOREIGNKEYD.UNIQU5.主索引可确保字段中输入值的()性。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学习经历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分,共10分)1.ODBC是由Microsoft定义的一种数据库访问标准。()2.信息和数据是相对的,有时是可以互相转换的。()3.创建存储过程必须在企业管理器中进行。()《SQL数据库管理与开发教程与实训》试题————————————————————————————————————————————北京大学出版社2ISBN7-301-10173-2/TP.08424.触发器主要是通过表操作事件进行触发而被执行的。()5.主键字段允许为空。()6.SQLServer自动为primarykey约束的列建立一个索引。()7.SQLServer的数据库可以转换成Access数据库。()8.删除表时,表中的触发器被同时删除。()9.数据库的名称一旦建立就不能重命名。()10.固定数据库角色:db_datarader的成员可修改本数据库内表中的数据。()三、填空题:(每题1分,共计20分)1.IBM公司的研究人员E.F.Codd连续发表了论文,提出了关系模型,奠定了________管理系统的基础。2.数据库的数据模型包含_________、_______和_________三个要素。3._________可用于实现参数化视图的功能,这种类型的函数在使用参数和扩展索引视图方面提供了比_________更多的灵活性。4._________是已经存储在SQLServer服务器中的一组预编译过的Transact-SQL语句。5.SQLServer数据库的体系结构也是三级模式结构,但术语与传统的关系模式不同,在SQLServer中,_________对应于视图、_______对应于基本表、________对应于存储文件。6.SQLServer的数据库文件的扩展名为_____、事务日志文件的扩展名为_______。7.建立和使用________的目的是为了保证数据的完整性。8.BACKUP命令是对数据库进行__________,RESTORE命令是对数据库进行__________。9.从最终用户角度来看,数据库应用系统分为单用户结构、主从式结构、分布式结构、____________结构和____________结构。10.对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的_________。11.SQLServer2000的安全性分为两类:_______安全性和_______安全性。四、简述题(每小题5分,共20分)1.什么是数据库管理系统?它的主要功能是什么?2.什么是数据完整性?完整性有哪些类型?3.自定义内嵌表值函数与视图的使用有什么不同?4.存储过程与触发器有什么不同?五、阅读下列程序,说明它们的功能。(每题4分,共20分)1.use成绩数据库Ifexists(selectnamefromsysobjectsWherename=’student_inf’andtype=’p’)Dropprocedurestudent_infGoCreateprocedurestudent_infoasSelect学号,姓名,总学分fromxsqk2.use成绩数据库CREATETRIGGERabcON[dbo].[XSCJ]FORUPDATEAS《SQL数据库管理与开发教程与实训》试题————————————————————————————————————————————北京大学出版社3ISBN7-301-10173-2/TP.0842ifupdate(成绩)updatexscjsetxscj.学分=(select学分fromxskcwheredeleted.课程号=xskc.课程号)fromxscj,xskc,deletedwherexscj.成绩=60anddeleted.学号=xscj.学号anddeleted.课程号=xscj.课程号3.use教学成绩管理数据库goaltertable学生信息表addemailvarchar(20)null,学历text,照片image4.use教学成绩管理数据库select姓名,性别,年龄=datediff(year,出生日期,getdate())from学生信息表where(datediff(year,出生日期,getdate())=20)and(性别='女')5.use教学成绩管理数据库select教学成绩表.学号,姓名,sum(分数)总分,avg(分数)均分from学生信息表join教学成绩表on学生信息表.学号=教学成绩表.学号groupby教学成绩表.学号,姓名orderbyavg(分数)desc六、设计题(每小题4分,共20分)现有关系数据库如下:数据库名:学生成绩数据库学生表(班级编号,学号,姓名,性别,民族,身份证号,出生日期)课程表(课程号,课程名,开课学期,学时)成绩表(ID,学号,课程号,分数)用SQL语言实现下列功能的sql语句代码:1.查询学生信息表中的年龄(重复年龄只显示一次)2.从学生信息表和教学成绩表中查询查询学生的学号、姓名、课程名和分数3.从课程表中统计第二学期的总学时。执行结果为:课程好课程名开课学期学时……………………《SQL数据库管理与开发教程与实训》试题————————————————————————————————————————————北京大学出版社4ISBN7-301-10173-2/TP.0842sum============…4.编写一个存储过程,输入学号,从“教学成绩表视图”显示该学生的姓名、课程名、分数。5.创建一个触发器,当修改学生表中的姓名时,显示“学生姓名已被修改”。《SQL数据库管理与开发教程与实训》试题————————————————————————————————————————————北京大学出版社5ISBN7-301-10173-2/TP.0842SQLServer数据库答案N一、单项选择题:(每小题1分,共10分)12345678910AADACBADDC二、判断题:(10分)(正确的在答题纸对应的题号下打√,错误的打×)12345678910√√╳√╳√√√╳╳三、填空题:(每题1`分,共计20分)1、关系数据库2、数据结构、数据操作、完整性约束3、内嵌表值函数、视图4、存储过程5、外模式、模式、内模式6、mdf、ldf7、约束8、备份、恢复9、客户/服务器、浏览器/服务器10、基本表11、数据访问、数据运行四、简述题(每小题5分,共10分)1.什么是数据库管理系统?它的主要功能是什么?DBMS是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。包括数据库的建立、查询、更新及各种数据控制。2.什么是数据完整性?完整性有哪些类型?数据完整性用于保证数据库中数据的正确性、一致性和可靠性。数据完整性有四种类型:实体完整性、域完整性、引用完整性、用户定义完整性3.自定义内嵌表值函数与视图的使用有什么不同?答:内嵌标值函数可用于实现参数化视图的功能。这种类型的函数在使用参数和扩展索引视图方面提供了比视图更多的灵活性。4.存储过程与触发器有什么不同?答:触发器是特殊类型的存储过程,它能在任何试图改变表中由触发器保护的数据时执行。触发器主要通过事件进行触发而被执行,触发器不能直接调用执行,也不能被传送和接受参数,而存储过程可以通过存储过程名被直接调用。触发器与表有关,存储过程与表无关。五、阅读下列程序,说明它们的功能。(每小题4分,20分)1.如果“Syudent_info”存储过程存在,则删除。创建存储过“Syudent_info”2.创建触发器“abc”,当修改XSCJ表中的纪录时,成绩60分,则根据XSKC表中的该门课程的学分修改XSCJ表中该记录的学分。3.在学生信息表中增加email、学历、照片列。4.查询年龄为20岁、性别为‘女’的学生《SQL数据库管理与开发教程与实训》试题————————————————————————————————————————————北京大学出版社6ISBN7-301-10173-2/TP.08425.查询每个学生的学号、姓名、总分和均分,结果按均分降序排列六、设计题(每小题4分,共20分)1.查询学生信息表中的年龄(重复年龄只显示一次)use教学成绩管理数据库selectdistinct年龄=datediff(year,出生日期,getdate())from学生信息表2.从学生信息表和教学成绩表中查询查询学生的学号、姓名、课程名和分数use学生成绩数据库select成绩表.学号,姓名,课程名,分数from教学成绩表,学生信息表where成绩表.学号=学生表.学号AND成绩表.课程号=课程表.课程号3.从课程表中统计第二学期的总学时。Select课程号,课程名,开课学期,学时From课程表Where开课学期=2computeavg(学时)4.编写一个存储过程,输入学号,从“教学成绩表视图”显示该学生的姓名、课程名、分数。CREATEPROCEDURE成绩1@xhchar(6)asselect姓名,课程名称,分数from教学成绩表视图where学号=@xh5.创建一个触发器,当修改学生表中的姓名时,显示“学生姓名已被修改”。CreateTrigger触发器7On学生表ForupdataAsPrint“学生姓名已被修改”Go