大学数据库期末考试试卷
护垫和卫生巾的区别-论据大全
桂 林 电 子 科 技 大 学 试 卷
2017-2018 学年第
1 学期 课号 BT123268
课程名称
数据库原理及应用(A卷 闭 卷)
适用班级(或年级、专业)16级计算机系所有专业
考试时间 60 分钟 班级 学号
姓名
题 号
满 分
得 分
评卷人
一
二
三
四
五
六
七
八
九
十 成绩
一、考试题目
1、用可视化的操作方式和sql语句创建一个学生数据库(student)。
2、用可视化的操作方式和sql语句创建三张表:
学生基本信息表(studentinfo),课程信息表(course),成绩表(grade)
(1) 学生基本信息表(studentinfo)
字段
学号(Sno)
姓名(Sname)
性别(Ssex)
出生日期(Sbirthday)
联系电话(Stel)
入学日期(Stime)
(2)
课程信息表(course)
字段
课程编号(Cno)
课程名称(Cname)
课程学分(Credit)
(3) 成绩表(grade)
字段
课程编号(Cno)
学号(Sno)
成绩(grade)
数据类型
int
Char(10)
int
备注
(学号,课程编号)
作为成绩表的主键
成绩输入应在0-100
之间
数据类型
int
Char(50)
Char(2)
备注
主键
非空值
非空值
数据类型
Char(10)
Char(10)
Char(2)
datetime
Char(11)
smalldatetime
备注
主键
非空值
只能输入“男”或
“女”,默认值为“男”
非空值
3、分别给以上三张表添加5条记录。
(1)学生基本信息表(studentinfo)
Sno Sname
Ssex
1212010101
张小溪 男
1213010101
李大男 男
1214010101
陈茜茜 女
考生本人 考生本人考生本人
学号 姓名 性别
Sbirthday Stel Stime
2012-09-01
2013-09-01
2014-09-01
考生本人
入学时间
1991-01-01 null
1992-01-01 null
1993-01-01 null
考生本人
出生日期
null
(2) 课程信息表(course)
Cno
Cname Credit
001 3
数据库原理
002
7
C语言
003
网页设计与制作
3
004 2
体育
(3) 成绩表(grade)
Cno Sno grade
001 1212010101 80
001 90
考生本人学号
003 1212010101
75
003 1213010101 92
4、利用sql语句实现对任意一张表的增加、删除、修改、查询操作。
(1)查询student表中所有姓“李”的同学记录信息。
select * from
studentinfo
where Sname like '李%'
(2)查询年龄大于20岁的男学生的学号和姓名。
select Sno
as 学号,Sname as 姓名
from studentinfo
where
Ssex='男' and
(datediff(year,Sbirthday,getdate()))>=20
(3)在grade中检索成绩为空值的学生学号和课程号。
select Sno as
学号,Cno as 课程号
from grade
where grade=null
(4)查询既选修“001”课程,又选修“003”课程的所有学生姓名。
select
as 姓名
from studentinfo a,grade b
where =
and ='001'and ='003'
(5)查询选修“数据库原理”课程的所有学生姓名。
select as 姓名
from studentinfo a,course
b,grade c
where = and = and Cname='数据库原理'
(6)查询每门课程成绩最高的同学学号。
select Sno as 学号, as
成绩
from grade c,course b
WHERE
grade=(select max(grade) FROM grade c WHERE =)
(7)查询“数据库原理”课程的平均成绩。
select avg(grade)as
平均成绩
FROM course b,grade c
WHERE = and
='数据库原理'
(8)在基本表grade中修改“001”课程的成绩,让每位同学的成绩都加5分。
update grade
set grade=grade+5
WHERE Cno='001'
(9)统计每门课程的学生选修人数,查询结果按人数降序排列。
select as
课程编号,count(distinct )as 选课人数
from grade
join course on =
group by
order by
选课人数 desc
或者
select as
课程编号,count(DISTINCT ) as 选课人数
from grade c
group by
*having *
order by 选课人数 desc
(10)查询出有二门以上(含两门)课程不及格的学生姓名和学号。
select as
学号, as 姓名
from studentinfo a,grade b,course c
where = and = and grade<60
group by
,Sname
having count()>=2
5、创建视图,视图内容包括学号,姓名,性别,课程编号,课程名称,成绩。
create
view view_2
as
select as 学号, as 姓名, as
性别, as 课程编号, as
课程名称, as 成绩
from
studentinfo a,course b,grade c
where = and =
6、做完以上操作将所有sql编程语句和数据库文件上传至教师端。
二、考试要求
1、
学生在指定时间内做题,为了防止数据丢失,在计算机最后一个盘中新建一个文
件夹,以自己的
“学号_姓名”的方式命名,将所有编写程序和数据保存到其中。
2、 不可以带书,禁止使用U盘、
移动硬盘、存储卡、手机等存储设备,也不允许使
用网络,一经发现,按作弊处理,后果自负。