数据库应用基础实验报告_数据库实验报告正式版

2020-02-27 其他范文 下载本文

数据库应用基础实验报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“数据库实验报告正式版”。

电子科技大学计算机学院实验中心

电 子 科 技 大 学

一、实验一: 名称 创建数据库

二、实验学时:4

三、实验内容和目的:

实验要求学生掌握创建数据库的方法及相关操作,并且创建一个包含五个表的数据库STUD:系别代码表 表名dep,教师表 表名teacher,学生表 表名stud,课程表 表名course,选课表 表名sc。

四、实验原理:

本实验主要是“ create table 表名

(列名1 类型1(not)null,列名2 类型2(not)null,……,primary key(列名));”语句的应用,来实现表的建立。同时还可能用到 “drop table 表名”,“alter table 表名 drop column 列名”等语句。

五、实验器材(设备、元器件)

操作系统:Windows 2000/XP 编程环境:SQL Server Management Studio

六、实验步骤:

具体步骤见实验指导书。

七、实验数据及结果分析:

create table COURSE(CID VARCHAR(8)not null,CNAME VARCHAR(30)not null,CID_PRE VARCHAR(8),CREDITS NUMERIC(3,1)not null,primary key(CID));

create table DEP(DEPID VARCHAR(8)not null,DEPNAME VARCHAR(20)not null,primary key(DEPID));create table SC(SID VARCHAR(11)not null,CID VARCHAR(8)not null,TID varchar(8)not null,SCORE INTEGER,primary key(sid,cid,tid));create table STUDENT(SID VARCHAR(11)not null,SNAME VARCHAR(8)not null,sex char(2)not null,DEPID VARCHAR(20),BIRTHD DATETIME,SEMAIL VARCHAR(20),HOMEADDR VARCHAR(40),primary key(SID));create table TEACHER(TID varchar(8)not null,TNAME varchar(8)not null,TITLE VARCHAR(10),DEPID VARCHAR(20),primary key(TID));

八、实验结论:

心得体会和改进建议:确实可以用create table语句实现数据库表的创建,一开始就要想好各个表的分配和各种定义的合理性,避免以后大幅度的改动表。

一、实验二: 名称 备份和恢复

二、实验学时:4

三、实验内容和目的:

向数据库中添加样本数据,学习DB2数据库的恢复和备份。

四、实验原理:

利用分离与附加实现数据的备份与恢复。用“insert into 表名 values(列名1 类型1(not)null,列名2 类型2(not)null,……)”语句实现向表中添加数据。

电子科技大学计算机学院实验中心

五、实验器材(设备、元器件)

操作系统:Windows 2000/XP 编程环境:SQL Server Management Studio

六、实验步骤:

用附加命令载入数据库,然后在相应新建查询中用insert语句输入准备的数据。

七、实验数据及结果分析:

insert into dep values('601','计算机科学与工程');insert into dep values('602','软件工程');insert into dep values('603','信息安全');insert into dep values('604','IS');

insert into teacher values('T01','教师1','教授','601');insert into teacher values('T02','教师2','工程师','601');insert into teacher values('T03','教师3','副教授','602');insert into teacher values('T04','教师4','讲师','602');insert into teacher values('T05','教师5','高工','603');insert into teacher values('T06','教师6','高工','603');

insert into course values('6001','计算机组成原理',null,3);insert into course values('6002','操作系统','6001',3);insert into course values('6003','数据结构',null,3);insert into course values('6004','数据库原理',null,3);insert into course values('6011','数据库应用开发',null,2);insert into course values('6005','Computer Network',null,2);insert into course values('6006','Objected JAVA',null,2);insert into course values('6007','Software Engeneering','6006',2);insert into course values('6008','UNIX Basic',null,2);insert into course values('6009','UNIX OS Design','6008',2);

insert into student values('601','张1','男','602','1990-10-20','587627416@qq.com','四川');insert into student values('2406010103','张2','女','601','1991-06-10','123627416@qq.com','湖南');insert into student values('2406030101','王1','男','603','1990-05-06','4827416@qq.com','新疆');insert into student values('2406020105','王2','女','602','1990-07-15','90627416@qq.com','云南');insert into student values('2406030110','吴1','女','603','1991-08-14','367627416@qq.com','广西');

