《SQL Server2008数据库技术应用》试卷1 一、单项选择题(10分) 1.下列四项中,不属于数据库特点的是(C)。 A数据共亨 B.数据完整性 C数据冗余很高 D.数据独立性高 2.下列四项中,不属于SQL2008实用程序的是(D)。 A企业管理器 B.查询分析器 ·服名管理翠 D.媒体播放器 3.SQL Server安装程序创建4个系统数据库,下列哪个不是(c)系统数据库。 A.master B.model C.pub D.msdb 4.(A)是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户 或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控 制。 0中,建用的命令是05 DBMS DBSD. DBA A.CREATE SCHEMA B.CREATE TABLE C CREATE VIEW D.CREATE INDEX 6.SQL语言中,条件年龄BETWEEN15AND35表示年龄在15至35之间,且(A)。 A包括5 B.不 C.包括15岁但不包括35岁 包括15岁和35岁, 0.包括35岁但不包括15岁 7.下列四项中,不正确的提法是( C】。 A.SQL语言是关系数据库的国际标准语言 BSOL语言具有数据定义、杳询、损纵和控制功能 C.SQL语言可以自动实现关系数据库的规范化 D.SQL语言 8.SQL语言中,删除表中数据的命令是( A A.DELETE B.DROP C.CLEAR D.REMOVE 9.sQL的视图是从(C)中导出的。 A基本表 B视图 C.基本表或视图 D.数据库 10.下列哪个不是5数据库文件的后缀。( C A..mdf B..df C..mdb D..ndf 二、判断题:(10分) 1.在那遥远的地方是SQL中的字符串常量吗? 2.'11.9是sQL中的实型常量吗 3.select16%4,的执行结果是:4吗? -结果是0 4.2005.1109是S0L中的日期型常量吗? X 5¥2005.89是S0L中的货币型常量回? 6.select25/2的执行结果是:125吗g -25和2都是整型,所以结果是12 7岳飞'>文天祥比较运算的结果为真吗? 8 一个表可以创建多个主键吗? X
《SQL Server 2008 数据库技术应用》试卷 1 一、单项选择题(10 分) 1.下列四项中,不属于数据库特点的是( C )。 A.数据共享 B.数据完整性 C.数据冗余很高 D.数据独立性高 2.下列四项中,不属于 SQL2008 实用程序的是( D )。 A.企业管理器 B.查询分析器 C.服务管理器 D.媒体播放器 3.SQL Server 安装程序创建 4 个系统数据库,下列哪个不是( C )系统数据库。 A.master B.model C.pub D.msdb 4.( A )是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户 或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控 制。 A.DBMS B.DB C.DBS D. DBA 5. 在 SQL 中,建立表用的命令是 ( B )。 A.CREATE SCHEMA B.CREATE TABLE C.CREATE VIEW D.CREATE INDEX 6.SQL 语言中,条件年龄 BETWEEN 15 AND 35 表示年龄在 15 至 35 之间,且( A )。 A.包括 15 岁和 35 岁 B.不包括 15 岁和 35 岁 C.包括 15 岁但不包括 35 岁 D.包括 35 岁但不包括 15 岁 7.下列四项中,不正确的提法是( C )。 A.SQL 语言是关系数据库的国际标准语言 B.SQL 语言具有数据定义、查询、操纵和控制功能 C.SQL 语言可以自动实现关系数据库的规范化 D.SQL 语言称为结构查询语言 8.SQL 语言中,删除表中数据的命令是( A )。 A. DELETE B. DROP C. CLEAR D. REMOVE 9.SQL 的视图是从( C )中导出的。 A. 基本表 B. 视图 C. 基本表或视图 D. 数据库 10. 下列哪个不是 sql 数据库文件的后缀。( C ) A..mdf B..ldf C..mdb D..ndf 二、判断题:(10 分) 1.'在那遥远的地方' 是 SQL 中的字符串常量吗? √ 2.'11.9' 是 SQL 中的实型常量吗? × 3.select 16%4, 的执行结果是: 4 吗? × --结果是 0 4.2005.11.09 是 SQL 中的日期型常量吗? × 5.¥2005.89 是 SQL 中的货币型常量吗? × 6.select 25/2 的执行结果是: 12.5 吗? × --25 和 2 都是整型,所以结果是 12 7.'岳飞'>'文天祥' 比较运算的结果为真吗? √ 8.一个表可以创建多个主键吗? ×
9.创建唯一性索引的列可以有一些重复的值? 10.在事务中包含create database语句吗? 三、填空题:(20分) 1.语句select ascii('D'),char(67)的执行结果是: 68 和C 2.语句select lower('Beautiful),rtrim('我心中的太阳)的执行结果是:beautiful和 我心中的太阳 3完整性约束包括实体完整性、 域完整性、参照完整性和用户定义完整性 4.在SQL Server2008中,数据库对象包括表、视图_、触发器、过程、列、索引、约 束、规则、默认和用户自定义的数据类型等。 5.语句select day('2004-4-6'),len我们快放假了.)的执行结果是:6和7 6.语句select round13.4321,2,round(13.4567,3)的执行结果是:13.4300和 13.4570 <取n位小数、四会五入 7.事务(Trans ctio)可以看成是由对数据库的若干操作组成的一个单元,这些操作要么全 部完成,要么全部取消 (如果在操作执行过程中不能完成其中任一操作)。 8.SQLServer2008采用的身份验证模式有Windows身份验证_模式和混合模式。 9.触发器定义在一个表中,当在表中执行insert ,update或delete操作时被触 发自动执行 10.SQL Server复制有快照复制、 事务复制和合并复制3种类型 四、简单题:(20分) 1.在SQL Server2008中,使用视图的好处是什么? 交, 1)为用户集中需要的数据,简化了数据的用户操作: (2)对用户隐藏了数据库设计的复杂性: (3)简化用户权限的管理: (4)组织数据导出到其它应用程序: 2.简述使用游标的步骤。 Step1:声明游标:declare ,游标名cursor for select语句 Step2:打开游标:open游标名; Step3:处理数据:fetch insert delete update语句 Step4:关闭游标:close游标名: Step5:释放游标:deallocate游标名: 3.简述SQL Server20o8的安全性管理机制,涉及登录账号、用户、角色以及权限分配 答 (1)计算机的连接 (2)SQL Server服务器登录(登录、固定服务器角色) (3)数据库的访问(用户/角色:固定/自定义数据库角色) (4)数据表(视图)的访问(seled inse update delete (5)存储过程/内嵌表值 的数的 访问(execute/.select (6)数据表(视图)中列(字段)的访问(select update) 4.事务控制语句的使用方法是什么? 答
9.创建唯一性索引的列可以有一些重复的值? × 10.在事务中包含 create database 语句吗? × -- 三、填空题:(20分) 1.语句 select ascii('D'), char(67) 的执行结果是:____68_____和___C_____。 2.语句 select lower('Beautiful') , rtrim('我心中的太阳 ') 的执行结果是:beautiful ___和_ 我心中的太阳____。 3.完整性约束包括__实体___完整性、__域____完整性、参照完整性和用户定义完整性。 4.在 SQL Server 2008 中,数据库对象包括_表__、__视图__、触发器、过程、列、索引、约 束、规则、默认和用户自定义的数据类型等。 5.语句 select day('2004-4-6'), len('我们快放假了.') 的执行结果是:__6___和__7___。 6. 语 句 select round(13.4321,2), round(13.4567,3) 的 执 行 结 果 是 : __13.4300__ 和 ____13.4570_____。 7.事务(Transaction)可以看成是由对数据库的若干操作组成的一个单元,这些操作要么__全 部完成___,要么_全部取消______(如果在操作执行过程中不能完成其中任一操作)。 8. SQL Server 2008 采用的身份验证模式有__Windows 身份验证___模式和__混合_模式。 9.触发器定义在一个表中,当在表中执行__insert______、__update___或 delete 操作时被触 发自动执行。 10.SQL Server 复制有快照复制、___事务____复制和__合并___复制 3 种类型。 四、简单题:(20分) 1.在 SQL Server 2008 中,使用视图的好处是什么? 答: (1) 为用户集中需要的数据,简化了数据的用户操作; (2) 对用户隐藏了数据库设计的复杂性; (3) 简化用户权限的管理; (4) 组织数据导出到其它应用程序; 2. 简述使用游标的步骤。 答: Step1:声明游标:declare 游标名 cursor for select 语句; Step2:打开游标:open 游标名; Step3:处理数据: fetch insert delete update 语句 Step4:关闭游标:close 游标名; Step5:释放游标:deallocate 游标名; 3.简述 SQL Server 2008 的安全性管理机制,涉及登录账号、用户、角色以及权限分配。 答: (1)计算机的连接 (2)SQL Server 服务器登录(登录、固定服务器角色) (3)数据库的访问(用户/角色:固定/自定义数据库角色) (4)数据表(视图)的访问(select insert update delete) (5)存储过程/内嵌表值函数的访问(execute/select) (6)数据表(视图)中列(字段)的访问(select update) 4. 事务控制语句的使用方法是什么? 答:
begin transaction 一A组语句序列 save transaction保存点1 B组语句序列 if@@error<>0 rollback transaction保存点1 若发生错误,回滚到保存点1” else ommit transaction 一若没有错误,先提交A组语句,再提交B组语句。 五 设计题, (40分 有关系数据库如下: 数据库名:学生成绩数据库 学生表(*学号,姓名,性别,民族) 课程表(*课程号,课程名称,任课教师) 成绩表(*学号,*课程号,分数) 用SQL语言实现下列功能的s0语句代码: 1.创建数据库[学生成绩数据库]代码2分: create database[学生成绩数据库] use[学生成绩数据库 gO 2.创建[课程表]代码2分: 课程表(课号char(6e),名称) 要求使用:主键(课号)、非空(名称】 create table课程表( [课程号]char(6)primary key,. [课程名称]char(4o)not null 3.创建学生表]代码(2分): 学生表(学号char(6),姓名,性别,民族) 要求使用:主键(学号)、默认(民族、非空(民族,姓名)、检查(性别) create table学生表( a 】char(6)primary key [性别]nchar(1)check(I性别]in('男','女'), [民族1 nchar(8)default'汉'not null 4.创建[成绩表]代码(2分: 成绩表(学号,课程号,分数) 要求使用:外键(成绩表学号,成绩表课程号)、检查(分数) create table成绩表( 【学号]char6)references学生表(学号
begin transaction …… -- A 组语句序列 save transaction 保存点 1 …… -- B 组语句序列 if @@error <> 0 rollback transaction 保存点 1 --若发生错误,回滚到”保存点 1” else commit transaction --若没有错误,先提交 A 组语句,再提交 B 组语句。 五、设计题:(40分) 现有关系数据库如下: 数据库名:学生成绩数据库 学生表(*学号,姓名,性别,民族) 课程表(*课程号,课程名称,任课教师) 成绩表(*学号,*课程号,分数) 用 SQL 语言实现下列功能的 sql 语句代码: 1. 创建数据库[学生成绩数据库]代码(2 分); create database [学生成绩数据库] go use [学生成绩数据库] go 2. 创建[课程表]代码(2 分); 课程表(课号 char(6),名称) 要求使用:主键(课号)、非空(名称) create table 课程表( [课程号] char(6) primary key, [课程名称] char(40) not null ) 3. 创建[学生表]代码(2 分); 学生表(学号 char(6),姓名,性别,民族) 要求使用:主键(学号)、默认(民族)、非空(民族,姓名)、检查(性别) create table 学生表( [学号] char(6) primary key, [姓名] nchar(4) not null, [性别] nchar(1) check ([性别] in ('男', '女')), [民族] nchar(8) default '汉' not null ) 4. 创建[成绩表]代码(2 分); 成绩表(学号,课程号,分数) 要求使用:外键(成绩表.学号,成绩表.课程号)、检查(分数) create table 成绩表( [学号] char(6) references 学生表(学号)
[课程号]char(6)references课程表(课号), [成绩]integer check(成绩]between0andio) 5.将下列课程信息添加到课程表中 课号 课程名称 100001 大学语文 100002 大学英语 100003 西班牙语 insert课程表values('100001,'大学语文') nsert课程表values100002'大学英语】 insert课程表 values('100003,'西班牙语') 6.写出创建成绩表视图(学号,姓名,课号,课程名称,成绩)的代码: create view i成绩表初图las se1ect成绩表学号,学生表姓名,成绩表课程号,课程表.课程名称,成绩表,成绩 from成绩表,学生表,课程表 where成绩表.学号=学生表.学号and成绩表课号=课程表.课号 7.写出创建分数存储过程用于计算某门课程成绩最高分、最低分、平均分 create procedure[分数] @课程名nchar(16)as select课程名称,最高分=max分数)、最低分=min(分数)、平均分=avg(分数) from成绩表视图 where课程名称=@课程名 8.检索姓李的女同学的信息:姓名、性别、民族。 Select姓名,性别,民族 From 学生表 Where姓名ike李%and性别-女 9.定义一事务向成绩表中插入学号=‘20030021'的多条记录,并检验若该同学成绩超过4 门,则回滚事务,即成绩无效,否则成功提交。 Begin transaction 1 nsert成绩表values'20030021'001'88) Insert成绩表values('20030021,002,99) Insert成绩表values'200300210o377 Insert成绩表 values("20030021004,66 Declare @num int; Set@num=(select count(*)from成绩表where学号=20030021':
[课程号] char(6) references 课程表(课号), [成绩] integer check ([成绩] between 0 and 100) ) 5. 将下列课程信息添加到课程表中 课号 课程名称 100001 大学语文 100002 大学英语 100003 西班牙语 insert 课程表 values('100001', '大学语文') insert 课程表 values('100002', '大学英语') insert 课程表 values('100003', '西班牙语') 6. 写出创建成绩表视图(学号,姓名,课号,课程名称,成绩)的代码; create view [成绩表视图] as select 成绩表.学号,学生表.姓名,成绩表.课程号,课程表.课程名称,成绩表.成绩 from 成绩表,学生表,课程表 where 成绩表.学号=学生表.学号 and 成绩表.课号=课程表.课号 7. 写出创建分数存储过程用于计算某门课程成绩最高分、最低分、平均分 create procedure [分数] @课程名 nchar(16) as select 课程名称, 最高分=max(分数)、最低分=min(分数)、平均分=avg(分数) from 成绩表视图 where 课程名称 = @课程名 8. 检索姓李的女同学的信息:姓名、性别、民族。 Select 姓名,性别,民族 From 学生表 Where 姓名 like ‘李%’ and 性别=’女’ 9. 定义一事务向成绩表中插入学号=‘20030021’的多条记录,并检验若该同学成绩超过 4 门,则回滚事务,即成绩无效,否则成功提交。 Begin transaction Insert 成绩表 values(‘20030021’,’001’,88); Insert 成绩表 values(‘20030021’,’002’,99); Insert 成绩表 values(‘20030021’,’003’,77); Insert 成绩表 values(‘20030021’,’004’,66); Declare @num int; Set @num=(select count(*) from 成绩表 where 学号=’20030021’);
If @num>4 Rollback transaction Committransaction; Go
If @num>4 Rollback transaction; Else Commit transaction; Go