数据库实验报告

  • 格式:docx
  • 大小:1.10 MB
  • 文档页数:20

数据库原理与实践实验报告
1
南华大学

计算机科学与技术学院
实 验 报 告
( 2013 ~2014 学年度 第 2 学期 )

课程名称 数据库原理与设计
实验名称 数据库原理设计实验

姓名 赖淑琴 学号 ***********
专业 软件工程 班级 软件3班
地点 校内 教师 刘征海
数据库原理与实践实验报告

2
实验1 认识DBMS
一、实验题目
1. 利用管理工具创建数据库,表和表间的关系
2. 利用SQL语句创建数据库,表和表间的关系

二、实验要求
1. 使用SQl Server2012的管理工具进行可视化操作
2. 使用SQl语句在SQl Server2012进行代码操作
3. 熟练掌握实用工具和编写SQL语句两种方法

三、实验代码
1、利用管理工具创建数据库,表和表间的关系
数据库原理与实践实验报告

3
2、利用SQL语句创建数据库,表和表间的关系
(1)、创建数据库

(2)、创建表和表间关系
数据库原理与实践实验报告

4
(3)、录入表数据
数据库原理与实践实验报告

5
四、实验总结
在SQL Server2012中,由于可视化工具的使用,极大的方便了我们的操
作,但是这些操作的背后都是SQL语句,因此,在享受工具带来的方便的同时,
不可忽视对SQL语句的学习
数据库原理与实践实验报告

6
实验2 交互式SQL(1)
1、实验题目
数据库单表查询和多表连接查询
2、实验要求
(1)、掌握单表查询SELECT、FROM、WHERE 的用法,特别要掌握比较运算符、逻
辑运算符的使用
(2)、理解多表查询的概念;掌握多表查询的SELECT、 FROM、WHERE、JOIN子句
的用法,特别要求比较内连接、外连接的结果

3、实验代码
(1)、单表查询
①查询计算机系全体学生的信息


② 查询姓“李”的学生的学号和姓名。
数据库原理与实践实验报告

7
③ 查询课程表中先行课为空的课程名。

(4)、 查询考试成绩有不及格的学生的学号
⑤ 求选修了C1 课程或C2 课程的学生的学号及成绩。
数据库原理与实践实验报告

8
⑥ 查询全体计算机系学生的姓名及其年龄。

⑦ 查询计算机系在1986-1987 年之间出生的学生的姓名。
⑧ 查询姓“李”的前两个学生的学号和姓名。
⑨ 查询选修了两门以上课程的学生学号与课程数。
数据库原理与实践实验报告

9
⑩ 查询选修课程数大于等于2 的学生的学号、平均成绩和选课门数,并
按平均成绩降序排列。

(2)、多表连接查询
①查询选修了【数据库原理】的计算机系的学生学号和姓名。
数据库原理与实践实验报告

10
②查询每一门课的间接先行课(即先行课的先行课)。

③查询学生的学号、姓名、选修课程的名称和成绩。

④查询选修了课程的学生姓名。
数据库原理与实践实验报告

11
⑤查询所有学生的信息和所选修的课程。

⑥查询已被选修的课程的情况和所有课程的名字。
⑦列出学生所有可能的选修情况。
数据库原理与实践实验报告

12
⑧查找计算机系的学生选修课程数大于2 的学生的姓名、平均成绩和选课
门数,并按平均成绩降序排列

4、实验总结
在对单表进行操作时要注意where,group by,having ,order by的顺序问
题,在多表查询时应该注意要给表所取别名,每个表的主键以及表间的外键应
该多多注意。
数据库原理与实践实验报告

13
实验3 交互式SQL(2)
1、实验题目

数据库嵌套查询和组合查询

2、实验要求
掌握查询中嵌套查询和组合查询的操作方法,进一步加深对SELECT语句的理

3、实验代码
(1) 统计选修了【数据库原理】课程的学生人数。

(2) 查询没有选修【数据库原理】课程的学生信息。
(3) 查询其他系中比计算机系学生年龄都小的学生。
数据库原理与实践实验报告

14
(4) 查询被0602001 学生或0602002 学生所选修的课程的课程号(用UNION
组合查询与IN 条件查询两种方法实现)。

(5) 查询0602001 学生和0602002 学生同时选修的课程的课程号(用
INTERSECT 组合查询与EXISTS 嵌套子查询两种方法实现)。

(6) 查询被0602001 学生选修,但没有被0602002 学生所选修的课程的课程号
(用EXCEPT 组合查询与NOT EXISTS 嵌套子查询两种方法实现)。
数据库原理与实践实验报告
15
4、实验总结
在对表进行复杂查询时,一般有组合,嵌套两种方式实现,其中要留意组
合和嵌套之间的对应关系,同时EXISTS的使用较为复杂。
数据库原理与实践实验报告

16
实验4 交互式SQL(3)
1、实验题目

数据的更新

2、实验要求
熟悉插入、修改和删除SQL语句的用法
3、实验代码
① 向表StudentsYYXXXX 中插入(0601001,赵林, 男,1985-09-08,计算机)
的记录。

② 向SCYYXXXX 表中添加一个学生的选课记录,学号为0601001,所选的
课程号为C2。 SC表中有Sno、Cno、Grade 这3 个列。这里只知道学号和课程
号,不知道成绩值。
数据库原理与实践实验报告

17
③ 向表StudentsYYXXXX 中插入(0601002,张修雨,default)记录,该记
录的数据中default 表示默认值‘男’,其他数据表示空值。

④ 用CREATE 语句建立表StudentBAK1YYXXXX,包含(与Students 的
Sno、Sname、Sdept 相同)3 个字段, 然后用INSERT SELECT 语句实现向
StudentBAK1YYXXXX 添加StudentsYYXXXX 表中的计算机系学生的学号、姓
名、所在系的信息。

⑤ 用 SELECT...INTO 语句实现把StudentsYYXXXX 表中1986 年后(包含
1986 年)出生的学生的学号、姓名存储到一个新表StudentBAK2YYXXXX。
数据库原理与实践实验报告
18
⑥ 将姓名为【赵林】的同学的所在系改为【机电系】,爱好改为【足球】。
⑦ 将选修了课程名为【数据库原理】的学生成绩加5 分。
数据库原理与实践实验报告

19
⑧ 将StudentCourseYYXXXX 数据库的StudentBAK1YYXXXX 表中所有姓赵
的同学删除。

⑨ 删除计算机系选修成绩不及格的学生选修记录。
数据库原理与实践实验报告

20
⑩ 将StudentCourseYYXXXX 数据库的StudentBAK2YYXXXX 表中的所有行
删除。

4、实验总结
使用SQL对表进行增加,删除,修改等操作要留意表与表之间的关联,在执
行完SQL语句后应该及时刷新数据库内容,否则不会显示表的增加或者表的改
变。