为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

sql数据库试卷

2017-09-26 50页 doc 163KB 193阅读

用户头像

is_751406

暂无简介

举报
sql数据库试卷sql数据库试卷 《SQL数据库管理与开发教程与实训》试题(A卷) 每小题1分,共10分) 一、单项选择题( 1.下列四项中,不属于数据库特点的是( )。 A.数据共享 B.数据完整性 C.数据冗余很高 D.数据独立性高 2.下列四项中,不属于SQL2000实用程序的是( )。 A.企业管理器 B.查询分析器 C.服务管理器 D.媒体播放器 3.SQL Server安装程序创建4个系统数据库,下列哪个不是( )系统数据库。 A.master B.model C.pub D.msdb 4.( )是位于用户与操作...
sql数据库试卷
sql数据库试卷 《SQL数据库管理与开发教程与实训》试题(A卷) 每小题1分,共10分) 一、单项选择题( 1.下列四项中,不属于数据库特点的是( )。 A.数据共享 B.数据完整性 C.数据冗余很高 D.数据独立性高 2.下列四项中,不属于SQL2000实用程序的是( )。 A.企业管理器 B.查询器 C.服务管理器 D.媒体播放器 3.SQL Server安装程序创建4个系统数据库,下列哪个不是( )系统数据库。 A.master B.model C.pub D.msdb 4.( )是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数 据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。 A(DBMS B(DB C(DBS D(DBA 5. 在SQL中,建立用的命令是 ( )。 A.CREATE SCHEMA B.CREATE TABLE C.CREATE VIEW D.CREATE INDEX 6.SQL语言中,条件年龄 BETWEEN 15 AND 35表示年龄在15至35之间,且( )。 A.包括15岁和35岁 B.不包括15岁和35岁 C.包括15岁但不包括35岁 D.包括35岁但不包括15岁 7.下列四项中,不正确的提法是( )。 A.SQL语言是关系数据库的国际标准语言 B.SQL语言具有数据定义、查询、操纵和控制功能 C.SQL语言可以自动实现关系数据库的规范化 D.SQL语言称为结构查询语言 8.在MS SQL Server中,用来显示数据库信息的系统存储过程是( )。 A. sp_dbhelp B. sp_db C. sp_help D. sp_helpdb 9.SQL语言中,删除表中数据的命令是( )。 A. DELETE B. DROP C. CLEAR D. REMOVE 10.SQL的视图是从( )中导出的。 A. 基本表 B. 视图 C. 基本表或视图 D. 数据库 二、判断题(每空1分,共10分) 1.'在那遥远的地方' 是SQL中的字符串常量吗, 2.'11.9' 是SQL中的实型常量吗 3.select 16%4, 的执行结果是: 4 吗, 4.2005.11.09 是SQL中的日期型常量吗, 5.,2005.89 是SQL中的货币型常量吗, 6.select 25/2 的执行结果是: 12.5 吗, 7.'岳飞'>'文天祥' 比较运算的结果为真吗, 8.一个表可以创建多个主键吗, 9.创建唯一性索引的列可以有一些重复的值, 10.固定数据库角色:db_datarader 的成员能修改本数据库内表中的数据吗, 三、填空题(每空1分,共20分) 1.数据库系统具有数据的_________、_________和内模式三级模式结构。 2.SQL Server 2000局部变量名字必须以_________开头,而全局变量名字必须以_________开头。 3.语句 select ascii('D'), char(67) 的执行结果是:_________和_________。 4.语句 select lower('Beautiful') , rtrim('我心中的太阳 ') 的执行结果是: ____________和___________。 5.选择运算是根据某些条件对关系做______分割;投影是根据某些条件对关系做______分割。 6.关系运算主要有________、________和连接。 7.完整性约束包括______完整性、______完整性、参照完整性和用户定义完整性。 8.在SQL Server 2000中,数据库对象包括______、______、触发器、过程、列、索引、约束、规则、默认和用户自 定义的数据类型等。 9.语句 select day('2004-4-6'), len('我们快放假了.') 的执行结果是:_________和_________。 10.语句 select round(13.4321,2), round(13.4567,3)的执行结果是:_________和_________。 四、简答题(每小题5分,共10分) 1.在SQL Server 2000中,使用视图的好处是什么, 2.在SQL Server 2000中,用户访问表/视图、列的权限是什么, 五、设计题(共50分) 现有关系数据库如下: 数据库名:我班同学数据库 同学表(学号 char(6),姓名,性别,年龄,民族,身份证号,宿舍号) 宿舍表(宿舍号 char(6),宿舍电话) 用SQL语言实现下列功能的sql语句代码: 1.创建数据库[我班同学数据库]代码(2分)。 2.创建数据表[宿舍表]代码(3分); 宿舍表(宿舍号 char(6),宿舍电话) 使用:主键(宿舍号)、宿舍电话:以633开头的7位电话号码 3.创建数据表[同学表]代码(6分); 同学表(学号 char(6),姓名,性别,年龄,民族,身份证号,宿舍号) 要求使用:主键(学号)、外键(宿舍号)、默认(民族)、非空(民族,姓名,年龄)、唯一(身份证号)、检查(性 别) 4.将下列宿舍信息添加到宿舍表的代码(8分) 宿舍号 宿舍电话 101 6331157 102 6331777 修改 宿舍号为101的 宿舍电话:6331158 删除 宿舍号为102的 宿舍信息 5.创建视图[同学表视图]代码(5分); 同学表视图(学号, 姓名, 性别, 年龄, 民族, 身份证号, 宿舍号, 宿舍电话) 6.从同学表视图中查询姓张的女同学的姓名、性别、宿舍电话。(4分) 7.从同学表中查询女同学的最大年龄、最小年龄、平均年龄。(5分) 8.创建带参数的存储过程[某宿舍同学]:姓名, 性别, 宿舍电话 执行此过程,查询'101'宿舍情况 (8分) 9.设置一SQL身份验证的用户账户:登录名:U班主任,密码:888,数据库用户名:U读者,权限:可查询查询 本数据库中所有表、视图、内嵌表值函数的数据,执行所有的存储过程。请写出账户、权限设置的T_SQL脚本。 (9分) 一、 1 2 3 4 5 6 7 8 9 10 C D C A B A C D A C 二、 1 2 3 4 5 6 7 8 9 10 Y N N N N N Y N N N 三、 no 分 1. 外模式、模式 2 2. @、@@ 2 3. 68、C 2 4. beautiful、我心中的太阳 2 5. 水平、垂直 2 6. 选择、投影 2 7. 实体、域 2 8. 表、视图 2 9. 6、7 2 10 13.4300、13.4570 2 四、 no 答案要点 分 1. (1) 为用户集中需要的数据,简化了数据的用户操作; 5 (2) 对用户隐藏了数据库设计的复杂性; (3) 简化用户权限的管理 (4) 组织数据导出到其它应用程序; 2. 1.数据表/视图(select insert update delete) 5 2.列(字段)的访问(select update) 五、 no 参考答案 分 1. create database [我班同学数据库] 2 go use [我班同学数据库] go 2. create table 宿舍表 3 ([宿舍号] char(6) primary key, [宿舍电话] char(7) check([宿舍电话] like '633[0-9][0-9][0-9][0-9]')) 3. create table 同学表 6 (学号 char(6) primary key, 姓名 nchar(4) not null, 性别 nchar(1) check(性别 in ('男', '女')), 年龄 int , 民族 nchar(8) default '汉族' not null, 身份证号 char(18) unique, 宿舍号 char(6) references 宿舍表(宿舍号) ) 4. insert 宿舍表 values('101', '6331157') 8 insert 宿舍表 values('102', '6331777') update 宿舍表 set 宿舍电话='6331158' where 宿舍号='101' delete 宿舍表 where 宿舍号='102' 5. create view [同学表视图] as 5 select 学号, 姓名, 性别, 年龄, 民族, 身份证号, 同学表.宿舍号, 宿舍电 话 from 同学表,宿舍表 where 同学表.宿舍号=宿舍表.宿舍号 6. select 姓名, 性别, 宿舍电话 4 from 同学表视图 where 姓名 like '张%' and 性别='女' 7. select 最大年龄 = max(年龄), 最小年龄 = min(年龄), 平均年龄 = avg(年5 龄) from 同学表 where 性别='女' 8. create procedure [某宿舍同学] @宿舍号 varchar(6) 8 as select 姓名, 性别, 宿舍电话 from 同学表视图 where 宿舍号 = @宿舍号 go execute [某宿舍同学] '101' 9. exec sp_addlogin 'U班主任', '888', '我班同学数据库' 9 exec sp_grantdbaccess 'U班主任', 'U读者' exec sp_addrolemember 'db_datareader', 'U读者' 《SQL数据库管理与开发教程与实训》试题(B卷) 一、单项选择题(每小题1分,共10分) 1. ( )是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的 方法。数据库在建立、使用和维护时由其统一管理、统一控制。 A(DBMS B(DB C(DBS D(DBA 2. 下列四项中,不属于SQL2000实用程序的是( )。 A.企业管理器 B.查询分析器C.服务管理器 D.媒体播放器 3. SQL Server安装程序创建4个系统数据库,下列哪个不是( )系统数据库。 A. master B. model C. pub D. msdb 4. 下列哪个不是sql 数据库文件的后缀。 A(.mdf B(.ldf C(.tif D(.ndf 数据定义语言的缩写词为 ( )。 5. A.DDL B.DCL C.DML D.DBL 6. SQL语言中,条件年龄 BETWEEN 15 AND 35表示年龄在15至35之间,且( )。 A.包括15岁和35岁 B.不包括15岁和35岁 C.包括15岁但不包括35岁 D.包括35岁但不包括15岁 7. SQL的视图是从( )中导出的。 基本表 B. 视图 A. C. 基本表或视图 D. 数据库 8. 在SQL语言中,建立存储过程的命令是() A、CREATE PROCEDURE B、CREATE RULE C、CREATE DURE D、CREATE FILE 9. SQL语言中,删除表中数据的命令是( )。 A. DELETE B. DROP C. CLEAR D. REMOVE 10. 在MS SQL Server中,用来显示数据库信息的系统存储过程是( )。 A. sp_dbhelp B. sp_db C. sp_help D. sp_helpdb 二、判断题(每空1分,共15分) 1. '在那遥远的地方' 是SQL中的字符串常量吗, 2. 11.9 是SQL中的实型常量吗 3. select 16%4, 的执行结果是: 0 吗, 4. 2005.11.09 是SQL中的日期型常量吗, 5. ,2005.89 是SQL中的货币型常量吗, 6. select 25/2 的执行结果是: 12.5 吗, 7. '李逵'>'李鬼' 比较运算的结果为真吗, 8. 一个表可以创建多个主键吗, 9. 创建唯一性索引的列可以有一些重复的值, 10. smallint 是SQL的数据类型吗, 11. SQL Server不允许字段名为汉字, 12. 职称 in ('教授', '副教授'')与 职称 = '教授' or 职称 = '副教授' 等价吗, 13. 如果规则当前绑定到某列或用户定义的数据类型,不能解除绑定能直接删除规则, 14. 在表中创建一个标识列(IDENTITY),当用户向表中插入新的数据行时,系统自动为该行标识列赋值吗, 15. 固定数据库角色:db_datarader 的成员修改本数据库内表中的数据吗, 三、填空题(每空1分,共20分) 1. SQL Server 2000局部变量名字必须以_________开头,而全局变量名字必须以_________开头。 2. 语句 select ascii('D'), char(67) 的执行结果是:_________和_________。 3. 语句 select lower('Beautiful') , rtrim('我心中的太阳 ') 的执行结果是: ____________和___________。 4. 选择运算是根据某些条件对关系做______分割;投影是根据某些条件对关系做______分割。 5. 关系运算主要有________、________和连接。 6. 完整性约束包括_______完整性、______完整性、参照完整性和用户定义完整性。 7. T-SQL 语言中,有_________运算、字符串连接运算、比较运算和_________运算。 8. 语句 select day('2004-4-6'), len('我们快放假了.') 的执行结果是:_________和_________。 select floor(17.4), floor(-214.2), round(13.4382,2), round(-18.4562,3)的执行结果是: _________、9. 语句 _________、_________和_________。 四、简答题(每小题5分,共10分) 1. 简述SQL Server 2000的安全性管理机制(6级,涉及登录账号、用户、角色以及权限分配)。(6分) 2. 在SQL Server 2000中,使用视图的好处是什么,(4分) 五、设计题(共45分) 现有关系数据库如下: 数据库名:学生成绩数据库 学生信息表(学号 char(6),姓名,性别,民族,身份证号) 课程信息表(课号 char(6),名称) 成绩信息表(ID,学号,课号,分数) 用SQL语言实现下列功能的sql语句代码。 1. 创建数据库[学生成绩数据库]代码(2分)。 2. 创建数据表[课程信息表]代码;(2分) 课程信息表(课号 char(6),名称) 要求使用:主键(课号)、非空(名称) 3. 创建数据表[学生信息表]代码;(4分) 学生信息表(学号 char(6),姓名,性别,民族,身份证号) 要求使用:主键(学号)、默认(民族)、非空(民族,姓名)、唯一(身份证号)、检查(性别) 4. 创建数据表[成绩信息表];(5分) 成绩信息表(ID,学号,课号,分数) 要求使用:外键(学号,课号)、检查(分数),自动编号(ID) 5. 将下列课程信息添加到课程信息表的代码(8分) 课号 名称 100101 西班牙语 100102 大学英语 修改 课号为100102的课程名称:专业英语 删除 课号为100101的课程信息 6. 创建视图[成绩信息表视图]的代码;(5分) 成绩信息表视图(学号,姓名,课号,课程名称,分数) 7. 从学生信息表中查询姓刘的女同学的情况:姓名、性别、民族。(2分 8. 查询有一门或一门以上课程成绩小于60分的所有学生的信息,包括学号、姓名。(4分) 9. 创建带参数的存储过程[某门课程高低均分]、执行该过程的代码(7分) 存储过程功能:查询某门课程的最高分、最低分、平均分; 执行该过程,查询所有修’专业英语’这门学生的最高分、最低分、平均分; 10 设置一SQL身份验证的用户账户:登录名:U院长,密码:888,数据库用户名:U读者,权限:可查询查询本数 据库中所有表、视图、内嵌表值函数的数据,执行所有的存储过程。请写出账户、权限设置的T_SQL脚本。(6 分) 一、 1 2 3 4 5 6 7 8 9 10 A D C C A A C A A D 二、 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Y Y Y N N N Y N N Y N Y N Y N 三、 no 答案 分 1. @、@@ 2 2. 68、C 2 3. beautiful、我心中的太阳 2 4. 水平、垂直 2 5. 选择、投影 2 6. 实体、域 2 7. 算术、逻辑 2 8. 6、7 2 9. 17、-215、13.4400、-18.4560 4 四、 no 答案要点 分 1. 1. 计算机的连接 6 2. SQL Server登录(账户、固定服务器角色) 3. 库的访问(用户/角色:固定/自定义角色) 4. 表/视图的权限(select insert update delete) 5. 存储过程、内嵌表值函数的权限(execute select) 6. 表(视图)中列的权限(select update) 2. (1) 为用户集中需要的数据,简化了数据的用户操作; 4 (2) 对用户隐藏了数据库设计的复杂性; (3) 简化用户权限的管理 (4) 组织数据导出到其它应用程序 五、 no 参考答案 分 1. create database [学生成绩数据库] 2 go use [学生成绩数据库] go 2. create table 课程信息表 2 ([课号] char(6) primary key, [名称] nchar(20) not null) 3. create table 学生信息表 4 ([学号] char(6) primary key, [姓名] nchar(4) not null, [性别] nchar(1) check([性别] in ('男', '女')), [民族] nchar(8) default '汉族' not null, [身份证号] char(18) unique ) 4. create table 成绩信息表 5 (ID int identity(1, 1), [学号] char(6) references 学生信息表(学号), [课号] char(6) references 课程信息表(课号), [分数] integer check([分数] between 0 and 100) ) 5. insert 课程信息表 values('100101', '西班牙语') 8 insert 课程信息表 values('100102', '大学英语') update 课程信息表 set 名称='专业英语' where 课号='100102' delete 课程信息表 where 课号='100101' 6. create view [成绩信息表视图] 5 as select 成绩信息表.学号,姓名,成绩信息表.课号,名称 课程名 称,分数 from 成绩信息表,学生信息表,课程信息表 where 成绩信息表.学号=学生信息表.学号 and 成绩信息表.课号 =课程信息表.课号 7. select 姓名, 性别, 民族 2 from 学生信息表 where 姓名 like '刘%' and 性别='女' 8. select 学号, 姓名 4 from 学生信息表 where 学号 in (select distinct 学号 from 成绩信息表 where 分数<60) 9. create procedure [某门课程高低均分] 7 @课程名 nchar(16) as select 课程名称, 最高分=max(分数), 最低分=min(分数), 平均 分=avg(分数) from 成绩信息表视图 where 课程名称 = @课程名 group by 课程名称 go execute [某门课程高低均分] '专业英语' 10 exec sp_addlogin 'U院长', '888', '学生成绩数据库' 6 exec sp_grantdbaccess 'U院长', 'U读者' exec sp_addrolemember 'db_datareader', 'U读者' 试题(C卷) 一、单项选择题(每小题1分,共10分) 1. 下列四项中,不属于数据库特点的是( )。 A(数据共享 B.数据完整性 C. 数据冗余很高 D.数据独立性高 2. 目前( )数据库系统已逐渐淘汰了网状数据库和层次数据库,成为当今最为流行的商用数据库系统。 A(关系 B(面向对象 C(分布 3. 数据库设计中的概念结构设计的主要工具是( )。 A(数据模型 B(E—R模型 C(新奥尔良模型 D(概念模型 4. ( )是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数 据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。 A(DBMS B(DB C(DBS D(DBA 5. 在SQL中,建立视图用的命令是 ( )。 A.CREATE SCHEMA B.CREATE TABLE C.CREATE VIEW D.CREATE INDEX 6. SQL语言中,条件“年龄BETWEEN 20 AND 30”表示年龄在20至30之间,且( )。 A.包括20岁和30岁 B.不包括20岁和30岁 C.包括20岁但不包括30岁 D.包括30岁但不包括20岁 8. 在MS SQL Server中,用来显示数据库信息的系统存储过程是( )。 A. sp_dbhelp B. sp_db C. sp_help D. sp_helpdb 9. SQL语言中,删除一个表的命令是( )。 A. DELETE B. DROP C. CLEAR D. REMOVE 10.SQL的视图是从( )中导出的。 A(基本表 B. 视图 C. 基本表或视图 D. 数据库 二、判断题(每空1分,共10分) 1. "在那遥远的地方" 是SQL中的字符串常量吗, 2. "11.9" 是SQL中的实型常量吗, 3. 语句 select 16%4, 的执行结果是: 0 吗, 4. "2005.11.09" 是SQL中的日期型常量吗, 5. ,2005.89 是SQL中的货币型常量吗, 6. 语句 select 15/2 的执行结果是: 7.5 吗, 7. '李白'>'杜甫' 比较运算的结果为真吗, 8. 在事务中包含create database语句吗, 9. 创建唯一性索引的列可以有一些重复的值, 10.固定数据库角色:db_datawriter 的成员删除本数据库内任何表中的数据吗, 三、填空题(每空1分,共20分) 1. 数据库系统具有数据的___________、_________和_________三级模式结构。 2. SQL Server 2000局部变量名字必须以_________开头,而全局变量名字必须以_________开头。 3. 语句 select ascii('C'), char(68), len(' 你 是BigTiger ') 的执行结果是: _________、_________和 _________。 ltrim (' 我心中的太阳') 的执行结果是: ____________和4. 语句 select upper('beautiful') , ___________。 5. 关系运算主要有________、________、________。 6. 选择运算是根据某些条件对关系做______分割;投影是根据某些条件对关系做______分割。 7. 索引的类型主要有_ _和_ __。 8. 在SQL Server 2000中,数据库对象包括数据表、______、______、触发器、规则、默认和用户自定义的数 据类型等。 四、简述题(每小题5分,共10分) 1. 简述使用游标的步骤。 简述SQL Server 2000的安全性管理机制,涉及登录账号、用户、角色以及权限分配。 2. 五、设计题(共50分) 现有关系数据库如下: 数据库名:学生成绩数据库 学生表(学号 char(6),姓名,性别,民族,身份证号) 课程表(课号 char(6),名称) 成绩表(ID,学号,课号,分数) 用SQL语言实现下列功能的sql语句代码: 1. 创建数据库[学生成绩数据库]代码(2分); 2. 创建[课程表]代码(2分); 课程表(课号 char(6),名称) 要求使用:主键(课号)、非空(名称) 3. 创建[学生表]代码(6分); 学生表(学号 char(6),姓名,性别,民族,身份证号) 要求使用:主键(学号)、默认(民族)、非空(民族,姓名)、唯一(身份证号)、检查(性别) 4. 创建[成绩表]代码(4分); 成绩表(ID,学号,课号,分数) 要求使用:主键(课号)、外键(成绩表.学号,成绩表.课号)、检查(分数),自动编号(ID) 5. 将下列课程信息添加到课程表的代码(8分) 课号 课程名称 100001 大学语文 100002 大学英语 100003 西班牙语 修改 课号为100002的课程名称:实用英语 删除 课号为100003的课程信息 6. 写出创建:成绩表视图(学号,姓名,课号,课程名称,分数)的代码;(4分) 7. 写出创建:某门课程成绩 内嵌表值函数以及检索的代码;(6分) 检索:所有修 实用英语 这门学生的成绩; 8. 写出创建:某门课程高低均分 计算某门课程成绩最高分、最低分、平均分 存储过程以及执行的代码;(6 分) 执行:所有修 实用英语 这门学生的最高分、最低分、平均分; 9. 检索姓李的女同学的情况:姓名、性别、民族。(2分) 10.检索有一门或一门以上课程成绩大于等于90分的所有学生的信息,包括学号、姓名。(4分) 11.设置一SQL身份验证的账户:登录名:U领导,密码:888,数据库用户名:U读者,权限:可查询查询本数 据库中所有表、视图、内嵌表值函数的数据。请写出账户、权限设置的T_SQL脚本。(6分) 《SQL数据库管理与开发教程与实训》试题(C卷)参考答案 一、1.C 2.A 3. B 4.A 5.C 6.A 7. 8.D 9.B 10.C 二、1. N 2.N 3.Y 4.N 5.N 6.N 7. Y 8.N 9.N 10.Y 三、1. 外模式、模式、内模式。 2. @,@@ 3. 67, D, 12 4. BEAUTIFAL, 我心中的太阳 5. 选择、投影、连接。 6. 水平, 垂直 7. 聚簇索引 非聚簇索引 8. 视图、存储过程 四、简述题 1. 简述使用游标的步骤。 (1) 声明游标:declare 游标名 cursor for select语句; (2) 打开游标:open 游标名; (3) 处理数据: fetch delete update (4) 关闭游标:close 游标名; (5) 释放游标:deallocate 游标名; 2. 要点: 1. 计算机的连接 2. SQL Server服务器登录(登录、固定服务器角色) 3. 数据库的访问(用户/角色:固定/自定义数据库角色) 4. 数据表(视图)的访问(select insert update delete) 5. 存储过程/内嵌表值函数的访问(execute/select) 6. 数据表(视图)中列(字段)的访问(select update) 五、设计题 1.create database [学生成绩数据库] go use [学生成绩数据库] go 2. create table 学生表 ([学号] char(6) primary key, [姓名] nchar(4) not null, [性别] nchar(1) check([性别] in ('男', '女')), [民族] nchar(8) default '汉族' not null, [身份证号] char(18) unique ) 3. create table 课程表 ([课号] char(6) primary key, [名称] char(40) not null ) 4. create table 成绩表 (ID integer IDENTITY(1, 1), [学号] char(6) references 学生表(学号), [课号] char(6) references 课程表(课号), [分数] integer check([分数] between 0 and 100) ) 5. insert 课程表 values('100001', '大学语文') insert 课程表 values('100002', '大学英语') insert 课程表 values('100003', '西班牙语') update课程表 set 名称='实用英语' where 课号='100002' delete课程表 where 课号='100003' 6. create view [成绩表视图] as select 成绩表.学号,姓名,成绩表.课号,名称 课程名称,分数 from 成绩表,学生表,课程表 where 成绩表.学号=学生表.学号 and 成绩表.课号=课程表.课号 create view [成绩表视图] as select 成绩表.学号,姓名,成绩表.课号,名称 课程名称,分数 from 成绩表 join 学生表 on 成绩表.学号=学生表.学号 join 课程表 on 成绩表.课号=课程表.课号 7. create function [某门课程成绩](@课程名 varchar(40)) returns table as return (select 学号,姓名,课程名称,分数 from 成绩表视图 where 课程名称=@课程名) create function [某门课程成绩](@课程名 varchar(40)) returns table as return (select * from 成绩表视图 where 课程名称=@课程名) select * from [某门课程成绩]('实用英语') 8. create procedure [某门课程高低均分] @课程名 varchar(40) as select 课程名称, 最高分=max(分数)、最低分=min(分数)、平均分=avg(分数) from 成绩表视图 where 课程名称 = @课程名 execute [某门课程高低均分] '实用英语' 9. select 姓名, 性别, 民族 from 学生表 where 姓名 like '李%' and 性别='女' 10. select 学号, 姓名 from 学生表 where学号 in (select distinct 学号 from 成绩表 where分数>=90) 11. use [学生成绩数据库] exec sp_addlogin 'U领导', NULL, '学生成绩数据库', '简体中文' exec sp_password NULL, '888', 'U领导' exec sp_grantdbaccess 'U领导', 'U读者' exec sp_addrolemember 'db_datareader', 'U读者' use [学生成绩数据库] exec sp_addlogin 'U领导', '888', '学生成绩数据库' exec sp_grantdbaccess 'U领导', 'U读者' exec sp_addrolemember 'db_datareader', 'U读者' 《SQL数据库管理与开发教程与实训》试题(D卷) 一、单项选择题(每小题1分,共10分) 1(数据库应用系统是由数据库、数据库管理系统(及其开发工具)、应用系统、( )和用户构成。 A(DBMS B(DB C(DBS D(DBA 2(数据库管理系统的英文缩写是( )。 A(DBMS B(DBS C(DBA D(DB 3(在关系运算中,选取符合条件的元组是( )运算。 A(除法 B(投影 C(连接 D(选择 4(数据库设计中的逻辑结构设计的任务是把( )阶段产生的概念数据库模式变换为逻辑结构的数据库模式。 A(需求分析 B(物理设计 C(逻辑结构设计 D(概念结构设计 5(一个规范化的关系至少应当满足( )的要求。 A(一范式 B(二范式 C(三范式 D(四范式 6(在实际数据库设计中,“学号”通常作为( )存在。 A(数据结构 B(数据存储 C(数据项目 D(处理过程 7(SQL Server 2000中删除表中的命令是( )。 A(DELETE B(SELECT C(UPDATE D(DROP 8(运行命令SELECT ASCII(‘Alklk’) 的结果是( )。 A(48 B(32 C(90 D(65 9(在SQL中,建立视图用的命令是 ( )。 A.CREATE SCHEMA B.CREATE TABLE C.CREATE VIEW D.CREATE INDEX 10(在MS SQL Server中,用来显示数据库信息的系统存储过程是( )。 A. sp_dbhelp B. sp_db C. sp_help D. sp_helpdb 二、判断题(每空1分,共10分) 1(连接、选择和投影三种关系运算具有相同的结果。 2(数据的安全性主要防范的对象是合法用户。 3. 数据库设计前只需选择数据库分析设计人员。 4. 恢复是利用冗余数据来重建数据库。 5(定义外键级级联是为了保证相关表之间数据的一致性吗? 6(创建唯一性索引的列可以有一些重复的值, 7(存储过程的输出结果可以传递给一个变量。 8(视图具有与表相同的功能,在视图上也可以创建触发器。 9(能在游标中删除数据记录。 10(SQL Server 2000不具有数据的导入与导出功能。 三、填空题(每空1分,共20分) 1(数据库三个要素是__________、__________和_____________。 2. 语句 select year('1931-9-18') 的执行结果是____________。 3(__________是指保证指定列的数据具有正确的数据类型、格式和有效的数据范围。 4(__________是特殊类型的存储过程,它能在任何试图改变表中由触发器保护的数据时执行。 5(事务(Transaction)可以看成是由对数据库的若干操作组成的一个单元,这些操作要么______,要么________(如果 在操作执行过程中不能完成其中任一操作)。 6. SQL Server 2000 采用的身份验证模式有________________模式和________模式。 7(用户访问SQL Server数据库时,经过了两个_______验证和________验证安全验证阶段。 8(SQL Server 2000提供的数据库备份方法有_______数据库备份和________数据库备份、____________备份和 ________________备份。 9(SQL Server代理主要由______、______和警报来组成。 10(SQL Server复制把服务器分为______服务器、______服务器和订阅服务器三种。 四、简述题(每小题5分,共20分) 1. 试述关系的含义和性质。(7分) 2( 什么是事务,(6分) 3. 事务控制语句的使用方法是什么,(7分) 五、设计题(1—6题每空2分,第7题10分,共40分) 1(计算1+2+3+„„+100的和,并使用PRINT显示计算结果。 DECLARE @I int~@sum int~@csum char(10) SELECT @I=1~@sum=0 WHILE @I<=________ BEGIN SELECT @sum = __________ SELECT @I=@I+1 END SELECT @csum=convert(char(10),@sum) __________ ’1+2+3+……+100=’ + @csum 2(使用SQL语句创建一个班级表CLASS,属性如下:CLASSNO,DEPARTNO,CLASSNAME;类型均为字符型;长度分别为 8、2、20且均不允许为空。 CREATE ________ CLASS (CLASSNO ______ (8) NOT NULL, DEPARTNO CHAR (2) NOT NULL, CLASSNAME CHAR (____) NOT NULL , 3(声明一个名为CRSCOURSE的游标,并利用游标遍历,显示整个结果集。 USE XK DECLARE @COUNO VARCHAR(3),@COUNAME VARCHAR(20) _________________________ FOR SELECT COUNO,COUNAME FROM COURSE ORDER BY COUNO _________________________ FETCH NEXT FROM CRSCOURSE INTO @COUNO,@COUNAME WHILE @@FETCH_STATUS=0 BEGIN PRINT ’课程号:’+ @COUNO +’课程名称:’+ @CouName FETCH NEXT FROM CRSCOURSE INTO @COUNO,@COUNAME END _________________________ DEALLOCATE CRSCOURSSE 4(使用SQL语句在XK数据库中创建一个名为V_STUDENT的视图,该视图仅查看“STUDENT”表中“00电子商务”班 的学生信息。 USE XK CREATE ____________ V_STUDENT AS SELECT * FROM ____________ WHERE CLASSNO=’20000001’ 5(使用SQL语句在XK数据库中创建一个名为P_STUDENT的存储过程,该存储过程返回“STUDEND”表中所有班级代 码为200000001的记录。 USE XK CREATE ____________ P_STUDENT AS SELECT * ____________ STUDENT WHERE CLASSNO=’20000001’ 6(创建触发器TEST,要求每当在STUDENT表中修改数据时,将向客户端显示一条“记录已修改”的消息。 USE XK _________________ ON STUDENT _________________ AS PRINT ‘记录已修改’ 7(定义事务向[学生]数据库的[选课表]中插入学号=‘20030021’的多条记录,并检验若报名课程超过4门,则回滚 事务,即报名无效,否则成功提交。 选课表(学号,课号,报名号) 假设要插入的记录为以下三条: ‘20030021’,‘01’,1 ‘20030021’,‘02’,2 ‘20030021’,‘03’,3 根据以上要求编写程序,并指出本题定义的事务是否成功提交。 《SQL数据库管理与开发教程与实训》试题(D卷)参考答案 一、单项选择题 1(D 2(A 3(D 4(D 5(C 6(C 7(D 8(D 9(C 10(D 二、判断题 1(N 2(N 3(N 4(Y 5(Y 6(N 7(Y 8(N 9(Y 10(N 三、填空题 1(数据结构、数据操作、完整性约束 2(1931 3(域完整性4(触发器 5(都完成、都取消 6(Windows身份验证、混合 7(身份、权限 8(完整、差异、事务日志、文件和文件组 9(操作员、作业 10(发布、分发 四、简述题 1(关系是笛卡尔积的有意义的子集,用二维表格表示; 关系的性质如下: 关系表中的每一列都是不可再分的基本属性; 表中的各属性不能重名; 表中的行、列次序不分前后; 表中的任意两行不能完全相同。 2(事务(Transaction)可以看成是由对数据库若干操作组成的一个单元,这些操作要么都完成,要么都取消(如 果在操作执行过程中不能完成其中任一操作)。在SQL Server 2000中,事务是由一条或者多条Transact-SQL 语句组成的一个工作单元,这些语句要么都正常执行,要么如果有其中任意一条语句执行失败被取消的话,这 些语句的执行都被取消。SQL利用事务机制保证数据修改的一致性,并且在系统出错时确保数据的可恢复性。 3(事务控制语句的使用方法 begin transaction „„ -- A组语句序列 save transaction 保存点1 „„ -- B组语句序列 if @@error <> 0 rollback transaction 保存点1 --回滚到:保存点1 else commit transaction --提交A组语句,同时如果未回滚B组语句则提交B组语句。 五、设计题 1(100 @sum+@i print 2(table char 20 3(Declare crscourse cursor open crscourse close crscourse 4(view student 5(procedure from 6(Alter trigger test for update 7( Use 学生 Begin transaction Insert 选课表(学号~课程号~报名号) values(‘20030021’~‘01’~1) Insert 选课表(学号~课程号~报名号) values(‘20030021’~‘02’~2) Insert 选课表(学号~课程号~报名号) values(‘20030021’~‘03’~3) Declare @num int Set @num=(select count(*) from 选课表 where 学号=‘20030021’) If @num>4 begin Rollback transaction Print ‘超过报名门数:’ end Else Begin Commit transaction Print ‘报名成功:’ end go 本题定义的事务成功提交。 《SQL数据库管理与开发教程与实训》试题(E卷) 一、单项选择题(每小题1分,共10分) 1(( )是被长期存放在计算机内的、有组织的、统一管理的相关数据的集合。 A(DATA B(INFORMATION C(DB D(DBS 2(需求分析的主要方法是( )。 A(自顶向下 B(自底向上 C(从左到右 D(混合策略 3(在关系运算中,选取符合条件的元组是( )运算。 A(除法 B(投影 C(连接 D(选择 4.关系数据库的规范化理论指出,关系数据库中的关系应满足一定的要求,最起码的要求是达到1NF,既满 足( )。 A(主关键字唯一标识表中的每一行 (关系中的行不允许重复 B C(每个非关键字列都完全依赖于主关键字 D(每个属性都有是不可再分的基本数据项 (SQL Server 2000中表查询的命令是( )。 5 A. USE B(SELECT C(UPDATE D(DROP 6(SQL Server 2000中表更新数据的命令是( )。 A(USE B(SELECT C(UPDATE D(DROP 7(在SQL Server 2000中,下列变量名正确的是( )。 A(@sum B(j C(sum D(4kk 8(建立索引的目的是( )。 A(降低SQL Server数据检索的速度 B(与SQL Server数据检索的速度无关 C(加快数据库的打开速度 D(提高SQL Server数据检索的速度 9(用于求系统日期的函数是( )。 A(YEAR() B(GETDATE() C(COUNT() D(SUM() 10(向用户授予操作权限的SQL语句是( )。 A(CTEATE B(REVOKE C(SELECT D(GRANT 二、判断题(每空1分,共10分) 1(数据的完整性主要防范的对象是非法用户。 2(概念结构设计的工具是E—R模型。 3(写程序不属于数据库的模式设计阶段。 4(设计好的数据库管理系统在投入使用后出现问题由使用方负责。 5(规则必须使用一次就必须定义一次。 6(缺省情况下,所创建的索引是非聚集索引, 7(自定义函数在对任何表的查询中都可以使用。 8(触发器是可在程序中被调用执行。 9(游标中可发插入数据记录。 10(sa能否创建和删除数据库角色, 三、填空题(每空1分,共20分) 1(SQL语言主要由________________、_______________和数据控制语言(DCL)组成。 2.SQL Server 2000采用的身份验证模式有Windows身份验证模式和_________模式。 3.语句 SELECT (7+3)*4-17/(4-(8-6))+99%4 的执行结果是_____________。 4. ________是由一个或多个数据表(基本表)或视图导出的虚拟表。 5._____________用于保证数据库中数据表的每一个特定实体的记录都是惟一的。 6.索引的类型有______________和非聚集索引。 7._________是已经存储在SQL Server服务器中的一组预编译过的Transact-SQL语句。 8.触发器定义在一个表中,当在表中执行________、________或delete操作时被触发自动执行。 9.事务的ACID属性是指________性、________性、_______性和_______性。 10.数据库管理系统的安全性通常包括两个方面,一是指数据________的安全性,二是指数据_______的安全 性。 11.SQL Server代理主要由________、操作员和________来组成。 12.SQL Server复制有快照复制、________复制和________复制3种类型。 四、简述题(每小题5分,共20分) ,(简述数据库设计过程中需求分析、概念结构设计、逻辑结构设计各个阶段所要完成的任务。 2(存储过程与触发器有什么不同, 3(什么是游标, 4(什么是事务, 五、设计题(每小题5分,共40分) 现有关系数据库如下: 数据库名:学生成绩数据库 学生表(*学号,姓名,性别,民族) 课程表(*课程号,课程名称,任课教师) 成绩表(*学号,*课程号,分数) 用SQL语言实现下列功能的sql语句代码: 1(创建数据库[学生成绩数据库]代码(2分); 2. 创建[课程表]代码(2分); 课程表(课号 char(6),名称) 要求使用:主键(课号)、非空(名称) 3. 创建[学生表]代码(2分); 学生表(学号 char(6),姓名,性别,民族) 要求使用:主键(学号)、默认(民族)、非空(民族,姓名)、检查(性别) 4. 创建[成绩表]代码(2分); 成绩表(学号,课程号,分数) 要求使用:外键(成绩表.学号,成绩表.课程号)、检查(分数) 5. 将下列课程信息添加到课程表中 课号 课程名称 100001 大学语文 100002 大学英语 6. 写出创建成绩表视图(学号,姓名,课程号,课程名称,成绩)的代码; 7. 写出创建分数存储过程用于计算某门课程成绩最高分、最低分、平均分 8. 检索姓李的女同学的信息:姓名、性别、民族。 9. 设置SQL身份验证的账户: 登录名:U领导 密码:888 数据库用户名:U读者 权限:可查询查询本数据库中所有表的数据。 10( 定义一事务向成绩表中插入学号=‘20030021’的多条记录,并检验若该同学成绩超过4门,则回滚事务, 即成绩无效,否则成功提交。 《SQL数据库管理与开发教程与实训》试题(E卷)参考答案 一、单项选择题 1(C 2(A 3(D 4(D 5(B 6(C 7(A 8(D 9(B 10(D 二、判断题 1(N 2(Y 3(Y 4(N 5(N 6(Y 7(Y 8(N 9(N 10(Y 三、填空题 1(数据定义语言(DDL)、数据操作语言(DML) 2(混合 3(35 4(视图 5(实体完整性 6(聚集索引 7(存储过程 8(insert、update 9(原子、一致、独立、持久 10(访问、运行 11(作业、警报 12(事务、合并 四、简述题 1(?需求分析阶段的主要任务是通过调查,了解原系统的工作概况,明确用户的各种需求,收集支持系统 目标的基础数据及其处理方法, ?概念结构设计的主要任务是对需求分析的结果进行综合、归纳,从而形成一个独立于具体数据库管理系统 的概念数据模型。 ?逻辑结构设计阶段的主要任务是将概念结构设计的结果转换为某个具体的数据库管理系统所支持的结构 数据模型,并对其进行优化。 (答:触发器是特殊类型的存储过程,它能在任何试图改变表中由触发器保护的数据时执行。触发器主要2 通过事件进行触发而被执行,触发器不能直接调用执行,也不能被传送和接受参数,而存储过程可以通过存储过 程名被直接调用。触发器与表有关,存储过程与表无关。 3(答: 游标是允许用户能够从select语句查询的结果集中,逐条逐行地访问记录,可以按照自己的意愿 逐行地显示、修改或删除这些记录的数据访问处理机制。 4(答:事务(Transaction)可以看成是由对数据库的若干操作组成的一个单元,如果这些操作在执行过程 中任何一条操作不能正常完成的话,就取消单元中的所有操作,要么单元中的所有操作都正常完成。 五、设计题 1(create database [学生成绩数据库] go use [学生成绩数据库] go 2. create table课程表 ([课程号] char(6) primary key, [课程名称] char(40) not null [任课教师] char(4) ) 3. create table 学生表 ([学号] char(6) primary key, [姓名] nchar(4) not null, [性别] nchar(1) check([性别] in ('男', '女')), [民族] nchar(8) default '汉族' not null ) 4. create table成绩表 ([学号] char(6) references 学生表(学号), [课程号] char(6) references 课程表(课号), [成绩] integer check([成绩] between 0 and 100) ) 5(insert 课程表 values('100001', '大学语文') insert 课程表 values('100002', '大学英语') insert 课程表 values('100003', '西班牙语') 6(create view [成绩表视图] as select 学号,姓名,课程号,课程名称,成绩 from 成绩表,学生表 where 成绩表.学号=学生表.学号 select 学号,姓名,课程号,课程名称,成绩 from 成绩表 join 学生表 on 成绩表.学号=学生表.学号 7(create procedure [分数] @课程名 nchar(16) as select 课程名称, 最高分=max(分数)、最低分=min(分数)、平均分=avg(分数) from 成绩表视图 where 课程名称 = @课程名 8(select 姓名, 性别, 民族 from 学生表 where 姓名 like '李%' and 性别='女' 9(use [学生成绩数据库] exec sp_addlogin 'U领导', '888', '学生成绩数据库', '简体中文' exec sp_grantdbaccess 'U领导', 'U读者' exec sp_addrolemember 'db_datareader', 'U读者' 10(Begin transaction Insert 成绩表(学号,课程号,分数) values(‘20030021’,’001’,80) Insert 成绩表(学号,课程号,分数) values(‘20030021’,’002’,90) Insert 成绩表(学号,课程号,分数) values(‘20030021’,’003’,80) Insert 成绩表(学号,课程号,分数) values(‘20030021’,’004’,70) Declare @num int Set @num=(select count(*) from 成绩表 where 学号=‘20030021’) If @num>4 Rollback transaction Else Commit transaction go 《SQL数据库管理与开发教程与实训》试题(F卷) 郭鲜凤 老师 一、单项选择题(每小题1分,共10分) 1(SQL Server系统中的所有服务器级系统信息存储于哪个数据库( )。 A. master B. model C. tempdb D. msdb 2(下列标识符可以作为局部变量使用( )。 A. Myvar B. My var C. ,Myvar D. ,My var 3(以下关于主键的描述正确的是( )。 A.标识表中唯一的实体 B.创建唯一的索引,允许空值 C.只允许以表中第一字段建立 D.表中允许有多个主键 4(为数据表创建索引的目的是( )。 A.提高查询的检索性能 B.创建唯一索引 C.创建主键 D.归类 5(下列哪个不是sql 数据库文件的后缀。 A(.mdf B(.ldf C(.dbf D(.ndf 6(在SQL SERVER服务器上,存储过程是一组预先定义并( )的Transact-SQL语句。 A.保存 B.编译 C.解释 D.编写 7(数据定义语言的缩写词为 ( )。 A.DDL B.DCL C.DML D.DBL 8(以下关于外键和相应的主键之间的关系,正确的是( )。 A.外键并不一定要与相应的主键同名 B.外键一定要与相应的主键同名 C.外键一定要与相应的主键同名而且唯一 D.外键一定要与相应的主键同名,但并不一定唯一 9(在数据库设计中使用E-R图工具的阶段是( )。 A.需求分析阶段 B.数据库物理设计阶段 C.数据库实施 D.概念结构设计阶段 10(在T-SQL语言中,修改表结构时,应使用的命令是( ) A(UPDATE B. INSERT C. ALTER D. MODIFY 二、判断题(每空1分,共10分) 1. 因为通过视图可以插入.修改或删除数据,因此视图也是一个实在表,SQL SERVER将它保存在syscommens系统表 中。 2. guest用户必须关联一个登录账号才可以在数据库中创建。数据库中的非guest用户账号都必须关联一个登录账 号。 3. 可以在企业管理器中修改数据库的名称。 4. 恢复数据,可以在查询分析器中使用这样的命令:BACKUP DATABASE database_name FROM backup。 5. DELETE语句只是删除表中的数据,表本身依然存在数据库中。 6. 每个存储过程向调用方返回一个整数返回代码。如果存储过程没有显式设置返回代码的值,则返回代码为 0,表 示成功。 7. 在数据库中建立的索引越多越好。 8. 在SQL SERVER中,触发器的执行是在数据的插入.更新或删除之前执行的。 9. 并发性就是两个或两个以上的用户同时对数据执行的操作。 10.通配符“_”表示某单个字符。 三、填空题(每空1分,共30分) 1. 目前最常用的数据库有层次数据库、_________数据库和_________数据库,其中_________数据库是目前应用最广 泛的一种数据库。 2. 关系数据模型的逻辑结构是__________,关系中的列称为________,行称为________。 3. 关系数据库模型的数据操作主要包括插入、________、________和________数据。 4. SQL、DCL和DML缩写词的意义是___________语言、___________语言和___________语言。 5(实体之间的联系类型有三种,分别为________、________和________。 6(数据库系统的三级模式结构和两级数据映像确保了数据的________独立性和________独立性。 7(SQL Server 2000提供的数据库备份方法有_______数据库备份和________数据库备份、____________备份和 ________________备份。 8(SQL Server代理主要由______、______和_____来组成。 9(SQL Server复制把服务器分为______服务器、______服务器和_____服务器三种。 10(在SQL中,create view、alter view和drop view命令分别为________、________和________视图的命令。 四、简述题(每小题5分,共10分) 1.简述规范设计方法中,数据库应用系统开发的全过程。 2.创建数据库有那几种方法, 五.设计题(每小题5分,共40分) 有一个[学生课程]数据库,数据库中包括三个表: 学生表:Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记为:Student(Sno,Sname,Ssex,Sage,Sdept),Sno 为关键字。 课程表:Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记为: Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。 成绩表:SG由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记为: SG(Sno,Cno,Grade) (SNO, CNO) 为关键字。 用SQL语言实现下列功能: 1(建立学生表[Student],其中学号属性不能为空,并且其值是唯一的。 2(查考试成绩有不及格的学生的学号。 3(将学号为05001学生的年龄改为22岁。 4(计算1号课程的学生平均成绩。 5(创建存储过程[getDetailByName],通过输入参数学生姓名(如"张三"),筛选出该学生的基本信息,对不存在此学 生姓名的输入值,必须作一检测,打印信息“不存在此学生”。 6. 查计算机系姓赵的男同学的姓名(Sname)、性别(Ssex)、年龄(Sage)。 7(创建视图[学生成绩表视图],视图中包括学号(Sno)、姓名(Sname)、课程号(Cno)、课程名(Cname)、成绩(Grade)。 8(将一个新学生记录(学号:05020;姓名:丁莉;性别:女;年龄:17岁;所在系:计算机;)插入Student表中。 《SQL数据库管理与开发教程与实训》试题(F卷)参考答案 一、1. A 2. C 3. A 4. A 5. A 6.B 7.B 8.A 9.D 10.C 二、1. N 2.N 3.N 4.N 5.Y 6.Y 7. N 8.N 9.Y 10.Y 三、 1(网状、关系、关系 2(二维表、属性、元组 3(删除、更新、查询 4(结构化查询、数据控制、数据操作 5(一对一、一对多、多对多 6(逻辑、物理 7(完整、差异、事务日志、文件和文件组 (操作员、作业、警报 9(发布、分发、订阅 10(建立、修改、删除 8 四、简述题 1.简述按照规范设计方法进行数据库设计的全过程。 需求分析; 概念结构设计; 逻辑结构设计; 物理结构设计; 数据库实施; 数据库运行和维护。 2.创建数据库有那几种方法, 有3种创建数据库的方法: CREATE DATABASE语句; 创建数据库向导; 企业管理器。 五、设计题 1(create table student (Sno char(5) primary key, Sname char(20), Ssex char(2), Sage int, Sdept char(15) ) 2(select distinct sno from sg where grade < 60 3(update student set sage=22 where sno='05001' 4(select avg(grade) from sg where cno='1' 5(create procedure getdetailbyname @name nvarchar(10) as if (select count(*) from student where sname = @name) > 0 select * from student where sname = @name else print '不存在姓名为 ' + @name + ' 的学生资料' 6. select sname,ssex,sage from sdudent where sdept=’计算机系’and sname like '赵 %' and ssex ='女' 7( create view [学生成绩表视图] as select sno, sname, cno, cname, grade from sg, sdudent where sc.sno=sdudent.sno ( insert into student 8 values ('05020', '丁莉', '女', 17, '计算机系') 《SQL数据库管理与开发教程与实训》试题(P卷) 杜兆将 老师 一、名词解释(每小题每题4分,共20分) 1、视图 2、索引 3、存储过程 4、游标 5、备份 二、判断题(每空1分,共10分) 1、 安装Microsoft SQL Server 2000 企业版对操作系统的最低要求可以是Microsoft Windows 2000 Professional。 2、 每一个服务器必须属于一个服务器组。一个服务器组可以包含0个、一个或多个服务器。 3、 验证模式是在安装SQL Server过程中选择的。系统安装之后,可以重新修改SQL Server系统的验证模式。 4、 固定数据库角色:db_datarader 的成员不能修改本数据库内表中的数据。 5、 当用户定义的数据类型正在被某个表的定义引用时,这些数据类型不能被删除。 6、 在使用子查询时,必须使用括号把子查询括起来,以便区分外查询和子查询。 7、 索引越多越好。 8、 视图本身不保存数据,因为视图是一个虚拟的表。 9、 创建触发器的时候可以不是表的所有者或数据库的所有者。 10、select 16%4, 的执行结果是: 4 吗, 三、填空题(每空1分,共20分) 1、SQL Server登录身份验证模式类型有_________ 和_________ 两种。 2、数据库对象就是存储和管理数据库的结构形式,这些数据库对象包括数据库图表、表、函数、视图、_________ 、 _________ 、缺省、规则等。 3、表是由行和列组成的,行有时也称为_________,列有时也称为_________或域。 4、数据库操作语句就是指insert、_________、_________和select语句。 5、创建索引的方法可以分为_________和_________。 6、在Microsoft SQL Server系统中,支持3种类型的备份介质:_________、磁带和_________。 7、触发器有3种类型,即insert类型、_________和_________。 8、Transact,SQL语言有4部分元素组成,分别是:数据定义语言、________________、______________ 和一些附 加的语言元素。 9、事务的4个属性:原子性、一致性、_______性和_______性。 10. 选择运算是根据某些条件对关系做______分割;投影是根据某些条件对关系做______分割。 四、简述题(每小题6分,共30分) 1. 在SQL Server 2000中,使用视图的好处是什么, 2. 在SQL Server 2000数据完整性类型及其实现技术有哪些, 3. 简述使用游标的步骤。 4、简述SQL Server 2000的安全机制(6级)。 5、创建数据库的3种方法 五、设计题(每小题4分,共20分) 有一个[学生课程]数据库,数据库中包括三个表: 学生表由学号、姓名、性别、年龄、所在系五个属性组成, 可记为:学生表(学号,姓名,性别,年龄,所在系) [学号]为关键字。 课程表由课程号、课程名、先修课号、学分四个属性组成, 可记为:课程表(课程号,课程名,先修课号,学分) 课程表为关键字。 学生选课表由学号、课程号、成绩三个属性组成, 可记为: 成绩表(学号,课程号,成绩) (学号、课程号)为关键字。 编写用SQL语言实现下列功能的sql语句代码: 1、建立一个[学生表],其中学号属性不能为空,并且其值是唯一的。 2、查询全体学生的详细记录。 3、查询年龄在20至23岁之间的学生的姓名、系别、和年龄。 、计算1号课程的学生平均成绩。 4 5、将计算机科学系全体学生的成绩置零。 《SQL数据库管理与开发教程与实训》试题(P卷)参考答案 一、 名词解释(每题4分,共20分) 1、视图是由一个或多个数据表(基本表)或视图导出的虚拟表或查询表。 2、索引就是表中数据和相应存储位置的列表。 3、存储过程是存储在服务器上的一组预编译的Transact,SQL语句。 4、游标是允许用户能够从select语句查询的结果集中,逐条逐行地访问记录,可以按照自己的意愿逐行地显示、修 改或删除这些记录的数据访问处理机制。 5、备份是指将数据库复制到一个专门的备份服务器、活动磁盘或者其他能长期存储数据的介质上,作为副本。一旦 数据库因意外而遭损坏,这些备份可用来恢复数据库。 二、 判断题(每题1分,共10分) 1. N 2.Y 3.Y 4.Y 5.Y 6.Y 7. N 8.Y 9.N 10.N 三、 填空题:每空1分,共20分 1、Windows认证模式、混合模式 2、存储过程、触发器 3、记录、字段 4、update、delete 5、直接方法、间接方法 6、硬盘文件、Named Pipe(或命名管道) 7、update、delete 8、数据控制语言、数据操作语言 9、独立、持久 10、水平、垂直 四、 简答题:每题6分,共30分 1. 在SQL Server 2000中,使用视图的好处是什么, (1) 为用户集中需要的数据,简化了数据的用户操作; (2) 对用户隐藏了数据库设计的复杂性; (3) 简化用户权限的管理。 2. 在SQL Server 2000数据完整性类型及其实现技术有哪些, (1)域完整性:DEFAULT(默认值)、DEFAULT(默认技术)、CHECK(检查)、RULE(规则技术) (2)实体完整性:PRIMARY KEY(主键)、UNIQUE(唯一键)、IDENTITY(标识列) (3)参照完整性:FOREIGN KEY(外键) (4)自定义完整性:自定义函数、触发器 3. 简述使用游标的步骤。 (1) 声明游标:declare 游标名 cursor for select语句; (2) 打开游标:open 游标名; (3) 处理数据: fetch delete update (4) 关闭游标:close 游标名; (5) 释放游标:deallocate 游标名; 4、简述SQL Server 2000的安全机制(6级)。 1. 计算机的连接 2. SQL Server登录(账户、固定服务器角色) 3. 库的访问(用户/角色:固定/自定义角色) 4. 表/视图的权限(select insert update delete) 5. 存储过程、内嵌表值函数的权限(execute select) 6. 表(视图)中列的权限(select update) 5、创建数据库的3种方法 在Microsoft SQL Server系统中,有3种创建数据库的方法: (1) 使用CREATE DATABASE语句 (2) 使用创建数据库向导 (3) 使用企业管理器 五、设计题(每题4分,共20分) 1、建立一个学生表。 CREATE TABLE 学生表 (学号 CHAR(5) NOT NULL UNIQUE, 姓名CHAR(20), 性别 CHAR(2), 年龄 INT, 所在系 CHAR(15)) 2、查询全体学生的详细记录 SELECT * FROM 学生表 3、查询年龄在20至23岁之间的学生的姓名、系别、和年龄 SELECT 姓名, 所在系, 年龄 FROM 学生表 WHERE 年龄 BETWEEN 20 AND 23 4、计算1号课程的学生平均成绩 SELECT AVG(成绩) FROM 成绩表 WHERE 课程号='1' 5、将计算机科学系全体学生的成绩置零 UPDATE 成绩表 SET 成绩=0 RE 学号 in WHE ( SELECT 学号 FROM 学生表 WHERE Sdept ='计算机科学系') 《SQL数据库管理与开发教程与实训》试题(O卷) 杨辉 老师 一、单项选择题:(每小题1分,共10分) 1(不属于数据库管理系统三个要素组成的是( )。 A. 数据结构 B. 数据操作 C. 完整性约束 D. 数据分析 2(删除表中数据的语句是( )。 A. DROP B. ALTER C. UPDATE D. DELETE 3.限制输入到列的值的范围,应使用( )约束。 A. CHECK B. PRIMARY KEY C. FOREIGN KEY D. UNIQUE 4. 触发器可引用视图或临时表,并产生两个特殊的表是( )。 A(Deleted、Inserted B. Delete、Insert C. View、Table D. View1、table1 5(使用索引下列哪个说法是正确的( )。 A. 节省磁盘空间 B. 缩短查询时间 C. 在执行插入、修改、删除时节省时间 D. 与表无关 6(关于视图下列哪一个说法是错误的( )。 A. 视图是一种虚拟表 B. 视图中也存有数据 C. 视图也可由视图派生出来 D. 视图是保存在数据库中的SELECT查询 7(创建表的命令是( )。 A. Create database 表名 B. Create VIEW 表名 C. Create TABLE 表名 D. ALTER TABLE 表名 8(用于模糊查询的匹配符是( )。 A. _ B. [] C. ^ D. LIKE 9. 在sql SERVER中不是系统数据库的是( )。 A. master B. model C. tempdb D. pubs 10.关于关系图下列哪一个是正确的( )。 关系图是在同一个表中不同字段之间建立关联 A. B. 关系图是在不同表中的字段之间建立关联 C. 关系图是表与表之间建立关联,与字段无关。 D. 关系图是在不同数据库之间建立关联 二、判断题:(每小题1分,共10分) 1(在SQL Server中用户不能建立全局变量。 2(备份时只能对数据文件进行备份。 3(自定义函数在对任何表的查询中都可以使用。 4(触发器是通过事件进行触发而被执行的。 5(主键字段允许为空。 6(SQL Server 自动为primary key约束的列建立一个索引。 7(SQL Server的数据库可以导出为Access数据库。 8(删除表时,表中的触发器不被同时删除。 9(数据库的名称可在企业管理器中重命名。 10(触发器与约束发生冲突,触发器将不执行。 三、填空题:(每题1分,共计20分) 1(DBMS是位于用户与操作系统之间的一层数据管理软件,它属于________软件,它为用户或应用程序提供访问数 据库的方法。 2(关系模型用________结构表示实体集,用键来表示实体间联系。 3(数据库是被长期存放在计算机内的、有组织的、统一管理的相关______的集合。 4(数据库管理系统由三个要素组成:________、________和________。 5(SQL Server数据库的体系结构也是三级模式结构,在SQL Server中,________对应于视图、_______对应于基本 表、______对应于存储文件。 6(________是为保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则。 7(数据完整性的类型有________完整性、________完整性、________完整性和用户自定义完整性。 8(视图是由一个或多个______或视图导出的______或查询表。 9(______是指服务器管理、数据库管理和数据库访问特定的权限的集合。 10(SQL Server的安全性分为两类:_______安全性和_______安全性。 11(_______是已经存储在SQL Server服务器中的一组预编译过的Transact-SQL语句。 12(当______被删除时与它关联的触发器也一同被删除。 四、简述题(每小题5分,共20分) 1(自定义内嵌表值函数与视图的使用有什么不同, 2(什么是数据库备份和恢复, 3(什么是视图,它和表有什么区别, 4(自定义函数与存储过程的区别是什么, 五、设计题(每小题5分,共40分) 现有关系数据库如下: 数据库名:学生成绩数据库 学生表(班级编号,学号,姓名,性别,民族,身份证号,出生日期) 课程表(课程号,课程名) 成绩表(ID,学号,课号,分数) 用SQL语言实现下列功能的sql语句代码: 1(在[学生成绩数据库]的[学生表]中查询年龄为20岁或22岁的学生。 2(在[学生成绩数据库]中查询每个学生的班级编号、学号、姓名、平均分,结果按平均分降序排列,均分相同者按 班级排列。 3(编写一个自定义函数,根据[学生表]中的[出生日期]列,计算年龄。 4(创建一个视图[教学成绩表视图]显示学生的学号、姓名、课程名、分数。 5(编写一个存储过程,输入学号,从[教学成绩表视图]显示该学生的姓名、课程名、分数。 6(把[学生表]、[成绩表]通过[学号]建立约束关系。 7(把[学生表]、[成绩表]通过[学号]建立约束关系。 8(在学生表中插入记录: 班级编号 学号 姓名 性别 民族 身份证号 出生日期 王莉欣 女 汉 53010219790625224 1979-06-25 050201 050201001 050202 050202001 张晶 男 NULL 01020319801224121 NULL 把张晶的民族改为“汉”、出生日期改为“1980-12-24” SQL Server数据库答案N 一、单项选择题:(每小题1分,共10分) 1 2 3 4 5 6 7 8 9 10 D D D A B B C D D B 二、判断题:(10分)(正确的在答题纸对应的题号下打?,错误的打×) 1 2 3 4 5 6 7 8 9 10 ? ? ? ? ? ? ? ? ? ? 三、填空题:(每题1`分,共计20分) 1、系统 2、二维表 3、数据 4、数据结构、数据操作、完整性约束 5、外模式、模式、内模式 6、关系完整性 7、实体、域、参照 8、数据表、虚拟表 9、角色 10、数据访问、数据运行 11、存储过程 12、表 四、简述题(每小题5分,共20分) 1(自定义内嵌表值函数与视图的使用有什么不同, 答:内嵌标值函数可用于实现参数化视图的功能。这种类型的函数在使用参数和扩展索引视图方面提供了比视图更多 的灵活性。 2(什么是数据库备份和恢复, 答:备份是指将当前的数据库系统、数据文件或日志文件复制到一个专门的备份服务器、活动磁盘或者其他能长期存 储数据的介质上,作为副本。数据库备份记录了在进行备份这一操作时数据库中所有数据的状态。一旦数据库因 意外而遭损坏,这些备份文件可用来恢复数据库。 恢复是与备份相对应的数据库管理工作,系统进行数据库恢复的过程中,自动执行安全性检查,然后根据数据库备份 自动创建数据库结构,并且恢复数据库中的数据。 3(什么是视图,它和表有什么区别, 答:视图是由一个或多个数据表(基本表)或视图导出的虚拟表或查询表,是关系数据库系统提供给用户以多种角度 观察数据库中数据的重要机制。 视图是虚表。所谓虚表,就是说视图不是表。因为视图只储存了她的定义(select语句),而没有储存视图对应的数据, 这些数据仍存放在原来的数据表(基表),数据与基表中数据同步,即对视图的数据进行操作时,系统根据视图的 定义去操作与视图相关联的基本表。 4(答:自定义函数在被调用的位置上返回数据值,存储过程既不能在被调用的位置上返回数据,也不能被引用在语 句当中。 五、设计题(每小题5分,共40分) 1(在学生成绩数据库的学生表中查询年龄为20岁或22岁的学生 use 教学成绩管理数据库 , 性别, 年龄=datediff(year,出生日期,getdate()) select 姓名 from 学生表 where (datediff(year,出生日期,getdate())=20) or (datediff(year,出生日 期,getdate())=22) 2(在学生成绩数据库中查询每个学生的班级编号、学号、姓名、平均分,结果按平均分降序排列,均分相同者按班 级排列 use 教学成绩管理数据库 select 班级编号,a.学号,a.姓名, avg(分数) 平均分 from 学生表 as a join成绩表 as b on a.学号 = b.学号 group by 班级编号, a.学号,a.姓名 order by avg(分数) desc, 班级编号 asc 3(编写一个自定义函数,根据[学生表]中的[出生日期]列,计算年龄。 CREATE FUNCTION dbo.计算年龄(@vardate datetime,@Curdate datetime) RETURNS tinyint AS BEGIN return datediff(yyyy, @vardate, @Curdate) END 4(创建一个视图“教学成绩表视图” 显示学生的学号、姓名、课程名、分数。 CREATE VIEW [教学成绩表视图] AS SELECT 学号, 姓名, 课程名, 分数 FROM 学生表, 成绩表 WHERE 学生表.学号=成绩表.学号 5(编写一个存储过程,输入学号,从“教学成绩表视图” 显示该学生的姓名、课程名、分数。 CREATE PROCEDURE [成绩1] @xh char (6) as select 姓名,课程名称,分数 from 教学成绩表视图 where 学号=@xh 6(把学生表、成绩表通过“学号”建立约束关系。 alter table 学生表 add constraint 约束1 foreign key (学号) references 成绩表 (学号) 7(创建一个触发器,当修改学生表中的姓名时,显示“学生姓名已被修改”。 Create Trigger 触发器7 On 学生表 For updata As Print '学生姓名已被修改' Go 8( insert 学生表 values ('050201','050201001','王莉欣','女','汉','53010219790625224', '1979-06-25') insert 学生表 values ('050201','050201001', '张晶', '男', null, null, null) update 学生表 set 民族='汉', 身份证号='01020319800226121', 出生日期='1980-02-26' where 姓名='张晶' 《SQL数据库管理与开发教程与实训》试题(N卷) 杨辉 老师 一、单项选择题:(每小题1分,共10分) 1(触发器可以创建在( )中。 A. 表 B. 过程 C. 数据库 D. 函数 2(删除表的语句是( )。 A.DROP B.ALTER C.UPDATE D.DELETE 3. 以下触发器是当对[表1]进行( )操作时触发。 Create Trigger abc on 表1 For insert , update , delete As „„ A.只是修改 B.只是插入 C.只是删除 D.修改、插入、删除 4. 规则对象在使用上与( )约束类似。 A.CHECK B.PRIMARY KEY C.FOREIGN KEY D.UNIQU 5(主索引可确保字段中输入值的( )性。 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(创建存储过程必须在企业管理器中进行。( ) 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的数据库文件的扩展名为_____、事务日志文件的扩展名为_______。 7(建立和使用________的目的是为了保证数据的完整性。 8(BACKUP命令是对数据库进行__________, RESTORE命令是对数据库进行__________。 9(从最终用户角度来看,数据库应用系统分为单用户结构、主从式结构、分布式结构、____________结构和 ____________结构。 10(对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的_________。 11(SQL Server 2000的安全性分为两类: _______安全性和_______安全性。 四、简述题(每小题5分,共20分) 1(什么是数据库管理系统,它的主要功能是什么, 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 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(从课程表中统计第二学期的总学时。 执行结果为: 课程好 课程名 开课学期 学时 … … … … … … … … sum ============ … 4(编写一个存储过程,输入学号,从“教学成绩表视图” 显示该学生的姓名、课程名、分数。 5(创建一个触发器,当修改学生表中的姓名时,显示“学生姓名已被修改”。 SQL Server数据库答案N 一、单项选择题:(每小题1分,共10分) 1 2 3 4 5 6 7 8 9 10 A A D A C B A D D C 二、判断题:(10分)(正确的在答题纸对应的题号下打?,错误的打×) 1 2 3 4 5 6 7 8 9 10 ? ? ? ? ? ? ? ? ? ? 三、填空题:(每题1`分,共计20分) 1、关系数据库 2、数据结构、数据操作、完整性约束 3、内嵌表值函数、视图 4、存储过程 5、外模式、模式、内模式 6、mdf、ldf 7、约束 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岁、性别为‘女’的学生 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 《SQL数据库管理与开发教程与实训》试题(N卷) 杨辉 老师 一、单项选择题:(每小题1分,共10分) 1(触发器可以创建在( )中。 A. 表 B. 过程 C. 数据库 D. 函数 2(删除表的语句是( )。 A.DROP B.ALTER C.UPDATE D.DELETE 3. 以下触发器是当对[表1]进行( )操作时触发。 Create Trigger abc on 表1 For insert , update , delete As „„ A.只是修改 B.只是插入 C.只是删除 D.修改、插入、删除 4. 规则对象在使用上与( )约束类似。 A.CHECK B.PRIMARY KEY C.FOREIGN KEY D.UNIQU 5(主索引可确保字段中输入值的( )性。 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 命令的功能是( )。 查询工资大于1250的纪录 B.查询1250号记录后的记录 A. C.检索所有的职工号 D.从[职工]关系中检索工资大于1250的职工号 10. 关于关系图下列哪一个是正确的( )。 A.关系图是在同一个表中不同字段之间建立关联 B.关系图是表与表之间建立关联,与字段无关 C.关系图是在不同表中的字段之间建立关联 D.关系图是在不同数据库之间建立关联 二、判断题:(每小题1分,共10分) 1(ODBC是由Microsoft定义的一种数据库访问标准。( ) 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的数据库文件的扩展名为_____、事务日志文件的扩展名为_______。 7(建立和使用________的目的是为了保证数据的完整性。 8(BACKUP命令是对数据库进行__________, RESTORE命令是对数据库进行__________。 9(从最终用户角度来看,数据库应用系统分为单用户结构、主从式结构、分布式结构、____________结构和 ____________结构。 10(对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的_________。 SQL Server 2000的安全性分为两类: _______安全性和_______安全性。 11( 四、简述题(每小题5分,共20分) 1(什么是数据库管理系统,它的主要功能是什么, 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 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(从课程表中统计第二学期的总学时。 执行结果为: 课程好 课程名 开课学期 学时 … … … … … … … … sum ============ … 4(编写一个存储过程,输入学号,从“教学成绩表视图” 显示该学生的姓名、课程名、分数。 5(创建一个触发器,当修改学生表中的姓名时,显示“学生姓名已被修改”。 SQL Server数据库答案N 一、单项选择题:(每小题1分,共10分) 1 2 3 4 5 6 7 8 9 10 A A D A C B A D D C 二、判断题:(10分)(正确的在答题纸对应的题号下打?,错误的打×) 1 2 3 4 5 6 7 8 9 10 ? ? ? ? ? ? ? ? ? ? 三、填空题:(每题1`分,共计20分) 1、关系数据库 2、数据结构、数据操作、完整性约束 3、内嵌表值函数、视图 4、存储过程 5、外模式、模式、内模式 6、mdf、ldf 7、约束 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岁、性别为‘女’的学生 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 . 在SQL中,建立表用的命令是 ( )。 A.CREATE SCHEMA B.CREATE TABLE C.CREATE VIEW D.CREATE INDEX .SQL语言中,条件年龄 BETWEEN 15 AND 35表示年龄在15至35之间,且( )。 A.包括15岁和35岁 B.不包括15岁和35岁 C.包括15岁但不包括35岁 D.包括35岁但不包括15岁 .在MS SQL Server中,用来显示数据库信息的系统存储过程是( )。 A. sp_dbhelp B. sp_db C. sp_help D. sp_helpdb .SQL语言中,删除表中数据的命令是( )。 A. DELETE B. DROP C. CLEAR D. REMOVE .SQL的视图是从( )中导出的。 A. 基本表 B. 视图 C. 基本表或视图 D. 数据库 .SQL Server 2000局部变量名字必须以_________开头,而全局变量名字必须以_________开头。 .在SQL Server 中,数据库对象包括______、______、触发器、过程、列、索引、约束、规则、默认和用户自定 义的数据类型等。 设计题 现有关系数据库如下: 数据库名:我班同学数据库 同学表(学号 char(6),姓名,性别,年龄,民族,身份证号,宿舍号) 宿舍表(宿舍号 char(6),宿舍电话) 用SQL语言实现下列功能的sql语句代码: 1.创建数据库[我班同学数据库]代码。 2.创建数据表[宿舍表]代码; 宿舍表(宿舍号 char(6),宿舍电话) 要求使用:主键(宿舍号)、宿舍电话:以633开头的7位电话号码 3.创建数据表[同学表]代码; 同学表(学号 char(6),姓名,性别,年龄,民族,身份证号,宿舍号) 要求使用:主键(学号)、外键(宿舍号)、默认(民族)、非空(民族,姓名,年龄)、唯一(身份证号)、检查(性 别) 4.将下列宿舍信息添加到宿舍表的代码 宿舍号 宿舍电话 101 6331157 102 6331777 修改 宿舍号为101的 宿舍电话:6331158 删除 宿舍号为102的 宿舍信息 5.创建视图[同学表视图]代码; 同学表视图(学号, 姓名, 性别, 年龄, 民族, 身份证号, 宿舍号, 宿舍电话) 6.从同学表视图中查询姓张的女同学的姓名、性别、宿舍电话。 7.从同学表中查询女同学的最大年龄、最小年龄、平均年龄。 8.创建带参数的存储过程查询[某宿舍同学姓名, 性别, 宿舍电话 执行此过程,查询'101'宿舍情况 9.设置一SQL身份验证的用户账户:登录名:U班主任,密码:888,数据库用户名:U读者,权限:可查询查询 本数据库中所有表、视图、内嵌表值函数的数据,执行所有的存储过程。请写出账户、权限设置的T_SQL脚本。 判断 、 每一个服务器必须属于一个服务器组。一个服务器组可以包含0个、一个或多个服务器。 、 验证模式是在安装SQL Server过程中选择的。系统安装之后,可以重新修改SQL Server系统的验证模式。 、 固定数据库角色:db_datarader 的成员不能修改本数据库内表中的数据。 、 当用户定义的数据类型正在被某个表的定义引用时,这些数据类型不能被删除。 、 在使用子查询时,必须使用括号把子查询括起来,以便区分外查询和子查询。 、 索引越多越好。 、 视图本身不保存数据,因为视图是一个虚拟的表。 、 创建触发器的时候可以不是表的所有者或数据库的所有者。 填空 、SQL Server登录身份验证模式类型有_________ 和_________ 两种。 、表是由行和列组成的,行有时也称为_________,列有时也称为_________或域。 、数据库操作语句就是指insert、_________、_________和select语句。 、触发器有3种类型,即insert类型、_________和_________。 设计题 有一个[学生课程]数据库,数据库中包括三个表: 学生表由学号、姓名、性别、年龄、所在系五个属性组成, 可记为:学生表(学号,姓名,性别,年龄,所在系) [学号]为关键字。 课程表由课程号、课程名、先修课号、学分四个属性组成, 可记为:课程表(课程号,课程名,先修课号,学分) 课程表为关键字。 学生选课表由学号、课程号、成绩三个属性组成, 可记为: 成绩表(学号,课程号,成绩) (学号、课程号)为关键字。 用SQL语言实现下列功能的sql语句代码: 编写 1、建立一个[学生表],其中学号属性不能为空,并且其值是唯一的。 2、查询全体学生的详细记录。 3、查询年龄在20至23岁之间的学生的姓名、系别、和年龄。 、计算1号课程的学生平均成绩。 4 5、将计算机科学系全体学生的成绩置零。 SQL语言中,删除一个表的命令是( )。 A. DELETE B. DROP C. CLEAR D. REMOVE . 哪个关键字用于测试跟随的子查询中的行是否存在( )。 A(MOV B(EXISTS C(UNION D(HAVING . 以哪个符号开头的变量是全局变量( )。 A(@ B(@* C(@@ D(@$ . 如果在一个关系中,存在某个属性(或属性组),虽然不是该关系的主码或只是主码的一部分,但却是另一个 关系的主码时,称该属性(或属性组)为这个关系的 A.候选码 B.主码 C.外码 D.连接码 、设计题 在[Xk]数据库中有 课程表[Course]由课程编码(CouNo)、课程名称(CouName)、教师名(Teacher),报名人数(num)等组成 学生表[Student]由学号(StuNo)、学生姓名(StuName)、班级编号(ClassNo)等组成, 学生选课表[StuCou] 由学号(StuNo)、课程编码(CouNo)等组成。 . 检索Xk数据库中的课程表(Course)中的教师名(Teacher)、课程编码(CouNo)、课程名称(CouName), 要求检索结果首先按照教师名降序排列,教师名相同时,则按照课程号升序排列。(5分) . 使用IN关键字检索Xk数据库中的课程表(Course),要求检索课程编码(CouNo)不为'004'、'007'、'013' (5 分) . 使用Transact-SQL语句在XK数据库中创建一个名为[p_StudentPara]的存储过程。该存储过程能根据给定的班 级返回该班级代码对应的Student表中的记录。 . 创建一个触发器,要求当插入、删除StuCou表的选课记录时,能更新Course表中相应的报名人数。 (触发器可以创建在( )中。 A. 表 B. 过程 C. 数据库 D. 函数 . 以下触发器是当对[表1]进行( )操作时触发。 Create Trigger abc on 表1 For insert , update , delete As „„ A.只是修改 B.只是插入 C.只是删除 D.修改、插入、删除 . 规则对象在使用上与( )约束类似。 A.CHECK B.PRIMARY KEY C.FOREIGN KEY D.UNIQU (主索引可确保字段中输入值的( )性。 A.多样 B.重复 唯一 D.若干 C. (关于视图下列哪一个说法是错误的( )。 A.视图是一种虚拟表 B.视图中也保存有数据 C.视图也可由视图派生出来 D.视图是保存在SELECT查询 (执行带参数的过程,正确的方法为( )。 A. 过程名 参数 B. 过程名(参数) C.过程名,参数 D.A,B,C三种都可以 (查询毕业学校名称与“清华”有关的记录应该用( )。 A. SELECT * FROM 学习经历 WHERE 毕业学校 LIKE ’*清华*’ B. SELECT * FROM 学习经历 WHERE 毕业学校 = ’%清华%’ C. SELECT * FROM 学习经历 WHERE 毕业学校 LIKE ’?清华?’ D. SELECT * FROM 学习经历 WHERE 毕业学校 LIKE ’%清华%’ 阅读下列程序,说明它们的功能。 1( use 成绩数据库 If exists ( select name from sysobjects Where name=’student_info’ and type=’p’) Drop procedure student_inf Go Create procedure student_info as Select 学号, 姓名, 总学分 from xsqk 2( use 教学成绩管理数据库 go alter table 学生信息表 add email varchar(20) null, 学历 text, 照片 image 3( use 教学成绩管理数据库 select 教学成绩表.学号,姓名,sum(分数) 总分,avg(分数) 均分 from 学生信息表 join 教学成绩表 on 学生信息表.学号 = 教学成绩表.学号 group by 教学成绩表.学号,姓名 order by avg(分数) desc 设计题 现有关系数据库如下: 数据库名:学生成绩数据库 学生表(班级编号,学号,姓名,性别,民族,身份证号,出生日期) 课程表(课程号,课程名,开课学期,学时) 成绩表(ID,学号,课程号,分数) 用SQL语言实现下列功能的sql语句代码: 1(查询学生信息表中的年龄(重复年龄只显示一次) 2(从学生信息表和教学成绩表中查询查询学生的学号、姓名、课程名和分数 3(从课程表中统计第二学期的总学时。 执行结果为: 课程好 课程名 开课学期 学时 … … … … … … … … sum ============ … 4(编写一个存储过程,输入学号,显示该学生的姓名、课程名、分数。 5(创建一个触发器,当修改学生表中的姓名时,显示“学生姓名已被修改”。 2(使用SQL语句创建一个班级表CLASS,属性如下:CLASSNO,DEPARTNO,CLASSNAME;类型均为字符型;长度 分别为8、2、20且均不允许为空。 CREATE ________ CLASS (CLASSNO ______ (8) NOT NULL, DEPARTNO CHAR (2) NOT NULL, CLASSNAME CHAR (____) NOT NULL , 3(声明一个名为CRSCOURSE的游标,并利用游标遍历,显示整个结果集。 USE XK DECLARE @COUNO VARCHAR(3),@COUNAME VARCHAR(20) _________________________ FOR SELECT COUNO,COUNAME FROM COURSE ORDER BY COUNO _________________________ FETCH NEXT FROM CRSCOURSE INTO @COUNO,@COUNAME WHILE @@FETCH_STATUS=0 BEGIN PRINT ’课程号:’+ @COUNO +’课程名称:’+ @CouName FETCH NEXT FROM CRSCOURSE INTO @COUNO,@COUNAME END _________________________ DEALLOCATE CRSCOURSSE 4(使用SQL语句在XK数据库中创建一个名为V_STUDENT的视图,该视图仅查看“STUDENT”表中“00电子商务” 班的学生信息。 USE XK CREATE ____________ V_STUDENT AS SELECT * FROM ____________ WHERE CLASSNO=?20000001? 5、删除stu_score表中的外键约束con_num TABLE stu_score CONSTRAINT con_num 6、为student_info表添加“总学分”列,并为该列建立默认对象df_credit,使其默认值为0 Create df_credit as 0 Alter table student_info add 总学分 real Exec „df_credit?,?student_info.总学分? 、创建和执行带有输入和输出参数的存储过程proc_avg,查sc表中输入课程编号的最高分,最低分和平均分。 7 Create proc proc_avg @cid char(4),@max_scr int ,@min_scr int output,@avg_scr int output As Select @max_scr=max(grade),@min_scr=min(grade),@avg_scr= From grade Where cno=@cid Group by cno 执行: Declare @maxs int,@mins int,@avgs int Exec proc_avg „3?,@maxs output, ,@avgs output Select @maxs,@mins,@avgs 8. 建立表的命令如下,请补全约束定义。 create table employee ( eno char(5) , --主键 ename varchar(8) ______ --可以为空,但不重名 esex char(2) , --默认值为?女? eage smallint , --18到60岁之间 item varchar(10) , --非空 dno char(3) foreign key references ) --外键,参照DEPARTMENT表的主码(no) 9.创建SQL SERVER身份认证的登陆账户“stulogin”并进行授权,添加到tech数据库,使其成为数据库用户 “stuuser”,然后将其添加到数据库的db_accessadmin角色中,完成下列代码。 EXEC sp_addlogin „stulogin?,?12345?,?tech? USE tech GO EXEC „stulogin?,?stuuser? EXEC „db_accessadmin?, ?stuuser? 10、credit表包括学号sno、课程编号cno、分数、学分列。建立INSERT触发器ins_cr,当为表credit插入记录时, 检查分数是否大于等于60,是则从course表取得该分数对应课程的学分,插入表中,否则不插入。 Create trigger ins_cr On credit For insert As Begin Declare @score int , @credit int Select @score=分数 from inserted Select @credit=course.学分 from course, Where course.cno=inserted.cno If Begin Update credit set 学分,@credit from credit,inserted Where and credit.cno=inserted.cno End End
/
本文档为【sql数据库试卷】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索