数据库原理实验报告
学院计算机学院
专业软件工程
班级08级(4)班学号3108007XXX 姓名XXX 指导教师胡欣如
(2011年6 月)
实验一数据库及基本表的建立
一、实验目的
1、掌握SQL SERVER的查询分析器和企业管理器的使用;
2、掌握创建数据库和表的操作;
二、实验内容和要求
1、分别使用SQL语句、企业管理器(Enterprise Manager)创建数据库;
2、使用SQL语句、企业管理器(Enterprise Manager)创建数据库表;
三、实验主要仪器设备和材料
1.计算机及操作系统:PC机,Windows 2000/xp;
2.数据库管理系统:SQL sever 2000/2003/2005;
四、实验方法、步骤及结果测试
创建一个教学管理数据库SC,其描述的信息有:学生信息、课程信息、教师信息、学生选课成绩、授课信息、班级信息、系部信息、专业信息。
创建:student表(学生信息表)、course表(课程信息表)、teacher表(教师信息表)、student _course表(学生选课成绩表)、teacher_course表(教师上课课表)等。
题目1、创建数据库:
题目2、创建基本表
题目4、利用查询分析器修改上述各表。
(1)、用INSERT语句向各个表中插入数据录入5 条记录。录入时注意体会外键约束。实现代码及截图:
共8组(共8个表)
(2)、用UPDATE语句更改student表中数据;实现代码:
update student
set sname='凹凸曼'
where s_no='6978';
select*from student;
(3)、用DELETE语句删除student表中数据;实现代码:
delete
from student
where s_no='6979';
五、实验中出现的问题及解决方案
出现的问题主要有几个:
1、用SQL语句建数据库、建表不是太熟悉,不过通过查看相关的书籍资料,都得到了很好的解决;
2、建这8个表的先后顺序问题。由于主外键的约束,建表的顺序不能随便调乱,理清了各表的关系后,就可以顺序建表了,为了避免错误,我就采用了把主外键约束放到建表后再用修改基本表语句声明。
六、思考题
1、说明数据库中的表和数据文件的关系。
数据文件的默认文件扩展名是.mdf。它将数据存储在表和索引中,包含数据库的启动信息,还包含一些系统表,这些表记载数据库对象及其他文件的位置信息。
2、数据库中的日志文件能否单独修改?
不可以
实验二查询数据库
一、实验目的
熟悉SQL语句的基本使用方法,学习如何编写SQL语句来实现查询
二、实验内容和要求
使用SQL查询分析器查询数据,练习查询语句的使用,掌握SELECT 语句的完整结构,包括简单查询、嵌套查询、连接查询等基本实现方法。
三、实验主要仪器设备和材料
1.计算机及操作系统:PC机,Windows 2000/xp;
2.数据库管理系统:SQL sever 2000/2003/2005;
四、实验方法、步骤及结果测试
实验题目:
1、对实验一建立的数据库表进行查询
简单查询:
题目(1)、查询全部学生的学号、姓名、性别和出身年月日。
题目(2)、查询全体学生的学号、姓名和年龄
题目(3)、查询院系编号为‘510000’(计算机学院)的全部学生的学号、姓名、性别和出身年月日。
实现代码及查询结果截图:
题目(4)、查询?计算机科学与技术?专业(专业代码为‘080605’)并且班级代码为‘0201’的学生的学号、姓名和出生日期。
题目(5)、查询在‘1983/01/10’以后出生的计算机学院(院系编号为‘510000’)学生的学号、姓名、性别和出身年月日。
题目(6)、查询全部学生的学号、姓名、性别和出身日期结果按照出生日期的升序排列。
连接查询:
题目(1)、查询全部学生的学号、姓名、性别、所在院系名称和专业名称
题目(2)、查询选修了课程1(上课编号)的学生的学号、姓名、专业名称和这门课的成绩
题目(3)、查询学生不及格的情况列出不及格学生的学号、姓名和不及格的课程名称。
嵌套查询:
题目(1)、查询没有选修了课程1的学生,列出学生的学号和姓名。
实现代码及查询结果截图:
题目(2)、查询每门课都是80分以上的学生的学号与姓名。
2、选用Northwind数据库进行查询
题目(1)、对NothWind. Products表进行简单查询;在查询分析器在窗口下用SELECT 语句完成单表查询:
Products的详细记录;
查询所有
查询单价(UnitPrice)小于20的Products;
查询Products中最高单价(UnitPrice)是多少;
题目(2)、在查询分析器在窗口下用SELECT语句完成连接(嵌套)查询:查询所有被订购过得Products的ProductsID和ProductName;
查询所有被CustomerID为AROUT客和订购过的ProductsID和ProductName;实现代码及查询结果截图:
查询所有被CustomerID 为AROUT 客和订购过,
且单价在20 以上的ProductsID 和ProductName ;
查询Products 中单价(UnitPrice )最高的Products 的资料;
实现代码及查询结果截图:
五、实验中出现的问题及解决方案
查询相对创建数据库和基本表等操作比较简单,基本没什么问题。
六、思考题
1、连接查询分哪几类?各有什么特点?
分为(1)等值与非等值连接查询
连接条件中的各连接字段类型必须是可比的,但名字不必相同。
(2)自身连接
(3)外连接
(4)复合条件连接
2、进行连接查询时应注意哪些问题?
为了避免混淆,属性名前应加上表名前缀
实验三、创建和使用视图、索引、存储过程
一、实验目的
1、掌握视图、索引、存储过程的定义、索引、存储过程的工作原理;
2、掌握创建视图、索引、存储过程的SQL语句的用法;并能够熟练利用视图向表中插入、删除和修改数据。
3、掌握使用视图来查询数据。
二、实验主要仪器设备和材料
1.计算机及操作系统:PC机,Windows;
2.数据库管理系统:SQL Server 2000;SQL Server 2005
三、实验方法、步骤及结果测试
(一)、视图
实验题目:(写出实验题目1-8)
1、建立“计算机学院”的学生基本情况视图ies_student_view,该视图包括计算机学院所有学生的学号、姓名、性别、出身年月、专业名称。
2、执行ies_student_view视图并观察结果。
3、建立课程3108(上课编号)的学生名册的视图,该名册包括学生的学号、姓名、专业名称和这门课的成绩;并查询结果。
4、建立统计不及格情况的视图,列出不及格学生的学号、姓名和不及格的课程代码;
5、执行视图并观察结果。
6、修改视图ies_student_view,使该视图包括所有学生的学号、姓名、性别、出身年月、学院名称、专业名称。
7、执行ies_student_view视图并观察结果。
8、删除视图ies_student_view。并查询结果。