insert into sc values('601','6002','T03',50);insert into sc values('2406010103','6002','T02',60);insert into sc values('2406030101','6001','T01',70);insert into sc values('2406020105','6004','T04',80);

insert into sc values('2406030110','6006','T06',90);

八、实验结论、心得体会和改进建议:

插入数据要仔细,以免不必要的麻烦。

一、实验三:

名称

数据库的完整性

二、实验学时:4

三、实验内容和目的:

通过设置表的检查约束、外键约束体会数据库完整性的含义,约束条件下数据修改操作的限制,以及实现修改操作的技巧。

四、实验原理:

用“alter table 表名 add constraint 约束名 check 条件”,“alter table 表名1 add constraint 外键名 foreign key(列名)references 表名2(列名)”分别实现检查约束与设置外键约束的功能。以及用“delete from 表名 where 条件”,“update 表名 set 列名=()where 条件”来删除和修改满足条件的数据。

五、实验器材(设备、元器件)

操作系统:Windows 2000/XP 编程环境:

电子科技大学计算机学院实验中心

SQL Server Management Studio

六、实验步骤:

用附加命令载入数据库,然后在相应新建查询中输入相应代码。

七、实验数据及结果分析:

alter table sc add constraint fk_sc_student_sid foreign key(sid)references student(sid);alter table sc add constraint fk_sc_teacher_tid foreign key(tid)references teacher(tid);alter table sc add constraint fk_sc_course_cid foreign key(cid)references course(cid);

