试卷1
课程名称: 网络数据库
一、单选题(每题2分,共30分)
1、对于学生——选课——课程的三个关系,如下所示:
学生(学号,姓名,性别,年龄) 课程(课程号,课程名称,教师) 选课(学号,课程号,成绩)
为了考虑安全性,每个教师只能存取自己讲授的课程的学生成绩,应创建 。 A、视图 B、索引 C、游标 D、表 2、用下面的SQL语句建立一个基本表,可以插入到表中的元组是 。
CREATE TABLE Student ( Sno CHAR(4) NOT NULL, Sname NVARCHAR(8) NOT NULL, Sex CHAR(2),
Age SMALLINT )
A、5021,'刘祥','男', 21 B、NULL, '刘祥', NULL, 21 C、'5021' , NULL, '男', 21 D、'5021', '刘祥', NULL, NULL 3、部分匹配查询中有关通配符“_”的正确的叙述是 。
A、“_”代表多个字符 B、“_”可以代表零个或多个字符 C、“_”不能与“%”一同使用 D、“_”代表一个字符
4、声明了变量:declare @i int, @c char(4),现在为@i赋值10,为@c赋值'abcd',正确的语句是 。
A、set @i=10,@c='abcd' B、set i=10 , set @c='abcd' C、select @i=10,@c='abcd' D、select @i=10, select @c='abcd' 5、在SQL Server中, 不是对象。
A、用户 B、数据 C、表 D、数据类型 6、数据库系统不仅包括数据库本身,还要包括相应的硬件,软件和 。
A、数据库管理系统 B、数据库应用系统 C、相关的计算机系统 D、各类相关人员 7、“授权”是数据库系统中采用的 措施
A、完整性 B、安全性 C、并发性 D、一致性 8、SQL中,“SALARY IN (1000,2000)”的语义是 。
A、SALARY<= 2000 AND SALARY >= 1000 B、SALARY<= 2000 AND SALARY>1000 C、SALARY=1000 AND SALARY=2000 D、SALARY=1000 OR SALARY=2000 9、 简称DBA。
A、数据库管理员 B、数据库 C、数据库管理系统 D、计算机硬件 10、SQL语言中ROLLBACK 语句的主要作用是 。
A、终止程序 B、事务结束 C、保存数据 D、事务回滚
11、设一位教师可讲授多门课程,一门课程可由多位教师讲授,教师与课程之间是 。
A、一对一的联系 B、一对多的联系 C、多对一的联系 D、多对多的联系 12、有如下SQL语句:SELECT 部门表.部门号,部门名称,SUM(单价*数量).
FROM部门表,商品表
WHERE 部门表.部门号=商品表.部门号 GROUP BY 部门表.部门号
查询结果是 。
A、各部门商品数量合计 B、各部门商品金额合计 C、所有商品金额合计 D、各部门商品金额平均值 13、在视图上不能完成的操作是 。
A、更新视图 B、查询 C、在视图上定义新的基本表 D、在视图上定义新视图 14、授予用户Jean可以查询count表的权限,使用的SQL语句是 。
A、GRANT SELECT ON count TO Jean B、GRANT SELECT TO Jean ON count C、GRANT SELECT TO count ON Jean D、GRANT SELECT ON Jean TO count 15、当表中引入 时,会提高记录的查询速度。
A、外键 B、主键 C、索引 D、数据库完整性 二、数据库设计题(共29分)
1、(5分)以“stu_course”为名称创建一个数据库。该数据库中包含一个主数据文件sdata.mdf,存放路径为“f:\\data\\”;一个事务日志文件slog.ldf,存放路径为“e:\\log\\”。其他设置自定。 2、(15分)在上题创建好的数据库中,按如下要求创建三张表。 学生表(student) 列 名 sid sname sex birth class 课程表(course) 列 名 cid cname credit 选课表(ach) 列 名 sid cid grade 数据类型 char char tinyint 长度 4 4 -- 允许空值 否 否 否 说明 学号,主键(外键,student(sid)) 课程号,主键(外键,course(cid)) 成绩,介于0~100之间 数据类型 char nvarchar tinyint 长度 4 20 -- 允许空值 否 否 是 说明 课程号,主键,由J+3位数字构成 课程名,唯一性字段 学分,介于1~5之间 数据类型 char nvarchar nchar datetime nvarchar 长度 4 8 1 -- 20 允许空值 否 否 是 是 是 说明 学号,主键,由四位数字构成 姓名 性别,默认值为“男” 出生日期 班级 3、(9分)在“stu_course”数据库中插入以下记录。
(1)班级:计算机信息管理班 学号:0203 姓名:傅亮达 性别:男 1983年1月22日出生 (2)课程号:j101 课程名:计算机网络 学分:4 (3)学号:0203 课程号:j101 成绩:89
三、查询设计题(每题7分,共21分)
1、查询选修了“计算机网络”这门课程的学生的姓名。 2、查询?傅亮达?选修的所有课程成绩之和。 3、查询学生选修过的所有课程的名称。
四、填空题(每空2分,共20分)
1、 将选修了?j101?课程的学生成绩统一提高10%。 set grade= where cid='j101'
2、以男生选修课程成绩超过80分的学生建立一个视图view1。 as select student.sid, sname,sex,birth,class from
where sex='男' and
3、编写一个自定义存储过程proc1,要求根据输入课程号,输出选修该门课程的学生的总成绩及平均成绩
create @s char(4), @sum int output, @average int output as
select @sum=sum(grade), from ach
where 4、执行上题存储过程,求选修了j101这门课程的总成绩及平均成绩。 declare @sum1 int ,@a int --@sum1存放总成绩,@a存放平均成绩 exec proc1 select @sum1,@a
试卷2
一、单选题(每题2分,共30分)
1、数据库管理系统(DBMS)是 。
A、一个完整的数据库应用系统 B、一组硬件 C、一组软件 D、既有硬件,也有软件 2、SQL语句提供 语句用于实现数据存取的安全控制。
A、GRANT B、COMMIT C、CREATE TABLE D、ROLLBACK
3、部分匹配查询中有关通配符“%”的正确的叙述是 。
A、“%”代表多个字符 B、“%”可以代表零个或多个字符 C、“%”不能与“_”一同使用 D、“%”代表一个字符
4、声明了变量:declare @i int, @c char(4),现在为@i赋值10,为@c赋值'abcd',不正确的语句是 。
A、set @i=10,@c='abcd' B、set @i=10 set @c='abcd' C、select @i=10,@c='abcd' D、select @i=10 select @c='abcd'
5、在SELECT子句中,如果想要返回结果集中不包含相同的行,应该使用 关键字。
A、TOP B、AS C、DISTINCT D、JOIN 6、在SQL语言中,创建视图应使用 语句。
A、CREATE SCHEMA B、CREATE TABLE C、CREATE VIEW D、CREATE DATABASE 7、 是表中用来唯一标识的每行记录。
A、外键 B、主键 C、索引 D、数据库完整性 8、SQL 中,\的语义是 。
A、GRADE<60 OR GRADE>90 B、GRADE<= 60 OR GRADE>= 90 C、GRADE<>60 AND GRADE<>90 D、GRADE<>60 OR GRADE<>90 9、 简称DBA。
A、数据库管理员 B、数据库 C、数据库管理系统 D、计算机硬件 10、在SQL中,可以使用 语句执行恢复数据库的操作。
A、BACKUP DATABASE B、RESTORE DATABASE C、CREATE DARABASE D、DROP DATABASE
11、设一个班级可选修多门课程,一门课程可被多个班级选修,班级与课程之间是 。
A、一对一的联系 B、一对多的联系 C、多对一的联系 D、多对多的联系 12、SQL Server2005的数据库中主数据文件的扩展名是 。
A、.mdf B、.ndf C、.ldf D、.dbf
13、在SQL语句向表中添加记录时,其关键字是 。
A、CREATE B、UPDATE C、ALTER D、INSERT 14、文档、图表、图像等数据用 数据类型来存储。
A、text B、image C、char D、varchar 15、当表中引入 时,会提高记录的查询速度。
A、外键 B、主键 C、索引 D、数据库完整性
二、数据库设计题(共20分)
根据如下E-R图,将其转换为逻辑数据库。
成绩 课程号 姓名
学号 课程名 m n
课程 选修 学生 性别 学分 班级 1、(4分)转换成如下关系表:
Student( s_id,s_name,sex,class)
2、(4分)创建一个名字为“stu_course”的数据库。要求主数据文件名为“student_data.mdf”,其他参数自定义。 4、(12分)根据第(1)步中的关系表,写出相应的SQL语句,在stu_course库中创建数据表。
三、查询设计题(每题6分,共30分)
1、查询“计算机信息管理班”的学生的学号和姓名。 2、查询课程名称中含有“计算机”的课程信息。 3、分组统计各班级学生的平均成绩。 4、查询女生的人数。
5、查询平均成绩最高的学生的姓名。 四、填空题(每空2分,共20分)
1、将名为“王丽”的学生的成绩全部增加10分。 update SC
set
where s_id in ( select
from student
where )
2、以学生的姓名、选修课程名及成绩建立一个视图view1。 create as select s_name, c_name,sex,grade from student,course,sc where and course.c_id=sc.c_id
3、建立一个t表,存放班级名称及班级学生人数。然后为Student表创建一个触发器,当Student表中学生信息有变化时,能够自动更新t表的内容。 select class,num= into t
from student group by class create trigger tr1 on student
for as
if update class begin
declare @c nvarchar(20),@n int select @c=class from deleted
select @n=count(*) from student
where class= update t set num=@n where class=@c select @c=class
from select @n=count(*) from student where class=@c
set num=@n where class=@c end