实验报告
学院(系)名称:计算机科学与工程学院
姓名
班级
xxx
x 班
学号
20xxxxxx
专业 计算机科学与技术
实验
项目
实验一:认识 DBMS 与 SQL 数据操作
课程名称
数据库系统
实验时间
考 核
实验过程
SQL 语 句 正 确 性 及
实验报告质量(内
实验结果分析与
标 准
20 分
运行情况 40 分
容与格式) 30 分
特色创新 10 分
0661193
课程
代码
实验
地点
成绩
考核
内容
评价内容包括:
考勤与违纪、实
验准备情况、实
验课上表现、编
写程序情况、提
问等
评价 SQL 语句的正
确性及运行情况。
每个语句 2 分
○完整规范
○较完整规范
○一般
○内容不足
○无实验报告
○有实验分析、
总结和创新
○有实验分析或
创新
○无
教师签字:
1.实验目的
1) 了解 DBMS 安装,搭建实验平台, 熟悉各数据库的交互式 SQL 工具;
2) 熟悉通过 SQL 语言对数据库进行查询操作。
2.实验工具
MS SQL server2008/ MS SQL server2012
3.实验内容
1)表的创建:
① 创建一数据库 Temp,在数据库中创建教材中的 Student 表、Course 表和 SC 表。
② 向表中插入内容并设定表的主码、外码约束关系。
2)基于以上创建的表,完成如下基本 SQL 查询语句。
第 1页 共 13页
① 查询信息系和计算机系的学生,并按学生所在系和学号排序。
② 查询学生表中最小的年龄。
③ 查询课程名中包含“设计”的课程名。
④ 查询先行课程为空值的课程号、课程名及学分。
⑤ 查询李勇选修的数据库课程的成绩。
⑥ 查询平均成绩 80 分以上的学生的学号。
⑦ 求计算机系没有选修数据库课程的学生姓名。
⑧ 求至少选修了学号为 S1 所选修的全部课程的学生学号。
⑨ 求各系的系的学生人数,并将结果按学生人数的降序排序。
⑩ 查询选修了数据库课程并且成绩高于该门课程平均分的学生学号和成绩。
3)基于以上创建的表,利用 SQL 语句完成如下操作。
① 将学习了数据库课程的学生成绩加 5 分。
② 将选修了 2 号课程且成绩为空的选课记录删除。
③ 从课程表中删除在选课表中没有选课记录的课程记录。
④ 求各系的系名及男女生人数并将结果保存到另一个表中。
⑤ 将平均成绩 80 分以上的学生的学号、选学的课程数和平均成绩保存到另一个表中。
⑥ 创建一个视图,求选修了 2 号课程且成绩高于该门课程平均分的学生学号和成绩。
⑦ 创建用户 user1,将学生表 select 权限赋给用户 user1,然后以 user1 登录,检查权限情况。
⑧ 收回用户 user1 的对学生表的 select 权限,然后以 user1 登录,检查权限情况。
4.实验要求:
1)建立学生、课程、选课三个表;并在每个表中插入不少于 10 条相应记录;
2)课前提前准备,针对上述要求写书实验方案,包括 SQL 语句内容
3)上机调试 SQL 语句;
3)认真完成并按时提交实验报告,在实验报告中包括实验要求、实验过程、写出的 SQL 语句
及执行结果截图;
4)整理上机步骤,总结经验和体会,包括遇到了哪些问题,有哪些收获和感悟、有哪些发现
等。
【实验过程记录(关系表内容、SQL 语句内容、SQL 语句运行情况及心得体会等)】
(1)表的创建
第 2页 共 13页
第 3页 共 13页
(2)SQL 查询语句
①
排序默认为 ASC 升序,使用 DESC 为降序
②
第 4页 共 13页
使用聚集函数 MIN 查询最小值
③
查询结果为空
④
第 5页 共 13页
这里 IS 不能用=代替
⑤
联合三个表查询出李勇选修的数据库课程的成绩
⑥
第 6页 共 13页
按 Sno 的值进行分组,使用聚集函数 AVG 计算平均成绩
⑦
使用 NOT EXISTS 语句查询没有选修数据库课程的学生
第 7页 共 13页
⑧
使用 xyz 进行分层查询
⑨
使用 COUNT 函数进行计数
第 8页 共 13页