中南财经政法大学数据库实验报告.docx
- 文档编号:12488083
- 上传时间:2023-04-19
- 格式:DOCX
- 页数:23
- 大小:105.98KB
中南财经政法大学数据库实验报告.docx
《中南财经政法大学数据库实验报告.docx》由会员分享,可在线阅读,更多相关《中南财经政法大学数据库实验报告.docx(23页珍藏版)》请在冰豆网上搜索。
中南财经政法大学数据库实验报告
《数据库及其应用》实验报告
实验序号:
B0901000-02实验项目名称:
数据库设计及数据库创建与应用
学 号
姓 名
专业、班
实验地点
现教中心
指导教师
时间
2012年5-6月
一、实验目的及要求
(一)实验项目1:
数据库和表
1.熟悉Access中数据库及表的概念。
了解并掌握建立数据库、表和关系的过程。
2.熟悉数据库窗口的界面特点,掌握数据库窗口几种设置方法。
3.理解并掌握关系数据库完整性基本概念。
掌握完整性的设置方法。
4.掌握字段属性的概念和一些属性的用途。
并掌握一些字段属性的设置方法。
5.了解Access数据表视图的一些基本功能。
(二)实验项目2:
查询
1.掌握Access表达式的基本概念。
了解不同类型数据的常量、参数、运算与函数的使用。
2.理解查询对象的意义和建立方法。
3.掌握SQL语言中SELECT语句的主要应用。
4.掌握SQL的插入、更新、删除操作命令的基本应用。
理解Access动作查询。
5.了解SQL定义数据表的基本方法。
6.掌握一般选择查询的操作应用;理解并掌握交叉查询的应用;理解参数查询的意义。
(三)实验项目3:
数据交换
1.了解什么是Access的外部数据,理解Access与外部数据交换的意义和作用。
2.理解在Access数据库系统中使用外部数据的两种方法及特点:
链接、导入。
3.掌握导出数据库中表或查询对象到文本文件和EXCEL的方法。
4.掌握从文本文件和EXCEL表导入到表的方法。
二、实验设备(环境)及要求
PC机,WindowsXP,Access2003
参考教材:
《数据库及其应用(Access及Excel)学习与实验实训教程》。
三、实验内容要求
(实验操作内容和步骤写在表格后面、回答问题写在表给内)
实验项目1:
数据库设计及数据库与表的创建与操作
(一)数据库与表的设计与创建
1.给定如下数据分析,进行概念设计与逻辑设计。
即设计系统的E-R模型并转换为关系模型。
(数据参见附表)。
某学校设计学生教学管理系统。
学生实体包括学号、姓名、性别、生日、民族、籍贯、简历、登记照,每名学生选择一个主修专业,专业包括专业编号和名称,一个专业属于一个学院,一个学院可以有若干个专业。
学院信息要存储学院号、学院名、院长。
教学管理还要管理课程表和学生成绩。
课程表包括课程号、课程名、学分,每门课程由一个学院开设。
学生选修的每门课程获得一个成绩。
2.数据库结构设计
指定数据库文件的名称,并为设计好的关系模型设计表结构。
数据库文件保存在“E:
\教学管理\”文件夹中。
3.定义数据库文件
定义存放路径,和数据库文件。
写出操作步骤。
可包括必要的截图。
4.定义数据库中各表
根据事先设计好的结构,分别定义各表、字段名、字段属性。
重复的步骤可简化。
5.定义表之间的关系
当所有表都定义好后,定义各表之间的关系。
6.输入表记录
当所有表建立好后,可开始输入记录。
简要说明输入的操作。
(二)Access数据库窗口基本操作
1.设置教学管理数据库窗口中表对象列表窗口的显示格式为“详细信息”
写出操作步骤。
2.隐藏和重新显示教学管理数据库窗口
写出操作步骤。
3.定义一个“学生与成绩”组,将“学生”、“成绩”表放置到该组中
写出创建组的操作和放置对象的操作。
(三)创建表时的完整性设置
1.定义主键,实现实体完整性的操作
每个表都可以定义主键。
在Access中为教学管理数据库的各表定义主键。
当一个表没有合适的字段作为主键时,一般会增加一个“id”字段。
试在“成绩”表中增加一个“成绩id”字段,并定义为“自动编号”型,然后定义其为主键。
2.进行设置参照完整性的操作
在定义的有关系的表上,为关系设置参照完整性。
3.通过不同方式实现用户定义的完整性的操作
用户定义的完整性,是指由用户规定的对于表中数据取值的约束。
在Access表定义时,除定义主键和关系外,通过多种方式设置用户定义完整性。
对教学管理数据库中必要的用户定义完整性进行设置和定义。
(四)字段属性定义与应用
1.字段显示格式设置
①使“学生”表中的“民族”字段以黄色显示。
②使“学生”的生日以中文方式、红色显示。
③使“成绩”表中成绩的显示为3位整数和一位小数,蓝色。
2.字段输入掩码设置
在定义“学生”表时,由于“学号”是8位文本,且每位都由0~9组成,因此,要在定义“学号”字段时规定每一位的输入都必须是数字。
其他如课程表的“课程号”字段、专业表的“专业号”字段等都可以定义类似的输入掩码。
3.定义字段查阅方法
“查阅”控件与字段绑定,可以提示字段的输入。
为“专业”表的“专业类别”定义查阅控件绑定。
为“专业”表的“学院号”字段设计“查阅”控件。
数据从“学院”表中来,显示“学院号”和“学院名”两列数据,采用列表框。
(五)数据表视图下数据记录的显示与操作
1.输入操作
利用数据表视图进行输入操作,输入的数据应该满足完整性的要求。
而如果是有关系的表中的子表,外键输入时还要与主键值对应。
根据给定的数据,为数据库中各表(重点介绍一到两个表)输入记录。
2.修改和删除操作
修改“课程”表,将“运筹学”所在记录的学分增加1分,将开设学院变为“工商管理学院(05)”。
删除“课程”表中“美术设计”课程。
3.数据表视图中的设置
数据表视图是浏览表中数据的界面,可以做不同的设置,以获得不同的效果。
①数据表视图中父子表的展开。
②按照指定的字段排序浏览。
在“成绩”数据表视图中,按照成绩的大小排列。
③在学生表中只显示女生数据记录。
实验项目二:
查询
(一)SQL视图中表达式练习
1.进入SQL视图及在不同视图间切换
在Access中进入查询的设计视图并在查询的不同视图之间切换。
2.不同类型数据的表达式运算
在SQL视图中分别输入以下命令并运行,对于参数自己输入数据。
查看并写出各表达式运算结果。
SELECT-5.12^2+(17mod3);
SELECT"Hello"+",World!
",LEFT("清华大学出版社",2)+RIGHT("清华大学出版社",3);
SELECT"你毕业的年份是",VAL(LEFT([你的学号],4))+4;
SELECT"现在是"+STR(YEAR(DATE()))+"年","现在的时间是:
"+CSTR(TIME());
SELECT"张三">"李四","ABCD"<"abcd",(DATE()-#1992-10-8#)>1000;
(二)SQL命令进行查询和操作
1.练习SQL查询的SELECT语句
启动教学管理数据库,在数据库窗口对象栏中单击“查询”,然后进入SQL视图。
在“SQL视图”中输入以下SELECT命令,查看执行结果,并仔细体会查询的实现。
①查询“学院”、“专业”、“学生”完整数据。
SELECT*
FROM((学院INNERJOIN专业ON学院.学院号=专业.学院号)
INNERJOIN学生ON专业.专业号=学生.专业号);
②查询“工商管理”专业所有女生信息。
SELECT专业,学生.*
FROM专业INNERJOIN学生ON专业.专业号=学生.专业号
WHERE专业.专业="工商管理"AND学生.性别="女";
③查询平均成绩在80分以上的各位学生的学号、姓名和平均分。
保存为查询对象,对象名“优秀学生”。
SELECT学生.学号,姓名,AVG(成绩)AS平均分
FROM学生INNERJOIN成绩ON学生.学号=成绩.学号
GROUPBY学生.学号,姓名
HAVINGAVG(成绩)>=80;
单击工具栏保存按钮,弹出“另存为”对话框,输入“优秀学生”,单击“确定”按钮。
④查询没有学生数据的专业编号和专业。
SELECT专业号,专业
FROM专业
WHERE专业号NOTIN(SELECT专业号FROM学生);
⑤查询“湖北”籍1988年以后出生的学生信息。
SELECT*
FROM学生
WHERE籍贯LIKE"湖北*"AND生日>=#1988-1-1#;
⑥查询选课人数最多的课程的课程号、课程名。
SELECTTOP1课程.课程号,课程名
FROM课程INNERJOIN成绩ON课程.课程号=成绩.课程号
GROUPBY课程.课程号,课程名
ORDERBYCOUNT(*)DESC;
2.练习SQL的插入、更新、删除操作命令
①在课程表中插入一门新课,数据如命令所示。
INSERTINTO课程
VALUES("06020101","会计学原理",3,"06");
②将“法学院(04)”开设课程的学分增加1分。
UPDATE课程
SET学分=学分+1
WHERE学院号="04"
③删除“信息学院(09)”开设的没有学生选修的课程。
DELETEFROM课程
WHERE学院号="09"AND课程号NOTIN(SELECT课程号FROM成绩)
3.创建“教师”表,包括:
工号、姓名、性别、生日、职称、基本工资、学院号。
写出创建命令。
(三)选择查询操作
1.进入查询设计视图进行交互式选择查询设置
启动教学管理数据库。
①查询“专业”表,显示开设的所有专业涉及的学科门类。
②查询各专业学生的人数。
③查询没有选课的男学生学号、姓名,即成绩表中没有记录的学生数据。
2.进行交叉表查询
将学生的“学号”和“姓名”作为行标题,“课程名”作为列标题,成绩作为交叉数据,生成交叉表。
3.进行参数查询
通过参数查询指定日期以后出生的某个民族的学生信息。
(四)动作查询操作
1.生成表查询操作练习
将“查询平均成绩在80分以上的各位学生的学号、姓名和平均分”的结果生成新表,表名“优秀学生名单”。
2.删除查询操作
删除“优秀学生名单”表中,平均分在85分以下的记录。
3.追加查询操作
将平均分在80~85分之间的学生及成绩数据加入“优秀学生名单”表,
4.更新查询操作
将没有学生选修的课程的学分减少1分。
写出以上要求的操作步骤并截取必要的图片。
实验项目三:
数据交换
(一)导出操作
1.在“教学管理”数据库中创建一个查询并保存。
查询的名称为“学生成绩单”。
查询的结构为:
学号、姓名、专业、课程号、课程名、成绩。
2.将“学生成绩单”查询导出为文本文件,字段值之间用逗号作为分隔符,文本型数据不要加引号。
文本文件要包括字段名。
3.将“学生成绩单”查询导出到桌面EXCEL文件“学生成绩表”中。
写出以上操作的主要过程。
(二)导入操作
1.将上面实验产生的文本文件导入教学管理数据库中作为表对象。
命名为“学生成绩单”。
并为各字段列指定合适的类型。
2.上面实验产生的EXCEL文件“学生成绩表”导入教学管理数据库中作为表对象。
命名为“学生成绩表”。
并为各字段列指定合适的类型。
产生表后,指定学号、课程号为主键。
写出以上操作的主要过程。
四、回答问题
(一)实验项目1
1.Access存储数据时,用到几个数据库文件?
扩展名是什么?
答:
如果不考虑页的存储的话,只有一个数据库文件,扩展名为mdb。
2.设计ER模型、关系模型、数据库及表结构,分别属于数据库设计中的什么步骤?
答:
分别属于概念设计、逻辑设计、物理设计。
3.在表结构设计中,应该包含哪些内容?
答:
包括字段名、数据类型、字段属性。
。
4.在本实验设计中,共使用了哪些数据类型?
答:
文本型、日期/时间型、备注型、数字型、OLE对象型、字节型、单精度型等。
5.定义表之间的关系时,“实施参照完整性”的意义是什么?
在“编辑关系”对话框中选中或者撤销“级联更新相关字段”复选框,对于数据表的操作有何影响?
答:
(1)当定义了表之间的关系,实施参照完整性的话,当子表插入记录时,access会检验外键值是否具有对应的主键值,如果不存在的话,就不允许插入。
(2)选中了级联更新后,当修改父表主键数据时,同时也会修改子表中对应的外键值;反之,如果不选的话就不会同时更新了。
6.建立表的关系,是否要求发生关系的两个字段必须同名?
答:
不一定同名,但是必须具有相同的属性,也就是主键与外键互相对应。
7.在定义学生表的“性别”字段时,同时定义了字段的“有效性规则”,对输入学生表的记录有什么影响?
答:
定义了字段的“有效性规则”起到对记录的值域的约束作用,使记录只能在约束的条件下输入,可以达到减少错误的目的。
8.如何输入学生照片?
答:
在设计视图时将表中的“登记照”类型定义为OLE对象,选择“插入”到“对象”命令即可。
9.如何理解“收藏夹”,试说明“收藏夹”与组之间的异同。
答:
“收藏夹”是ACCESS系统自动定义的一个项目,它是一个特殊的组,它与组的功能相同,但是不能删除。
10.打开数据库文件时,有哪几种可选择的方式?
一般默认方式是什么?
如果要将默认方式设置为“独占”如何实现?
答:
(1)可选择方式有四种,分别是“打开”、“以只读方式打开”、“以独占方式打开”、“以独占只读方式打开”。
(2)一般默认方式是“打开”。
(3)单击工具栏中的“打开”按钮,弹出对话框,然后确定文件位置并选中文件,在“打开”按钮下拉菜单中选择“以独占方式打开”这样就可以了。
11.在“学生”表的设计器中,选择“学号”字段,然后单击工具栏“主键”按钮,以便取消主键,这时会出现什么情况?
为什么?
答:
出现一个不能更改主键的对话框,因为该表与其它表建立了关系,要想删除主键必须先在关系窗口中删除所有关系。
12.在“编辑关系”对话框中,只有选中“实施参照完整性”,才可以选择“级联更新关联字段”和“级联删除关联字段”。
试解释这三种复选项的控制意义。
答:
“实施参照完整性”,这样,在子表中添加或更新数据时,Access将检验子表新加入的与主键有关的外键值是否满足参照完整性。
“级联更新关联字段”,选中时,当父表修改主键值时,如果子表中的外键有对应值,外间的对应值将自动级联更新。
“级联删除关联字段”,当父表删除主键值时,如果子表中的外键有对应值,外键所在的记录将自动级联删除。
13.当在输入记录时,如果发生主键字段重复,会出现什么现象?
如果输入的外键值如专业表的“学院号”在“学院”中没有对应的值,会出现什么情况?
答:
(1)当主键字段重复是时,保存时会弹出警告提示无法保存。
(2)没有对应值时,当输入完后会弹出一个对话框显示“由于数据表学院需要一个相关记录,不能添加或修改记录”。
14.定义表时,设置“有效性文本”字段属性有何作用?
答:
当定义了一个有效性规则之后,用户针对该字段的每一个输入值或修改值都会带入表达式中运算,只有运算结果为true的值才能够存入字段;如果运算结果为false,界面上将弹出一个提示对话框提示输入错误,并要求重新输入。
15.在定义“文本”型字段格式时,“@”符号与“&”符号作为占位符有何区别?
在定义“数字”型字段格式时,“#”符号与“0”符号作为占位符有何区别?
答:
(1)“@”用于在该位置显示任意可用字符或空格;“&”用于在该位置显示任何可用字符。
如果没有可用字符要显示,Access将忽略该占位符。
(2)“#”数字占位符,如果在这个位置没有数字输入,则Access会忽略该数字占位符;“0”数字占位符,如果在这个位置没有数字输入,则Access显示0。
16.在本实验的定义“日期/时间”型字段格式时,一个m或d与两位的mm或dd在使用时有何区别?
用“\”符号的作用是什么?
若设计格式为:
dddddd[红色],有何区别?
答:
(1)一个m或d用于把月份或天显示成一位或两位数字,两位mm或dd用于把月份或天显示成固定的两位数。
(2)“\”作用是将其后跟随的第一个字符原文照印。
(3)日期将显示成红色长日期格式。
17.定义“输入掩码”属性的实质意义是什么?
在定义“学号”字段的输入掩码时,不使用“0”而使用“9”或“#”有和区别?
如果在“姓名”字段上必须定义10位输入掩码,那么应该定义什么掩码字符串?
答:
(1)实质上是为了定义数据的输入格式。
(2)用“0”的话就必须输入(0-9)到该位置,因为如果在这个位置没有数字输入,则Access显示0。
用“9”或“#”的话,数字(0-9)或空格都可以输入到该位置的。
不同的是#可以输入“+”、“-”到该位置,然而0或9就不能了。
(3)输入十个9。
18.可以采用查阅方法输入的字段类型有哪些?
绑定查阅列表框控件进行输入,如果不点击其中的值,而是输入不同的值,是否可以输入?
如果一定要使输入的值限定在列表框的值的范围内,应该如何实现?
答:
(1)有文本、是/否、和数字三种类型。
(2)不可以输入(3)定义行来源使其在一个限定的值集合中取值或者采用其他列表框等其他控件辅助输入。
19.若在“课程”表删除“数据库及应用”记录,会发生什么现象?
什么含义?
答:
将会弹出一个对话框,显示由于‘成绩单’中包含相关记录,不能删除或改变记录。
含义是表有参照完整性约束。
20.在数据表浏览展开子表时,可以最多展开多少层子表?
若要同时展开每条记录的的子表,应该如何操作?
答:
最多可展开8层。
选择“格式”菜单下的“子数据表”中的“全部展开”项即可
(二)实验项目2
1.有哪几种方式可进入“SQL视图”?
如果用“记事本”编写了SQL语句,是否可以在SQL视图中使用?
如何操作?
答:
单击查询工具栏的“视图”工具的下拉按钮,选择“SQL视图”选项或单击菜单栏中“视图”,选择“SQL视图”。
可以使用,操作如下:
输入、编辑SQL语句;运行SQL语句并查看查询结果。
;保存SQL语句为查询对象就可以了。
2.为什么不能在数字常量前加“¥”或“$”符号表示币值常量?
“¥”或“$”有何作用?
答:
这是因为由程序控制,调用显示格式。
其中的“¥”表示定义货币的“格式”属性。
而“$”表示可以再格式属性的任何位置使用这些字符并请将这些字符原文照印。
3.如果在修改“法学院”学分的操作中要求根据“学院名”作为输入条件修改数据,查询命令应该如何写?
答:
UPDATE课程表SET学分=学分+1
WHERE学院号=“04”;
4.不保存查询,与将查询保存为查询对象有何区别?
查询对象有什么作用?
答:
将查询保存为查询对象,双击这个对象就会直接运行这个查询,没有保存就不可以运行这个对象。
以后可以直接运行程序,在下次操作的时候更加方便,节省时间。
5.根据以下给定的查询要求,写出对应的查询命令。
①查询学生中的民族来源,显示不重复的民族数据。
答:
SELECTDISTINCT民族FROM学生;
②查询各民族男生和女生的人数。
答:
SELECTCount(*)FROM学生WHERE性别=“男”OR性别=“女”;
③查询没有学生选修的课程信息以及开课的学院名。
答:
SELECT课程号,学院号FROM课程
WHERE课程号NOTIN(SELECT课程号FROM学生);
④插入几条教师记录。
答:
INSERTINTO教师VALUES(“……..”);
⑤给“教授”职称的教师的基本工资增加10%。
答:
UPDATE教师SET工资=工资+工资*0.1
WHERE职称=教授;
⑥删除没有学生就读的专业数据。
答:
DELETEFROM学生WHERE专业号NOTIN(SELECT专业号FROM专业);
⑦删除教师表。
答:
DELETEFROM教师
6.深入体会交叉表查询的作用,简述交叉表查询的实质意义。
作为行标题的字段最多可以设置几个?
作为列标题和交叉值的字段最多可以设置几个?
答:
交叉表查询都是一种特殊的汇总查询。
交叉表事实上反映的是对两种实体极其练习的关系表示,转换为另一种二维表结构来显示。
行标题的字段可是多个,列标题只能是一个。
7.参数查询的参数设置是否一定要通过菜单设置类型?
通过菜单设置的参数是否一定要出现在查询中?
答:
不是,也可以把参数设置为工具栏上,作为快捷键。
或者也可以可以单击右键,在选择参数设置就行了。
不一定要出现在查询中
8.生成表查询实现的是SQL语言中什么语句的功能?
答:
实现SELECT语句中INTO子句的功能。
9.追加查询对应SQL的什么语句?
该语句是否只具有追加查询的功能?
若有其他功能,如何实现交互操作?
答:
INSERTINTO<表>[(<字段1>[,<字段2>,……])]]VALUES(<字段1>[,<字段2>,……])]是只具有追加功能。
要求通过窗体或者数据表视图来实现交互操作。
(二)实验项目3
1.什么是Access的外部数据?
答:
凡是不在当前Access数据库中存储,在其他数据库或程序中的数据称为外部数据。
2.简述不同软件进行数据导入、导出的意义。
答:
导入文件操作实际上是将外部文件存储格式转换为Access表格式,再将外部文件的内容复制到Access表中保存。
Access从外部导入数据时,并不删除或破坏外部文件。
当Access向外部文件导出时,原有的Access对象没有被删除或破坏,产生的是原对象的一个副本。
导出是一种重要的功能。
数据库可以有效地存储数据、具有强大的查询功能。
而其他软件也有其自身优势,导出可以利用其他软件的优势,来对数据库中的数据进行处理。
3.对于Access来说,导入和链接有什么异同点。
答:
链接是在Access中以数据的当前文件格式(即保持原文件格式不变)使用外部数据。
导入是对外部数据制作一个副本,并将副本移动到Access中,在Access系统中使用。
运用链接方式使用其他应用程序中的数据,并和其他应用程序共享数据文件。
这种方式下,Access可以使用和修改其他程序中建立的数据文件(如Excel表中的数据),而不改变原有数据文件的存储格式。
使用链接方式的最大缺点是不能运用Access进行表之间的参照完整性(除非链接的就是Access数据库)这一强大的数据库功能。
用户只能设置非常有限的字段属性,不能对导入表添加基于表的规则,也不能指定主键等操作。
Access的数据导入功能能够将外部数据源从物理上放入一个新的Access表中。
Access在导入时,自动把数据从外部数据源的格式转换为Access数据表的格式,并复制到Access中,以后使用这些数据就在Access中使用。
导入的数据被转换为Access表,所以,导入的数据可以对其修改结构、改变数据类型,改变字段名,设置字段属性,也可以对导入表加上基于表的规则,指定主键等操作。
4.在向文本文件导出时,怎样做到只导出数据而不导出字段名?
答:
在导出文本向导中,选择取消“第一行包含字段名称”即可。
5.可以将表对象或查询对象导出,能否将外部数据导入为查询?
若要导入到查询,Access会怎样做?
答:
可以。
①打开数据库,鼠标指向空白处,单击鼠标右键,在弹出的快捷菜单中选择“导入”命令;或单击“文件”菜单下“获取外部数据”中的“导入”命令。
打开“导入”对话框。
②在对话框中选择要导入的数据库文件。
单击“导入”命令按钮,或双击要导入的数据库文件。
打开“导入对象”对话框。
并单击对话框中的“选项”命令按钮。
③选择“表”选项卡,再选择要导
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中南 财经政法大学 数据库 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)