《SQL Server2008数据库技术应用》试卷5 单项选择题(每小题1分,共10分) 1. (A)是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用 户或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、 统一控制。 B.DB D.DBA 2. 下列四项中,不属于SQL2008实用程序的是(D)。 A.企业管理器 B.查询分析器 C.服务管理器 八.媒体播放器 3.SQL Server安装程序创建4个系统数据库,下列哪个不是(C)系统数据库。 A.master B.mode C.pub D.msdb 4.下列哪个不是sa1数据库文件的后绶。(C) A.mdf B.Idf C.tif D..ndf 5.数据定义语言的缩写词为(A) A.DDI B.DCL C.DML D.DBL 6.SQL语言中,条件年龄BETWEEN15AND35表示年龄在15至35之间,且(A)。 A.句括15岁和35岁 B.不包括15岁和35岁 C句括15岁但不句括35岁 D.句括35岁但不包括15岁 7. SQL的视图是从(C )中导出的 B.视图 C.基本表或视图 D.数据库 8.在SQL语言中,建立存储过程的命令是(A) A、CREATE PROCEDURE B、CREATE RULE C、CREATE DURE D、CREATE FILE 9. SQL语言中,删除表中数据的命令是(A A.DELETE B.DROP C.CLEAR D REMOVE 10.在S SQL Server中,用来显示数据库信息的系统存储过程是(D). A.sp_dbhelp B.sp_db sp_nei D.sp_helpdb 二、判断题(每空1分,共15分) 1. '在那遥远的地方’是SQL中的字符串常量吗?Y 2.11.9是SQL中的实型常量吗 select16%4,的执行结果是:0吗? 4 2005.11.09是S0L中的日期型常量吗 N ¥2005.89是5QL中的货币型常重吗 N 6.select25/2的执行结果是:12.5吗? 7.’李逵>'李鬼'比较运算的结果为真吗?
———————————————————————————————————————————— 1 《SQL Server 2008 数据库技术应用》试卷 5 一、单项选择题(每小题 1 分,共 10 分) 1. ( A )是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用 户或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、 统一控制。 A.DBMS B.DB C.DBS D.DBA 2. 下列四项中,不属于SQL2008实用程序的是( D )。 A.企业管理器 B.查询分析器 C.服务管理器 D.媒体播放器 3. SQL Server安装程序创建4个系统数据库,下列哪个不是( C )系统数据库。 A. master B. model C. pub D. msdb 4. 下列哪个不是sql 数据库文件的后缀。( C ) A..mdf B..ldf C..tif D..ndf 5. 数据定义语言的缩写词为 ( A )。 A.DDL B.DCL C.DML D.DBL 6. SQL语言中,条件年龄 BETWEEN 15 AND 35表示年龄在15至35之间,且( A )。 A.包括 15 岁和 35 岁 B.不包括 15 岁和 35 岁 C.包括 15 岁但不包括 35 岁 D.包括 35 岁但不包括 15 岁 7. SQL的视图是从( C )中导出的。 A. 基本表 B. 视图 C. 基本表或视图 D. 数据库 8. 在SQL语言中,建立存储过程的命令是( A ) A、CREATE PROCEDURE B、CREATE RULE C、CREATE DURE D、CREATE FILE 9. SQL语言中,删除表中数据的命令是( A )。 A. DELETE B. DROP C. CLEAR D. REMOVE 10. 在MS SQL Server中,用来显示数据库信息的系统存储过程是( D )。 A. sp_dbhelp B. sp_db C. sp_help D. sp_helpdb 二、判断题(每空 1 分,共 15 分) 1. '在那遥远的地方' 是SQL中的字符串常量吗?Y 2. 11.9 是SQL中的实型常量吗 Y 3. select 16%4, 的执行结果是: 0 吗? Y 4. 2005.11.09 是SQL中的日期型常量吗? N 5. ¥2005.89 是SQL中的货币型常量吗? N 6. select 25/2 的执行结果是: 12.5 吗? N 7. '李逵'>'李鬼' 比较运算的结果为真吗? Y
8.一个表可以创建多个主健吗? N 9。创建唯一性索引的列可以有一些重复的值?N 10. smallint是SQL的数据类 ll.SQL Server不允许字段名为汉字? N 12.职称in(教授,’副教授)与职称='教授or职称=’副教授等价吗?Y 13.如果规则当前绑定到某列或用户定义的数据类型,不能解除绑定能直接删除规则?N 14.在表中创建一个标识列(IDENTITY),当用户向表中插入新的数据行时,系统自动为该 行标识列 15。周定数据库 角色 ,db_datarader的成员修改本数据库内表中的数据吗?N 三、填空题(每空1分,共20分) 1.SQL Server2008局部变量名字必须以。开头,而全局变量名字必须以 开头。 2.语句select ascii(CD'),char(67)的执行结果是: 68和C 语句select lower(Beautiful' rtrim(我心中的太阳 )的执行结果是 beautiful 和我心中的太阳 4. 选择运算是根据某些条件对关系做水平_分割:投影是根据某些条件对关系做 垂直 分。 关系运算主要有洗择 粉影和连接 完整性约束包括实体 _完整性、参照完整性和用户定义完整性 T-SQL语言中,有 _算术运算、字符串连接运算、比较运算和逻辑运算。 8. 语句select day('2004-4-6),1en(C我们快放假了.)的执行结果是:6和 7 9 语句 selectf1oor(17.4),f1oor(-214.2),round(13.4382,2),round(-18.4562,3) 的抽行结里是 17 215 13.4400 和 -18.4560. 四、简答题(每小题5分,共10分) 1.简述SQL Server2008的安全性管理机制(6级,涉及登录账号、用户、角色以及权限分 积)。(6分) 1.计算机的连接 2.SQLServer登录(账户、固定服务器角色) 3.库的访问(用户角色:固定/自定义角色) 4.表视图的权限(select insert update delete) 5.存储过程、内嵌表值函数的权限(execute select) 6.表(视图)中列的权限(select update) 2.在SQL.Server2008中,使用视图的好处是什么?(4分) 简化用户权限的管理 (④组织数据导出到其它应用程序 五、设计题(共45分) 现有关系数据库如】 数据库名:学生成绩数据库 学生信总表(学号char(6),姓名,性别,民族,身份证号) 课程信息表(课号char(6),名称) 成绩信息表(ID,学号,课号,分数) 2
———————————————————————————————————————————— 2 8. 一个表可以创建多个主键吗? N 9. 创建唯一性索引的列可以有一些重复的值?N 10. smallint 是SQL的数据类型吗? Y 11. SQL Server不允许字段名为汉字? N 12. 职称 in ('教授', '副教授'')与 职称 = '教授' or 职称 = '副教授' 等价吗?Y 13. 如果规则当前绑定到某列或用户定义的数据类型,不能解除绑定能直接删除规则?N 14. 在表中创建一个标识列(IDENTITY),当用户向表中插入新的数据行时,系统自动为该 行标识列赋值吗? Y 15. 固定数据库角色:db_datarader 的成员修改本数据库内表中的数据吗? N 三、填空题(每空 1 分,共 20 分) 1. SQL Server 2008局部变量名字必须以___@____开头,而全局变量名字必须以 ____@@_____开头。 2. 语句 select ascii('D'), char(67) 的执行结果是:__68___和___C____。 3. 语句 select lower('Beautiful') , rtrim('我心中的太阳 ') 的执行结果是: ___beautiful_______和___我心中的太阳______。 4. 选择运算是根据某些条件对关系做__水平__分割;投影是根据某些条件对关系做__ 垂直____分割。 5. 关系运算主要有___选择_____、___投影_____和连接。 6. 完整性约束包括__实体_____完整性、__域___完整性、参照完整性和用户定义完整性。 7. T-SQL 语言中,有___算术___运算、字符串连接运算、比较运算和___逻辑___运算。 8. 语句 select day('2004-4-6'), len('我们快放假了.') 的执行结果是:___6___和 ___7___。 9. 语句 select floor(17.4), floor(-214.2), round(13.4382,2), round(-18.4562,3) 的执行结果是: __17___、__-215__、___13.4400____和___-18.4560___。 四、简答题(每小题5分,共10分) 1. 简述SQL Server 2008的安全性管理机制(6级,涉及登录账号、用户、角色以及权限分 配)。(6分) 1. 计算机的连接 2. SQL Server 登录(账户、固定服务器角色) 3. 库的访问(用户/角色:固定/自定义角色) 4. 表/视图的权限(select insert update delete) 5. 存储过程、内嵌表值函数的权限(execute select) 6. 表(视图)中列的权限(select update) 2. 在SQL Server 2008中,使用视图的好处是什么?(4分) (1) 为用户集中需要的数据,简化了数据的用户操作; (2) 对用户隐藏了数据库设计的复杂性; (3) 简化用户权限的管理 (4) 组织数据导出到其它应用程序 五、设计题(共 45 分) 现有关系数据库如下: 数据库名:学生成绩数据库 学生信息表(学号 char(6),姓名,性别,民族,身份证号) 课程信息表(课号 char(6),名称) 成绩信息表(ID,学号,课号,分数)
用SQL语言实现下列功能的sq1语句代码。 1.创建数据库[学生成绩数据库]代码(2分) create database学生成绩数据库 go us学生成绩数据库 20 2.创建数据表[课程信息表]代码:(2分) 课程信息表〔课号 a 要求使月 (课 create table课程信息表 (I课号1char6 primary key, 名称1 nchar(20)not null) 3 (4分】 r(6, 姓名, 性别 ,民族,身份证号) 要求使用:主键(学号)、默认(民族)、非空(民族,姓名)、唯一(身份证号)、检查(性 别) create table学生信息表 [性别nchar(山check性别]im男',女 【民族nchar(8)default汉族'not null 身份证号1char(I8)unique) 4 创建数据表「成绩信息表]: (5分、 成绩信息表(们D.学号,误号,分数】 要求使用:外键(学号, 课号) 检查(分数),自动编号(D create table成绩信息表 ID int identity(1,1). I学号1char6 references学生信息表(学号), I课号l char(6 references课程信息表(课号) 分数]integ check(分数]betwee 0and100) 将下列课程信总添加到课程信总表的代码(8分 课号 名称 100101 西班牙语 100102 大学英语 修改 课号为100102的课程名称:专业英语 为100101的课程信店 insert课程信息表values(100I0','西班牙语) insert课程信息表values((100102,大学英语) update课程信息表set名称='专业英语'where课号=100102 delete课程信息表where课号=100I0 6. 创建视图[成绩信息表视图的代 (5分 成绩信总表视图(学习 生名 课号 课程名称,分数) create view成绩信息表视图! as
———————————————————————————————————————————— 3 用SQL语言实现下列功能的sql语句代码。 1. 创建数据库[学生成绩数据库]代码(2分)。 create database [学生成绩数据库] go use [学生成绩数据库] go 2. 创建数据表[课程信息表]代码;(2分) 课程信息表(课号 char(6),名称) 要求使用:主键(课号)、非空(名称) create table 课程信息表 ([课号] char(6) primary key, [名称] nchar(20) not null) 3. 创建数据表[学生信息表]代码;(4分) 学生信息表(学号 char(6),姓名,性别,民族,身份证号) 要求使用:主键(学号)、默认(民族)、非空(民族,姓名)、唯一(身份证号)、检查(性 别) create table 学生信息表 ([学号] char(6) primary key, [姓名] nchar(4) not null, [性别] nchar(1) check([性别] in ('男', '女')), [民族] nchar(8) default '汉族' not null, [身份证号] char(18) unique) 4. 创建数据表[成绩信息表];(5分) 成绩信息表(ID,学号,课号,分数) 要求使用:外键(学号,课号)、检查(分数),自动编号(ID) create table 成绩信息表 ( ID int identity(1, 1), [学号] char(6) references 学生信息表(学号), [课号] char(6) references 课程信息表(课号), [分数] integer check([分数] between 0 and 100)) 5. 将下列课程信息添加到课程信息表的代码(8分) 课号 名称 100101 西班牙语 100102 大学英语 修改 课号为100102的课程名称:专业英语 删除 课号为100101的课程信息 insert 课程信息表 values('100101', '西班牙语') insert 课程信息表 values('100102', '大学英语') update 课程信息表 set 名称='专业英语' where 课号='100102' delete 课程信息表 where 课号='100101' 6. 创建视图[成绩信息表视图]的代码;(5分) 成绩信息表视图(学号,姓名,课号,课程名称,分数) create view [成绩信息表视图] as
select成绩信息表学号,姓名,成绩信息表课号,名称课程名称分数 from成绩信息表,学生信息表,课程信息表 ere成绩信息表学号-学生信息表.学号md成绩信息表.课号-课程信息 表课号 7.从学生信息表中查询姓刘的女同学的情况:姓名、性别、民族。(2分 8.查询有一门或一门以上课程成绩小于60分的所有学生的信息,包括学号、姓名。(4 分) 9. 创建带参数的存储过程[某门课程高低均分]、执行该过程的代码(7分 存储过程功能:查询某门课程的最高分、最低分、平均分: 执行该过程,查询所有修’专业英语’这门学生的最高分、最低分、平均分: 10设置一SQL身份验证的用户账户:登录名:U院长,密码:888,数据库用户名:U读者, 权限:可查询查询本数据库中所有表、视图、内嵌表值函数的数据,执行所有的存储 过程。请写出账户 权限设置的T_SQL脚本。(6分 1 select姓名,性别,民族 from学生信息表 where姓名ike'刘%and性别='女' select学号,姓名 from学生信息表 where学号in (select distinet学号from成绩信息表where分数<6O) create procedure某门课程高低均分 a课程名nchar(6 select课程名称,最高分=max(分数,最低分=min(分数,平均分 =avg(分数) from成绩信息表视图 here课程名称=@课程名 group by课程名称 execute某门课程高低均分]'专业英语! o exec sp addlogin 'U院长,888','学生成绩数据库 exec sp grantdbaccess'U院长,'U读者 exec sp_addrolemember'db datareader,U读者
———————————————————————————————————————————— 4 select 成绩信息表.学号,姓名,成绩信息表.课号,名称 课程名称,分数 from 成绩信息表,学生信息表,课程信息表 where 成绩信息表.学号=学生信息表.学号 and 成绩信息表.课号=课程信息 表.课号 7. 从学生信息表中查询姓刘的女同学的情况:姓名、性别、民族。(2分 8. 查询有一门或一门以上课程成绩小于60分的所有学生的信息,包括学号、姓名。(4 分) 9. 创建带参数的存储过程[某门课程高低均分]、执行该过程的代码(7分) 存储过程功能:查询某门课程的最高分、最低分、平均分; 执行该过程,查询所有修’专业英语’这门学生的最高分、最低分、平均分; 10 设置一SQL身份验证的用户账户:登录名:U院长,密码:888,数据库用户名:U读者, 权限:可查询查询本数据库中所有表、视图、内嵌表值函数的数据,执行所有的存储 过程。请写出账户、权限设置的T_SQL脚本。(6分) 7. select 姓名, 性别, 民族 from 学生信息表 where 姓名 like '刘%' and 性别='女' 8. select 学号, 姓名 from 学生信息表 where 学号 in (select distinct 学号 from 成绩信息表 where 分数<60) 9. create procedure [某门课程高低均分] @课程名 nchar(16) as select 课程名称, 最高分=max(分数), 最低分=min(分数), 平均分 =avg(分数) from 成绩信息表视图 where 课程名称 = @课程名 group by 课程名称 go execute [某门课程高低均分] '专业英语' 10 exec sp_addlogin 'U 院长', '888', '学生成绩数据库' exec sp_grantdbaccess 'U 院长', 'U 读者' exec sp_addrolemember 'db_datareader', 'U 读者