alter table student add constraint check_student_sname check(sname is not null);alter table sc add constraint check_sc_course check(score>=0 and score

delete from sc where(sid='601');update student set sid='20060601' where(sid='601');insert into sc values('20060601','6002','T03',50);

八、实验结论、心得体会和改进建议:

注意按一定的习惯来书写约束名和键名,以便利于修改和删除。

一、实验四: 名称 数据的修改

二、实验学时:4

三、实验内容和目的:

练习UPDATEV、DELETE命令的使用,实现对数据的修改和删除。

四、实验原理:

用“delete from 表名 where 条件”,“update 表名 set 列名=()where 条件”来删除和修改满足条件的数据。

五、实验器材(设备、元器件)

操作系统:Windows 2000/XP 编程环境:SQL Server Management Studio

六、实验步骤:

用附加命令载入数据库,然后在相应新建查询中输入相应代码。

七、实验数据及结果分析:

update dep set depname='Information' where(depname='IS');delete from sc where(sid like '%601%' and cid='6002');delete from sc where(sid like '%603%' and cid='6001');delete from sc where(sid='2406010103');update student set sid='2406030102' where(sid='2406010103');insert into sc values('2406030102','6002','T02',60);

八、实验结论、心得体会和改进建议:

对于要修改和删除的数据需要注意主外键。比如对于要修改被引用外键的数据,需要先删除被引用外键的数据,才能顺利修改或删除。

电子科技大学计算机学院实验中心

一、实验五: 名称 简单查询、多表查询

二、实验学时:4

三、实验内容和目的:

练习用SELECT查询语句,设置查询条件,实现单表查询。练习使用SELECT语句从多个表中查询数据,表的内连接、左外连接、右外连接的使用以及设置连接条件,理解连接条件和查询条件的目的和功能上的区别。

四、实验原理:

用“select 列名1(as 列名),列名2…… from 表名 where 查询条件”来实现有条件的简单查询。用“select * from 表名1 join 表名2 on 连接条件 having(where)查询条件”语句来实现多表连接查询。以及用union,except,intersect来实现查找结果的并、差、交操作。还有用“datediff(year,生日,现在日期)”语句实现年龄的计算。

五、实验器材(设备、元器件)

操作系统:Windows 2000/XP 编程环境:SQL Server Management Studio

六、实验步骤:

用附加命令载入数据库,然后在相应新建查询中输入相应代码。

七、实验数据及结果分析:

select sname from student where(datediff(year,birthd,'2011-10-7')between 20 and 22);select sname,datediff(year,birthd,'2011-10-7')as year,depname from student join dep on student.depid=dep.depid where datediff(year,birthd,'2011-10-7')between 20 and 22;select * from teacher where title='副教授';select sid,sname,semail from student where sname like '张%';select sid,cid from sc where score is not null;select student.*,sc.cid,sc.tid,sc.score from student join sc on student.sid=sc.sid;select student.*,cname,tname,score from((sc join student on student.sid=sc.sid)join teacher on teacher.tid=sc.tid)join course on course.cid=sc.cid where score

八、实验结论、心得体会和改进建议:

用union,except,intersect实现查询结果的并、差、交时,表的列数必须一样,结果列名显示前一个表的。查询时,是根据引用的表及算法得出的一个集合,原来的表没有任何变化。并且可以用“as 新列名”为查询结果的列重新命名。多表连接查询时,因为会有两行的连接条件,不要用它作查询条件。还有查询项可以是引用表的表达式或函数,查询条件一样可以。

一、实验六: 名称 分组统计查询

二、实验学时:4

三、实验内容和目的:

练习使用聚集函数count(),max(),min(),avg(),sum()等在SQL命令中实现统计功能。使用GROUP BY

电子科技大学计算机学院实验中心

子句实现分组查询,以及聚集函数在分组查询中的应用。体会分组查询的功能特点。

四、实验原理:

用“select 列名,聚集函数 from 表名 group by having查询条件”或“select 列名,聚集函数 from 表名 where 包含‘列名’的的查询条件”来实现分组查询。

五、实验器材(设备、元器件)

操作系统:Windows 2000/XP 编程环境:SQL Server Management Studio

六、实验步骤:

用附加命令载入数据库,然后在相应新建查询中输入相应代码。

七、实验数据及结果分析:

select count(*)as '选修数据库课程的人数' from sc where cid='6003';select sid as '学号',count(cid)as '选课门数' from sc group by sid;select sid as '学号',sum(score)as '总成绩' from sc group by sid;select count(sid)as '选修数据库课且成绩分以上人数' from sc where sid in(select sid from sc where cid='6003' and score>=60);select score as '数据库课最高成绩',sname as '姓名'from sc join student on sc.sid=student.sid where score=(select max(score)from sc group by cid having cid='6003');select cname as '课程名',avg(score)as '平均成绩' from sc join course on sc.cid=course.cid group by cname;select cname as '课程名',count(sid)as '选课人数' from sc join course on sc.cid=course.cid group by cname;select sname as '选修5门课以上学生姓名',semail from student where sid in(select sid from sc group by sid having count(cid)>=5);

八、实验结论、心得体会和改进建议:

分组查询作为查询主体时,只能显现分组列名和聚集函数部分。把他放在条件位置,作为查询条件集合时,能够实现多列甚至是多表连接的多列的显示。另外聚集函数可以不显示,而作为查

询条件出现,跟在having后。

一、实验七: 名称 集合操作、子查询

二、实验学时:4

三、实验内容和目的:

IN、EXISTS、NOT EXISTS 运算在WHERE子句中的应用;静态集合和由SELECT命令产生的动态结果集运算。

四、实验原理:

子查询即把查询的结果当做另一个查询的条件,通过嵌套语句来实现复杂的查询。因为子查询的结果很可能是一个集合,需要运用集合之间的运算,比如in、exists、not exists的运用。

五、实验器材(设备、元器件)

操作系统:Windows 2000/XP 编程环境:SQL Server Management Studio

六、实验步骤:

用附加命令载入数据库,然后在相应新建查询中输入相应代码。

七、实验数据及结果分析:

select sname as '姓名',datediff(year,birthd,'2011-10-7')as '年龄' from student where birthd>(select birthd from student where depid='603' and sid='2406030101');

电子科技大学计算机学院实验中心

select sname,depname,semail from student join dep on student.depid=dep.depid where sid in((select sid from student)except(select sid from sc));select sname from student where sid in(select sid from sc group by sid having count(cid)=(select count(cid)from course));select sname from student where sid in(select sid from sc where cid='6002' intersect select sid from sc where cid='6001');

八、实验结论、心得体会和改进建议:

对于子查询是集合的情况,是不能跟在=,>,等条件运算符后面的。对于聚集函数本身是查询结果时,where和having后面只能定义与聚合函数有关的条件。可以通过添加子查询的方式,来实现多条件查询条件。

《数据库应用基础实验报告.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
数据库应用基础实验报告
点击下载文档
相关专题 数据库实验报告正式版 实验报告 数据库 基础 数据库实验报告正式版 实验报告 数据库 基础
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文