SQL Server 2008网络数据库试题B班级:学号:_________ 姓名:分数一、单项选择题(每题1分,共15题,合计30分)1.SQL的视图是从()中导出的。
A. 基本表B. 视图C. 基本表或视图D. 数据库2. SQL 语言按照用途可以分为三类,下面选项中哪一种不是的:()A.DMLB.DCLC.DQLD.DDL3. 在SELECT语句的WHERE子句的条件表达式中,可以匹配0个到多个字符的通配符是()A. *B.%C.-D.?4. SQL Server提供的单行注释语句是使用()开始的一行内容。
A. “/*”B. “--”C. “{”D. “/”5. 以下那种类型不能作为变量的数据类型()。
A.textB.ntextC.tableD.image6. 下面不属于数据定义功能的SQL语句是:()A.CREATE TABLEB.CREATE CURSORC.UPDATED.ALTER TABLE7. 假如有两个表的连接是这样的: table_1 INNER JOIN table_2 其中table_1和table_2是两个具有公共属性的表,这种连接会生成哪种结果集?()A. 包括table_1中的所有行,不包括table_2的不匹配行B. 包括table_2中的所有行,不包括table_1的不匹配行C. 包括和两个表的所有行D. 只包括table_1和table_2满足条件的行8. 对视图的描述错误的是:()A. 是一张虚拟的表B. 在存储视图时存储的是视图的定义C. 在存储视图时存储的是视图中的数据D. 可以像查询表一样来查询视图9. 在T-SQL语言中,若要修改某张表的结构,应该使用的修改关键字是()。
A.ALTERB.UPDATEC.UPDAETD.ALLTER10. SQL Server 2008提供了一整套管理工具和实用程序,其中负责启动、暂停和停止SQL Server的4种服务的是()。
A.企业管理器B.导入和导出数据C.事件探察器D.服务管理器11.在Transact-SQL语法中,SELECT语句的完整语法较复杂,但至少包括的部分(___)。
A.SELECT,INTOB.SELECT,FROMC.SELECT,GROUPD.仅SELECT12.视图是一种常用的数据对象,它是提供____和____数据的另一种途径,可以简化数据库操作。
A.查看,存放B.查看,检索C.插入,更新D.检索,插入13.在SQL Server 2000中,索引的顺序和数据表的物理顺序相同的索引是()。
A.聚集索引B. 非聚集索引C.主键索引D.唯一索引14. SQL语言中,条件年龄 BETWEEN 15 AND 35表示年龄在15至35之间,且( )。
A.包括15岁和35岁B.不包括15岁和35岁C.包括15岁但不包括35岁D.包括35岁但不包括15岁15.在MS SQL Server中,用来显示数据库信息的系统存储过程是( )。
A. sp_dbhelpB. sp_dbC. sp_helpD. sp_helpdb二、填空题(每空2分,共10空,共计20分)1.数据库系统的特点分别是数据的结构化、数据共享_、数据独立性和__可控冗余。
2. 在SQL Server 2008中,索引的顺序和数据表的物理顺序不相同的索引是_非聚集索引__3. 如果要计算表中数据的总和,可以使用的聚合函数__sum函数______。
4.完整性约束包括__实体____完整性、__域____完整性、参照完整性和用户定义完整性。
5. 一个事务的操作必须是具备以下四个属性:原子性、一致性、___隔离性______和持久性。
6. 在SQL Server 2008中,我们创建数据库的语句是Create database,而修改数据库的语句是 Alter Database。
三、设计题(共50分)现有关系数据库如下:数据库名:ssgl数据库学生(学号 char(6),姓名,性别,年龄,民族,身份证号,宿舍号)宿舍表(宿舍号 char(6),宿舍电话)用SQL语言实现下列功能的sql语句代码:1.创建数据库[ssgl数据库] (2分)。
create database ssgl数据库2.创建数据表[宿舍表] (3分);宿舍表(宿舍号 char(6),宿舍电话)要求使用:主键(宿舍号)、宿舍电话:以633开头的7位电话号码create table 宿舍表( 宿舍号 char(6) primary key,宿舍电话 char(7) check(宿舍电话 like '633[0-9][0-9][0-9][0-9]')) 3.创建数据表[学生表] (6分);学生表(学号 char(6),姓名,性别,年龄,民族,身份证号,宿舍号)要求使用:主键(学号)、外键(宿舍号)、默认(民族)、非空(民族,姓名,年龄)、唯一(身份证号)、检查(性别)create table 学生表( 学号 char(6) primary key,姓名 nchar(4) not null,性别 nchar(1) check(性别='男' or 性别='女'),年龄 int ,民族 nchar(8) default '汉族' not null,身份证号 char(18) unique,宿舍号 char(6)foreign key references 宿舍表(宿舍号))4.将下列宿舍信息添加到宿舍表 (8分)宿舍号宿舍电话101 6331157102 6331777修改宿舍号为101的宿舍电话:6331158删除宿舍号为102的宿舍信息insert 宿舍表 values('101', '6331157')insert 宿舍表 values('102', '6331777')update 宿舍表 set 宿舍电话='6331158' where 宿舍号='101'delete 宿舍表 where 宿舍号='102'5.创建视图[学生表视图] (5分);学生表视图(学号, 姓名, 性别, 年龄, 民族, 身份证号, 宿舍号, 宿舍电话)create view 学生表视图asselect 学号,姓名,性别,年龄,民族,身份证号,同学表.宿舍号,宿舍电话from 学生表,宿舍表where 学生表.宿舍号=宿舍表.宿舍号6.从学生表视图中查询姓张的女学生的姓名、性别、宿舍电话。
(4分)select 姓名, 性别, 宿舍电话from 学生表视图where 姓名 like '张%' and 性别='女'7.从学生表中查询女学生的最大年龄、最小年龄、平均年龄。
(5分)select 最大年龄=max(年龄), 最小年龄=min(年龄), 平均年龄=avg(年龄) from 学生表where 性别='女'8.创建带参数的存储过程[某宿舍学生]:姓名, 性别, 宿舍电话执行此过程,查询'101'宿舍情况 (8分)create proc 某宿舍同学@宿舍号 varchar(6)asselect 姓名, 性别, 宿舍电话from 学生表视图where 宿舍号 = @宿舍号goexec 某宿舍同学 '101'9.设置一SQL身份验证的用户账户:登录名:U班主任,密码:123,数据库用户名:U读者,权限:可查询查询本数据库中所有表、视图、内嵌表值函数的数据,执行所有的存储过程。
请写出账户、权限设置的T_SQL脚本。
(9分)exec sp_addlogin 'U班主任', '888', 'ssgl数据库'exec sp_grantdbaccess 'U班主任', 'U读者'exec sp_addrolemember 'db_datareader', 'U读者'SQL Server数据库试题答案参考答案一、单项选择题(每题2分,共15题)1. C2.C3.B4.B5.C6.C7.D8.c9.A 10.D 11 B 12. B 13.A14.C 15 .D二、填空题(每空2分,共15空)1.数据共享可控冗余 2.非聚集索引 3.sum函数 4. 实体、域5.一致性隔离性 6.CREATE DATABASE ALTER DATABASE三、设计题(共50分)1. (2分)create database [ssgl数据库]gouse [ssgl数据库]go2. (3分)create table 宿舍表([宿舍号] char(6) primary key,[宿舍电话] char(7) check([宿舍电话] like'633[0-9][0-9][0-9][0-9]'))3. (6分)create table 学生表(学号 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(8分)insert 宿舍表 values('101', '6331157')insert 宿舍表 values('102', '6331777')update 宿舍表 set 宿舍电话='6331158' where 宿舍号='101' delete 宿舍表 where 宿舍号='102'5. (5分)create view [学生表视图] asselect 学号, 姓名, 性别, 年龄, 民族, 身份证号, 同学表.宿舍号, 宿舍电话from 学生表,宿舍表where 学生表.宿舍号=宿舍表.宿舍号6. (4分)select 姓名, 性别, 宿舍电话from 学生表视图where 姓名 like '张%' and 性别='女'7. (5分)select 最大年龄 = max(年龄), 最小年龄 = min(年龄), 平均年龄= avg(年龄)from 学生表where 性别='女'8. (8分)create procedure [某宿舍同学] @宿舍号 varchar(6)asselect 姓名, 性别, 宿舍电话from 学生表视图where 宿舍号 = @宿舍号goexecute [某宿舍同学] '101'9. (9分)exec sp_addlogin 'U班主任', '888', 'ssgl数据库' exec sp_grantdbaccess 'U班主任', 'U读者'exec sp_addrolemember 'db_datareader', 'U读者'。