第一篇:数据库应用基础(第二版)第二章数据库的基本操作实验2.2之实验报告
四、实验2-2报告
1.通过上述实验,请回答下列问题
(1)LIST ____RECORD____=DISPLAY,而DISPLAY____ALL____=LIST。
(2)执行了LIST命令后,EOF()=___T__。
(3)执行了GOTOP命令后,BOF()=.T.,对吗?为什么?
答:不对,因为执行了GO TOP命令后,记录指针移动到表文件的第一条记录上,尔BOF()是测试记录指针是否在文件头的函数,首记录和文件头并不是同一个位置。
(4)如何用LIST/DISPLAY命令显示备注字段内容?
答:LIST是是滚动显示当前表中的指定记录,如果要显示备注型字段的内容,则必须在LIST命令中指定备注型字段名;DISPLAY分屏显示当前表中的指定数据。
(5)你认为用REPLACE对表文件记录进行修改,与用BROWSE命令修改有什么不同?
答:REPLACE命令是成批修改表字段值的非全屏幕编辑命令;而BROWSE命令具有现实和修改表内容的功能。
(6)SET DELETED ON/OFF语句对被逻辑删除的记录有何影响?
答:此语句制定标有删除的记录是否参与其他命令的处理。SET DELETED ON表示逻辑删除标志有效,既有删除标记的记录不参与处理;SET DELETED OFF表示逻辑删除标志无效,既有删除标记的记录参与处理。
(7)通过实验,请你归纳当EOF()为.T.时,RECNO()为多少?当BOF()为.T.时,RECNO()为多少?
答:当EOF()为.T.时,RECNO()为末记录;当BOF()为.T.时,RECNO()为文件头。
(8)用SORT命令建立排序文件后,紧接着用LIST命令却看不到排序结果,为什么?
答:因为还没有使用use打开对应文件
(9)建立索引文件时,有一个可选参数[UNIQUE],它有什么意义?你能举例说明吗?
答:[UNIQUE],当多个记录的<索引表达式>值相同时,只有其中第一个记录的值记入索引文件。
(10)请总结一下表的排序与表索引有什么不同。
答:索引是表记录排序的一种方法,同时生成一张索引表,而表的排序没有生成其他文件。
2.实验完成情况及存在问题
第二篇:数据库应用基础实验报告
电子科技大学计算机学院实验中心
电 子 科 技 大 学
实
验
报
告
一、实验一: 名称 创建数据库
二、实验学时: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<=100);alter table student add constraint check_student_sex check(sex='男' or sex='女');alter table student add constraint check_student_semail check(semail like '%@%');
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<60;(select sid from sc where cid='6001')intersect(select sid from sc where cid='6002');
八、实验结论、心得体会和改进建议:
用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后面只能定义与聚合函数有关的条件。可以通过添加子查询的方式,来实现多条件查询条件。
第三篇:数据库基础与应用实验报告
《数据库基础与应用》实验报告
实验名称 《ACCESS 之 窗体的操作》
一、实验目的:
1、掌握使用“窗体向导” 创建基于一个表或查询的“窗体”的方法。
2、掌握使用“窗体向导”创建“数据透视表窗体”的方法。
3、掌握使用“窗体向导”创建“图表窗体”的方法。
4、掌握“自动创建窗体:纵栏式”和“自动创建窗体:表格式”的方法。
5、掌握用“图表向导”和“数据透视表向导”创建窗体的方法。
6、掌握在窗体中输入和编辑数据的方法。
7、掌握窗体美化的方法和常用控件的使用。
8、掌握同时创建“主/子窗体”的方法。
二、实验要求:
1、阅读主教材中与本实验有关的知识以及本实验的内容和操作步骤。
2、任选一种方法在计算机上创建“窗体”。
3、任选一种方法在计算机上创建“主/子窗体”。
4、用“设计视图”创建一个主菜单窗体。
5、设置窗体外观(包括字体、背景、声音和添加控件等)。
6、对于有余力的同学,可以在计算机上用多种方法创建和设计“窗体”,并进行分析比较。
注意:此实验不需要书写实验报告,只需上机实际操作练习。
三、实验内容:
1、以 “教师情况一览表”为数据源,创建纵栏式“教师情况一览表窗体1”,并在该窗体中添加一条记录。
2、以“教师情况一览表”为数据源,创建表格式“教师情况一览表窗体2”。
3、以“教师任课表”为数据源,使用“窗体向导”创建“教师任课表窗体1”,并将窗体布局设为“数据表”,窗体样式设为“国际”。
4、以“教师任课表”为数据源,使用“图表向导”创建“教师任课表拼图”,并用“拼图”方式显示各系开课情况。
5、以“教师任课表”为数据源,使用“数据透视表向导”创建“各系教师任课数据透视表”,要求能统计每个系每个教师任课总学时数。
6、创建带有子窗体的窗体,其中主窗体以“教师情况一览表”为数据源,用于显示教师情况(显示“教师姓名”、“性别”、“职称”和“系(部门)ID”字段),子窗体包含在主窗体中,用于显示相应的教师任课情况(显
示“课程名称”、“学时”和“考试类型”字段);使用主窗体上的“记录定位器”可以在不同教师记录之间移动,此时子窗体中的教师任课情况随之发生变化。
7、设计“教师教学信息管理系统”主菜单窗体,该系统包括查询、更新和退出三个功能。当点击“查询”按钮时,进入“查询”子菜单;点击“更新”按钮时,进入“更新”子菜单;当点击“退出”按钮时,关闭主菜单“窗体”,返回到数据库窗口下。
注意:具体的实验报告内容请参看上机实验指导书。
第四篇:数据库上机实验8实验报告
上机实验八——完整性约束的实现
一、实习目的:
掌握SQL中实现数据完整性的方法,加深理解关系数据模型的三类完整性约束。
二、实习准备:
1.复习“完整性约束SQL定义”
2.完成习题四第10题中的各项操作的SQL语句。
3.了解SQL Server 中实体完整性、参照完整性和用户自定义完整性的实现手段
三、实习内容:
1.验证习题四第10题四个表结构的SQL语句。
表一:Sstudent CREATE TABLE Sstudent(Sno char(7)NOT NULL PRIMARY KEY, Sname VarChar(20)NOT NULL, Ssex Char(2)NOT NULL DEFAULT('男')check(Ssex IN('男','女')), Sage smallint check(Sage >14 AND Sage<65), Clno Char(5)NOT NULL REFERENCES Cclass(Clno)ON UPDATE CASCADE);
表二:Ccourse CREATE TABLE Ccourse(Cno Char(1)NOT NULL PRIMARY KEY, Cname VarChar(20)NOT NULL, Credit Smallint CHECK(Credit IN(1,2,3,4,5,6)));
表三:Cclass CREATE TABLE Cclass(Clno Char(5)NOT NULL PRIMARY KEY, Speciality VarChar(20)NOT NULL, Inyear Char(4)NOT NULL, Number Integer CHECK(Number>1 AND Number<100), Mointor Char(7)REFERENCES Student(Sno));
表四:Ggrade CREATE TABLE Ggrade(Sno Char(7)NOT NULL REFERENCES Student(Sno)ON DELETE CASCADE ON UPDATE CASCADE, Cno Char(1)NOT NULL REFERENCES Course(Cno)ON DELETE CASCADE ON UPDATE CASCADE, Gmark Numeric(4,1)CHECK(Gmark>0 AND Gmark<100), PRIMARY KEY(Sno,Cno));
2.SQL Server中提供了那些方法实现实体完整性、参照完整体和用户自定义完整性
答:实体完整性:是通过主码的定义(PRIMARY KEY)来实现的;
参照完整性:是利用外部码(REFERENCES)的说明,以限制相关表中某些属性的取值,当用户违反规则时,提供三种:RESTRICT(限制策略),CASCADE(级联策略),SET NULL(置空策略);
用户自定义完整性:check约束,对元组的CHECK约束
第五篇:SQL数据库实验报告 实验二
实验2SQL Server数据库的管理
1.实验目的(1)了解SQL Server 数据库的逻辑结构和物理结构的特点。
(2)掌握使用SQL Server管理平台对数据库进行管理的方法。
(3)掌握使用Transact-SQL语句对数据库进行管理的方法。
2.实验内容及步骤
(1)在SQL Server管理平台中创建数据库。
① 运行SQL Server管理平台,在管理平台的对象资源管理器中展开服务器。
② 右击“数据库”项,在快捷菜单中选择“新建数据库”菜单项。在新建数据库对话框的数据库名称文本框中输入学生管理数据库名studentsdb,单击“确定”按钮。
(2)选择studentsdb数据库,在其快捷菜单中选择“属性”菜单项,查看“常规”、“文件”、“文件组”、“选项”、“权限”和“扩展属性”等页面。
(3)打开studentsdb数据库的“属性”对话框,在“文件”选项卡中的数据库文件列表中修改studentsdb数据文件的“分配的空间”大小为2MB。指定“最大文件大小”为5MB。修改studentsdb数据库的日志文件的大小在每次填满时自动递增5%。
(4)单击“新建查询”打开查询设计器窗口,在查询设计器窗口中使用Transact-SQL语句CREATE DATABASE创建studb数据库。然后通过系统存储过程sp_helpdb查看系统中的数据库信息。
(5)在查询设计器中使用Transact-SQL语句ALTER DATABASE修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自动递增大小为1MB。
(6)在查询设计器中为studb数据库增加一个日志文件,命名为studb_Log2,大小为5MB,最大文件大小为10MB。
(7)使用SQL Server管理平台将studb数据库的名称更改为student_db。
(8)使用Transact-SQL语句DROP DATABASE删除student_db数据库。
3.实验思考
(1)数据库中的日志文件是否属于某个文件组?
(2)数据库中的主数据文件一定属于主文件组吗?
(3)数据文件和日志文件可以在同一个文件组吗?为什么?
(4)删除了数据库,其数据文件和日志文件是否已经删除?是否任何人都可以删除数据库?
(5)能够删除系统数据库吗?