《数据库原理与应用》试题
《SQL数据库管理与开发教程与实训》试题(N卷)
一、单项选择题:(每小题1分,共10分) 1.触发器可以创建在( A )中。
A. 表 C. 数据库
2.删除表的语句是( A )。
A.DROP C.UPDATE
B. 过程 D. 函数 B.ALTER 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.信息和数据是相对的,有时是可以互相转换的。( √ ) 3.创建存储过程必须在企业管理器中进行。( ╳ )
———————————————————————————————————————————— 1
《数据库原理与应用》试题
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 2000的安全性分为两类: __数据访问_安全性和_数据运行____安全性。
四、简述题(每小题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 Go
———————————————————————————————————————————— 2
《数据库原理与应用》试题
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
六、设计题(每小题4分,共20分)
现有关系数据库如下: 数据库名:学生成绩数据库
学生表(班级编号,学号,姓名,性别,民族,身份证号,出生日期) 课程表(课程号,课程名,开课学期,学时) 成绩表(ID,学号,课程号,分数)
用SQL语言实现下列功能的sql语句代码:
1.查询学生信息表中的年龄(重复年龄只显示一次)
2.从学生信息表和教学成绩表中查询查询学生的学号、姓名、课程名和分数 3.从课程表中统计第二学期的总学时。 执行结果为:
课程好 课程名 开课学期 学时 … … … …
———————————————————————————————————————————— 3
《数据库原理与应用》试题
… … … … sum
============ …
4.编写一个存储过程,输入学号,从“教学成绩表视图” 显示该学生的姓名、课程名、分数。
5.创建一个触发器,当修改学生表中的姓名时,显示“学生姓名已被修改”。
五、
1.如果“Syudent_info”存储过程存在,则删除。创建存储过“Syudent_info”
2.创建触发器“abc”,当修改XSCJ表中的纪录时,成绩>60分,则根据XSKC表中的该
门课程的学分修改XSCJ表中该记录的学分。 3.在学生信息表中增加email、学历、照片列。 4.查询年龄为20岁、性别为‘女’的学生
5.查询每个学生的学号、姓名、总分和均分,结果按均分降序排列
六、设计题(每小题4分,共20分)
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
———————————————————————————————————————————— 4
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库《SQL数据库管理与开发》试题(N卷)在线全文阅读。
相关推荐: