(SQL Server2008数据库技术应用)试卷2 《SQL Server2008数据库技术应用》试卷2 一、单项选择题:(每小题1分,共10分) 1.触发器可以创建在(A)中。 A.表 B.过稻 C.数据库 D.函数 2.刷除表的语句是(A)。 A.DROP B.ALTER C UPDATE D.DELETE 3.以下触发器是当对[表1]进行(D)操作时触发 Create Trigger abc on1 For insert,update,delete A5.... A只是修的 B只是插入 C.只是删除 D.修改、插入、删除 4.规则对象在使用上与(A)约束类似。 A.CHECK B.PRIMARY KEY C.FOREIGN KEY D.UNIQU 5.主索引可确保字段中输入值的(C)性。 A.多样 重复 D.若干 6.关于视图下列哪一个说法是错误的(B)。 A.视图是一种虚拟表 B.视图中也保存有数据 C.视图也可由视图派生出来 D.视图是保存在SELECT查询 7.执行带参数的过程,正确的方法为(A)。 过程名 参数 过程名(参数 C.过程名=参数 D.A,B,C三种都可以 8.查询毕业学校名称与“清华”有关的记录应该用(D)。 A.SELECT*下ROW学习经历WERE毕业学校LIKE·*清华*: B SELECT幸FRON学习经历WHERE毕业学按=洁华%, C.SELECT*FROM学习经历WERE毕业学校LIKE?清华? D.SELECT *RON学习经历亚RE毕业学校LIKE%清华% 9.Select职工号FROM职工WHERE工资>1250命令的功能是(D) A.查询工资大于1250的纪录 B.查询1250号记录后的记录 C拾索所有的职工号 D.从「职工1关系中拾索工资大于1250的职工号 10. 关于关系图下列哪一个是正确的(C) 关系图是在同 个表中不同字段之间建立关联 B.关系图是表与表之间建立关联,与字段无关 C.关系图是在不同表中的字段之间建立关联 D.关系图是在不同数据库之间建立关联 二、判断题:(每小题1分,共10分) ODBC是由Mi 05 一种麦 据库访问标准。(√ 2.信息和数据是相对的,有时是可以互相转换的。(√)
《SQL Server 2008 数据库技术应用》试卷 2 ———————————————————————————————————————————— 1 《SQL Server 2008 数据库技术应用》试卷 2 一、单项选择题:(每小题 1 分,共 10 分) 1.触发器可以创建在( A )中。 A. 表 B. 过程 C. 数据库 D. 函数 2.删除表的语句是( A )。 A.DROP B.ALTER C.UPDATE D.DELETE 3. 以下触发器是当对[表1]进行( D )操作时触发。 Create Trigger abc on 表1 For insert , update , delete As …… A.只是修改 B.只是插入 C.只是删除 D.修改、插入、删除 4. 规则对象在使用上与( A )约束类似。 A.CHECK B.PRIMARY KEY C.FOREIGN KEY D.UNIQU 5.主索引可确保字段中输入值的( C )性。 A.多样 B.重复 C.唯一 D.若干 6.关于视图下列哪一个说法是错误的( B )。 A.视图是一种虚拟表 B.视图中也保存有数据 C.视图也可由视图派生出来 D.视图是保存在 SELECT 查询 7.执行带参数的过程,正确的方法为( A )。 A. 过程名 参数 B. 过程名(参数) C.过程名=参数 D.A,B,C 三种都可以 8.查询毕业学校名称与“清华”有关的记录应该用( D )。 A. SELECT * FROM 学习经历 WHERE 毕业学校 LIKE ’*清华*’ B. SELECT * FROM 学习经历 WHERE 毕业学校 = ’%清华%’ C. SELECT * FROM 学习经历 WHERE 毕业学校 LIKE ’?清华?’ D. SELECT * FROM 学习经历 WHERE 毕业学校 LIKE ’%清华%’ 9. Select 职工号 FROM 职工 WHERE 工资>1250 命令的功能是( D )。 A.查询工资大于 1250 的纪录 B.查询 1250 号记录后的记录 C.检索所有的职工号 D.从[职工]关系中检索工资大于 1250 的职工号 10. 关于关系图下列哪一个是正确的( C )。 A.关系图是在同一个表中不同字段之间建立关联 B.关系图是表与表之间建立关联,与字段无关 C.关系图是在不同表中的字段之间建立关联 D.关系图是在不同数据库之间建立关联 二、判断题:(每小题 1 分,共 10 分) 1.ODBC是由Microsoft定义的一种数据库访问标准。( √ ) 2.信息和数据是相对的,有时是可以互相转换的。( √ )
《SQL Server2008数据库技术应用》试卷2 3.创建存储过程必须在企业管理器中进行。(X) 4.触发器主要是通过表操作事件进行触发而被执行的。(√) 5 主键字段允许为空。(X 6.SQLServer自动为primary key约束的列建立一个索引。(√) 7.SQLServerf的数据库可以转换成Access数据库。(√) 8.删除表时,表中的触发器被同时删除。(√) 9.数据库的名称一旦建立就不能重命名。(X) 1O,固定数据库角色:db datarader的成员可修政本数据库内表中的数据。(X) 三、填空题:(每题1分,共计20分) 1.BM公司的研究人员EF.Codd连续发表了论文,提出了关系模型,奠定了关系数 据库 管理系统的基础。 2.数据库的数据模型包含数据结构、数据操作和完整性约束三个要素。 3. 内嵌表值函数 可用于实现参数化视图的功能,这种类型的函数在使用参数 和扩展索引视图方面提供了比_视图 更多的灵活性 4. 存储过程_是己经存储在SQL Serverl服务器中的一组预编译过的Transact--SQL语句。 5.SQL Server数据库的体系结构也是三级模式结构,但术语与传统的关系模式不同,在 SQL Server中,外模式 对应于视图、模式对应于基本表、内模式 对应于存储文件】 6 SOl Se er的数据库文件的扩展名为mdf ,事务日志文件的扩展名为_ldf 7.建立和使用 、约束 _的目的是为了保证数据的完整性 8.BACKUP命令是对数据库进行_备份 ,RESTORE命令是对数据库进行 恢复 9.从最终用户角度来看,数据库应用系统分为单用户结构、主从式结构、分布式结构、 室客户服客共 结构和 刘览器服务器 结物 0,对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的_基本表一·一 r20 的安全性分为两 _数据访问安全性和数据运行 安全性 四、简述题(每小题5分,共10分) 1.什么是数据库管理系统?它的主要功能是什么? DS是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或 应用程序提供访问数据库的方法。包括数据库的建立、杏询、更新及名种数据控制」 2.什么是数据完整性?完整性有那些类型 数据完整性用于保证数据库中数据的正确性、一致性和可靠性。数据完整性有四种类型: 实体完整性、域完整性、引用完整性、用户定义完整性 3.自定义内嵌表值函数与视图的使用有什么不同? 内嵌标值函数可用于实现参数化视图的功能。这种类型的函数在使用参数和扩展索引视 图方面提供了比视图更多的灵活性 4.存储过程与触发器有什么不同 触发器是特殊类型的存储过程,它能在任何试图改变表中由触发器保护的数据时执行。 触发器主要通过事件进行触发而被执行,触发器不能直接调用执行,也不能被传送和接受参 数,而存储过程可以通过存储过程名被直接调用。触发器与表有关,存储过程与表无关。 五、阅读下列程序,说明它们的功能。(每题4分,共20分) 1.use成绩数据库 If exists select name from sysobjects Where name='student_inf'and type='p') Drop procedure student inf
《SQL Server 2008 数据库技术应用》试卷 2 ———————————————————————————————————————————— 2 3.创建存储过程必须在企业管理器中进行。( ╳ ) 4.触发器主要是通过表操作事件进行触发而被执行的。( √ ) 5.主键字段允许为空。( ╳ ) 6.SQL Server 自动为primary key约束的列建立一个索引。( √ ) 7.SQL Server的数据库可以转换成Access数据库。( √ ) 8.删除表时,表中的触发器被同时删除。( √ ) 9.数据库的名称一旦建立就不能重命名。( ╳ ) 10.固定数据库角色:db_datarader 的成员可修改本数据库内表中的数据。( ╳ ) 三、填空题:(每题 1 分,共计 20 分) 1.IBM公司的研究人员E.F.Codd连续发表了论文,提出了关系模型,奠定了___关系数 据库_____管理系统的基础。 2.数据库的数据模型包含__数据结构___、__数据操作__和__完整性约束__三个要素。 3.___内嵌表值函数______可用于实现参数化视图的功能,这种类型的函数在使用参数 和扩展索引视图方面提供了比__视图____更多的灵活性。 4.__存储过程_是已经存储在SQL Server服务器中的一组预编译过的Transact-SQL语句。 5.SQL Server 数据库的体系结构也是三级模式结构,但术语与传统的关系模式不同,在 SQL Server 中,__外模式_______对应于视图、__模式_____对应于基本表、_内模式___ 对应于存储文件。 6.SQL Server的数据库文件的扩展名为__mdf___、事务日志文件的扩展名为__ldf___。 7.建立和使用___约束_____的目的是为了保证数据的完整性。 8.BACKUP命令是对数据库进行__备份___, RESTORE命令是对数据库进行___恢复_。 9.从最终用户角度来看,数据库应用系统分为单用户结构、主从式结构、分布式结构、 ___客户/服务器_________结构和 ___浏览器/服务器_______结构。 10.对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的__基本表__。 11.SQL Server 2008的安全性分为两类: __数据访问_安全性和_数据运行____安全性。 四、简述题(每小题 5 分,共 10 分) 1.什么是数据库管理系统?它的主要功能是什么? DBMS 是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或 应用程序提供访问数据库的方法。包括数据库的建立、查询、更新及各种数据控制。 2.什么是数据完整性?完整性有哪些类型? 数据完整性用于保证数据库中数据的正确性、一致性和可靠性。数据完整性有四种类型: 实体完整性、域完整性、引用完整性、用户定义完整性 3.自定义内嵌表值函数与视图的使用有什么不同? 内嵌标值函数可用于实现参数化视图的功能。这种类型的函数在使用参数和扩展索引视 图方面提供了比视图更多的灵活性。 4.存储过程与触发器有什么不同? 触发器是特殊类型的存储过程,它能在任何试图改变表中由触发器保护的数据时执行。 触发器主要通过事件进行触发而被执行,触发器不能直接调用执行,也不能被传送和接受参 数,而存储过程可以通过存储过程名被直接调用。触发器与表有关,存储过程与表无关。 五、阅读下列程序,说明它们的功能。(每题 4 分,共 20 分) 1.use 成绩数据库 If exists ( select name from sysobjects Where name=’student_inf’ and type=’p’) Drop procedure student_inf
(SQL Server2008数据库技术应用)试卷2 Go Create pre student info as Selec 学号,姓名,总学分from xsqk 2.use成绩数据库 CREATE TRIGGER abc ON【dho】.[XSCJ] FOR UPDATE AS if update(成绩) update xscj set xscj.学分=(select学分from xskc where deleted.课程号=xskc. 课程号) from xsci,xskc.deleted 骨课g成>锁60Sa1aad.学号8cj.学号and de1ete4.课程 3.use教学成绩管理数据 go a1 ter tab1e学生信息表 add email varchar(20)null 学历text 照片image 4.u3e教学成绩管理数据库 select姓名,性别,年龄=datediff(year,出生日期,getdate) from学生信总表 where(datediff(year,出生日期,getdate()=20)and(性别='女' 5,use教学成绩管理数据库 3e1ect教学成绩表.学号,姓名,sum(分数)总分,avg(分数)均分 from学生信息表join教学成绩表 学生信息表.学号 教学成绩表.学号 group by教学成绩表.学号,姓名 order by avg(分效)desc 容案: 1.如果“Syudent info”存储过程存在,则别除。创建存储过“Syudent info” 2.创建触发器“bc”,当修改XSC表中的纪录时,成绩60分,则根据XSKC表中的该 门课程的学分修改XSC表中该记录的 分 3.在学生信总表中增加email、学历、照片列。 4.查询年龄为20岁、性别为‘女’的学生 5.查询每个学生的学号、姓名、总分和均分,结果按均分降序排列 六、设计题(每小题4分,共20分) 现有关系数据库如下 数据库名:学生成绩数据库 学生表(班级编号,学号,姓名,性别,民族,身份证号,出生日期) 课程表(课程号,课程名,开课学期,学时) 成绩表D,学号,课程号,分数) 3
《SQL Server 2008 数据库技术应用》试卷 2 ———————————————————————————————————————————— 3 Go Create procedure student_info as Select 学号, 姓名, 总学分 from xsqk 2.use 成绩数据库 CREATE TRIGGER abc ON [dbo].[XSCJ] FOR UPDATE AS if update(成绩) update xscj set xscj.学分=(select 学分 from xskc where deleted.课程号=xskc. 课程号) from xscj,xskc,deleted where xscj.成绩>=60 and deleted.学号=xscj.学号 and deleted.课程 号=xscj.课程号 3.use 教学成绩管理数据库 go alter table 学生信息表 add email varchar(20) null, 学历 text, 照片 image 4.use 教学成绩管理数据库 select 姓名, 性别, 年龄=datediff(year,出生日期,getdate()) from 学生信息表 where (datediff(year,出生日期,getdate())=20) and (性别='女') 5.use 教学成绩管理数据库 select 教学成绩表.学号,姓名,sum(分数) 总分,avg(分数) 均分 from 学生信息表 join 教学成绩表 on 学生信息表.学号 = 教学成绩表.学号 group by 教学成绩表.学号,姓名 order by avg(分数) desc 答案: 1.如果“Syudent_info”存储过程存在,则删除。创建存储过“Syudent_info” 2.创建触发器“abc”,当修改XSCJ表中的纪录时,成绩>60分,则根据XSKC表中的该 门课程的学分修改XSCJ表中该记录的学分。 3.在学生信息表中增加email、学历、照片列。 4.查询年龄为20岁、性别为‘女’的学生 5.查询每个学生的学号、姓名、总分和均分,结果按均分降序排列 六、设计题(每小题 4 分,共 20 分) 现有关系数据库如下: 数据库名:学生成绩数据库 学生表(班级编号,学号,姓名,性别,民族,身份证号,出生日期) 课程表(课程号,课程名,开课学期,学时) 成绩表(ID,学号,课程号,分数)
《SQL Server2008数据库技术应用》试卷2 用SQL语言实现下列功能的sql语句代码: 1.查询学生信息表中的年龄(重复年龄只显示一次) 2.从学生信息表和教学成绩表中查询查询学生的学号、姓名、课程名和分数 3.从课程表中统计第二学期的总学时。 执行结果为: 课程好课程名开课学期学时 sum 4.编写一个存储过程,输入学号,从“教学成绩表视图”显示该学生的姓名、课程名、分 数。 5.创建一个触发器,当修改学生表中的姓名时,显示“学生姓名已被修改”。 答案: 1.查询学生信息表中的年龄(重复年龄只显示一次) use教学成绩管理数据库 select distinct年龄=datediff(year,出生日期,getdate()) from学生信息表 2.从学生信息表和教学成绩表中查询查询学生的学号、姓名、课程名和分数 use学生成绩数据库 select成绩表.学号,姓名,课程名,分数 from教学成绩表,学生信息表 where成绩表.学号=学生表.学号AND成绩表.课程号=课程表.课程号 3.从课程表中统计第二学期的总学时。 Select课程号,课程名,开课学期,学时 From课程表 Where开课学期=2 compute avg(学时) 4.编写一个存储过程,输入学号,从“教学成绩表视图”显示该学生的姓名、课程名、分 数。 CREATE PROCEDURE成绩1 @xh char(6) as select姓名,课程名称,分数from教学成绩表视图 where学号=exh 5.创建一个触发器,当修改学生表中的姓名时,显示“学生姓名己被修改”。 Create Trigger触发器7On学生表 For updata As Print“学生姓名已被修改”Go
《SQL Server 2008 数据库技术应用》试卷 2 ———————————————————————————————————————————— 4 用 SQL 语言实现下列功能的 sql 语句代码: 1.查询学生信息表中的年龄(重复年龄只显示一次) 2.从学生信息表和教学成绩表中查询查询学生的学号、姓名、课程名和分数 3.从课程表中统计第二学期的总学时。 执行结果为: 课程好 课程名 开课学期 学时 … … … … … … … … sum ============ … 4.编写一个存储过程,输入学号,从“教学成绩表视图” 显示该学生的姓名、课程名、分 数。 5.创建一个触发器,当修改学生表中的姓名时,显示“学生姓名已被修改”。 答案: 1.查询学生信息表中的年龄(重复年龄只显示一次) use 教学成绩管理数据库 select distinct 年龄=datediff(year,出生日期,getdate()) from 学生信息表 2.从学生信息表和教学成绩表中查询查询学生的学号、姓名、课程名和分数 use 学生成绩数据库 select 成绩表.学号,姓名,课程名,分数 from 教学成绩表,学生信息表 where 成绩表.学号 = 学生表.学号 AND 成绩表.课程号=课程表.课程号 3. 从课程表中统计第二学期的总学时。 Select 课程号, 课程名, 开课学期, 学时 From 课程表 Where 开课学期=2 compute avg(学时) 4.编写一个存储过程,输入学号,从“教学成绩表视图” 显示该学生的姓名、课程名、分 数。 CREATE PROCEDURE 成绩 1 @xh char (6) as select 姓名,课程名称,分数 from 教学成绩表视图 where 学号=@xh 5.创建一个触发器,当修改学生表中的姓名时,显示“学生姓名已被修改”。 Create Trigger 触发器 7 On 学生表 For updata As Print “学生姓名已被修改”Go