当前位置:首页 > 数据库SQL期末考试复习题修改版
2012-2013 SQL数据库期末考试复习题
一、数据库操作题:
1.为学生选课管理系统创建名为“stuCourse”的数据库。
(1)主数据库文件和日志文件的逻辑分别为stuCourse _data和stuCourse _log。 (2)物理文件存放在d:\\data文件夹中。
create database stuCourse on PRIMARY(
name = stuCourse_data,
filename = 'd:\\data\\stuCourse_data.mdf' ) log on (
name = stuCourse_log,
filename = 'd:\\data\\stuCourse_log.ldf', )
2.为学生选课管理系统数据库(stuCourse)创建表,表结构如下。
(1)用SQL语句创建学生表,学生(学号,姓名,性别,年龄,系别),并设置约束:性别=‘男’或“女”。
(2)创建选课表,选课(学号,分数,课程编号,教师编号)。 3. 设计其E-R图,并标示出实体的主码。
4.用SQL语句插入数据,数据如表4-21~表4-25所示。
表4-21 学生表数据
表4-22选课表数据
5、对stuCourse数据库进行以下查询:
1.查询全体学生的学号、姓名和年龄。
select 学号,姓名,年龄from 学生表
2.查询选修了课程的学生号。
select distinct 学号from 选课表
3.查询选修课程号‘C3’的学号和成绩。
select 学号,分数from 选课表where 课程编号='C3'
4.查询成绩高于85分的学生的学号、课程号和成绩。
select 学号,课程编号,分数from 选课表where 分数>85
5.查询选修了C1或C2且分数大于等于85分的学生和学号、课程号和成绩。
select 学号,课程编号,分数from 选课表
where 分数>85 and 课程编号='C1' or 课程编号='C2'
6.查询选修C1或C2的学生的学号、课程号和成绩。
select 学号,课程编号,分数from 选课表 where 课程编号='C1' or 课程编号='C2'
7.查询所有姓张的学生的学号和姓名。
select 学号,姓名from 学生表where 姓名like '张%'
8.查询选修C1的学生姓名和成绩,并按成绩降序排列。
select s.姓名,x.分数
from 学生表 as s,选课表 as x
where x.课程编号='C1' and s.学号=x.学号 order by x.分数desc
9.查询与学生\宋江\相同系学生的学号和姓名。
select 学号,姓名 from 学生表
where 系别=(select 系别from 学生表where 姓名= '宋江')
10.在分组查询中使用HAVING条件,查询平均成绩大于85的学生学号及平均成绩。
select avg(分数) as 平均分 from 选课表 group by 学号 HAVING avg(分数)>85
11.查询选课在二门以上且各门课均及格的学生的学号及其总成绩,查询结果按总成绩降序列出。
select 学号,sum(分数) as 总分 from 选课表 group by 学号
having avg(分数)>60 and count(学号)>=2 order by sum(分数) desc
12.查询选修‘C1’课程且成绩在60以上的所有学生的学号、姓名和分数。
select s.学号, s.姓名,x.分数 from 学生表as s,选课表as x
where s.学号=x.学号and 课程编号='c1' and 分数>60
13.将成绩小于60分的科目分数加5分
update 选课表 set 分数=分数+5 where 分数<60
14.删除分数是Null的记录
delete from 选课表where 分数Is null
6、存储过程操作
1.在stuCourse数据库中,创建一个名为checkPhone的存储过程,该存储过程接受一个长途电话号码,并检查该号码的前四位为0731还是0735。如果是0731的,则显示“你输入的号码是长沙的区号”;如果0735,则显示信息“您输入的是郴州的区号”。
use stuCourse go
create procedure checkPhone @H int as
if @H = 0731
print '你输入的号码是长沙的区号' else if @H = 0735
print '您输入的是郴州的区号' go
exec checkPhone 0735
2.在stuCourse数据库中,创建一个存储过程,根据学生的学号查询他的选课记录。 7、创建登录用户和数据库用户,使该用户对数据库具有增删查改的权限。 use stuCourse go
create procedure Hong (@H int) as
select * from 选课表 where 学号 = @H go
exec Hong 1001
二、选择题:
1. 数据完整性是指()
A. 数据库中的数据部存在重复
B. 数据库中所有的数据格式是一样的 C. 所有的数据全部保存在数据库中
D. 数据库中的数据能够正确反映实际情况
2. 数据冗余指的是()
A. 数据和数据之间没有联系 B. 数据有丢失 C. 数据量太大 D. 存在重复的数据
3. ()的操作是把已经存在于磁盘的数据库文件恢复成数据库 A. 附加数据库 B. 删除数据库 C. 分离数据库 D. 压缩数据库
4.. 一个登录用户的数据库角色成员身份被设置为db_denydatawriter,该用户对数据库将() A. 只能写入数据,不能读取数据 B. 不能写入数据
C. 既能写入数据也能读取数据 D. 能够执行所有的管理操作
5. 主键用来实施() A. 实体完整性约束 B. 引用完整性约束 C. 域完整性约束 D. 自定义完整性约束
6. 表Course和表Teacher建立了主外键关系,Course为主表,Teachers为子表,以下说法中正确的选项是()
A. Teachers表存在Course表的外键 B. Teachers表中存在外键 C. Course表中存在外键
D. Course表中存在Teachers表的外键
7. 假设原来做的一个管理系统使用的是SQL Server数据库,现在想把它转化为Access数据库,可以采用()方法来实施
A. 把数据复制、粘贴到Access数据库中 B. Access数据库使用SQL Server的数据文件 C. 使用数据导入导出操作
D. 直接在Access中打开SQL Server数据库
共分享92篇相关文档