实验序号:B0901000—02 实验项目名称:数据库设计及数据库创建与应用
学 号 实验地点 姓 名 指导教师 专业、班 时间 一、实验目的及要求 (一)实验项目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机,Windows XP,Access 2003 参考教材:《数据库及其应用(Access及Excel)学习与实验实训教程》. 三、实验内容要求 (实验操作内容和步骤写在表格后面、回答问题写在表给内) 实验项目1:数据库设计及数据库与表的创建与操作 (一) 数据库与表的设计与创建 1.给定如下数据分析,进行概念设计与逻辑设计.即设计系统的E—R模型并转换为关系模型.(数据参见附表)。 某学校设计学生教学管理系统。学生实体包括学号、姓名、性别、生日、民族、籍贯、简历、登记照,每名学生选择一个主修专业,专业包括专业编号和名称,一个专业属于一个学院,一个学院可以有若干个专业。学院信息要存储学院号、学院名、院长。教学管理还要管理课程表和学生成绩.课程表包括课程号、课程名、学分,每门课程由一个学院开设。学生选修的每门课程获得一个成绩。 2. 数据库结构设计 指定数据库文件的名称,并为设计好的关系模型设计表结构。 3.数据库文件保存在“E:\\教学管理\\”文件夹中。 数据库文件保存在D\\教学管理\\文件夹中,数据库文件名为 教学管理。MDB。表包括学院表,专业表,学生表、课程表和成绩单。 学院表 字段名 学院号 学院名 院长 专业表 字段名 专业号 专业名 专业类别 学院号 学生表 字段名 学号 姓名 性别 生日 民族 籍贯 专业号 简历 登记照 课程表 字段名 课程号 课程名 学分 学院号 成绩单 字段名 学号 课程号 成绩 类型 文本 文本 单精度 宽度 8 8 4 小数 1 主键/索引 ↑主 ↑主 参照表 学生 课程 约束 >=0 and 〈= 100 Null值 √ 类型 文本 文本 字节 文本 宽度 8 24 2 小数 主键/索引 ↑主 ↑ 参照表 学院 约束 Null值 类型 文本 文本 文本 日期型 文本 文本 文本 备注 OLE对象 类型 文本 文本 文本 文本 宽度 8 8 2 6 20 6 小数 主键/索引 ↑主 ↑ 参照表 专业 约束 男 or 女 Null值 宽度 6 16 8 4 小数 主键/索引 ↑主 ↑ 参照表 学院 约束 Null值 类型 文本 文本 文本 宽度 4 16 8 小数 主键/索引 ↑主 参照表 约束 Null值 启动数据库,单击新建按钮, 在任务窗格中单击空数据库的超连接,在对话框中找到E:\\教学管理\\”文件夹,然后在文件名下拉列表框中输入 教学管理 单击创建按钮。 4在数据库窗口中选择表 对象栏,双击使用设计器创建表,在设计器中设计学院表。 分别定义各字段名,字段属性。学院号是文本型,大小为4,在工具栏中单击主键按钮,定义为主键。院长是文本型,大小为8. 然后单机工具栏中的保存,输入学院名,单击确定。 依次建立专业表, 课程表、学生表和成绩单表。 5.定义表之间的关系 当所有表都定义好后,定义各表之间的关系。 所有表都定义好后,在工具栏中单击关系按钮,依次选中各表并单击添加按钮. 选中,学院表中的学院号字段,拖到专业表内的学院号上,弹出编辑关系对话框,选中实施参照完整性复选框.单击创建。 类似方式建立课程和学院,学生和专业,成绩和学生及课程表之间的关系.得到整个数据库的关系 6.输入表记录 当所有表建立好后,可开始输入记录。简要说明输入的操作. 由于表之间存在联系,输入时,应该先输入被引用数据的表记录,然后再输入用其他表数据的记录表。这里输入的顺序一次是学院表、专业表、学生表、和课程表,最后是成绩单表的记录。 (二)Access数据库窗口基本操作 1.设置教学管理数据库窗口中表对象列表窗口的显示格式为“详细信息\" 写出操作步骤. 启动数据库,在表对象的列表窗口的显示方式按钮处,选择详细信息按钮。 2.隐藏和重新显示教学管理数据库窗口,写出操作步骤. .隐藏:选择工具-——启动 命令 ,弹出对话框。 取消对 显示数据库窗口的 复选框的选择。这样,下次,在打开该数据库文件时就不在显示相应的数据库窗口。 想要重新显示数据库窗口,在打开数据库后按F11,这时将重新显示数据库窗口。然后在启动对话框中选中显示数据库窗口的复选框。 3.定义一个“学生与成绩”组,将“学生”、“成绩”表放置到该组中 写出创建组的操作和放置对象的操作. (1)菜单栏中单击编辑菜单,选择 组 再选择 新组。 (2)在弹出的对话框中输入组名“学生与成绩”。 (3)在表对象列表中单选学生表,选择菜单栏中的编辑菜单,选择—添加到组,添加成绩表同上。 (三)创建表时的完整性设置 1.定义主键,实现实体完整性的操作 每个表都可以定义主键.在Access中为教学管理数据库的各表定义主键。 当一个表没有合适的字段作为主键时,一般会增加一个“id\"字段.试在“成绩”表中增加一个“成绩id”字段,并定义为“自动编号”型,然后定义其为主键. 选择学号,单机鼠标右键,选择主键 2.进行设置参照完整性的操作 在定义的有关系的表上,为关系设置参照完整性. 在数据库窗口的表对象界面,单击“数据库”工具栏的关系按钮,启动“关系”窗口。在“关系”窗口中依次添加要建立关系的各表,从父表中选中主键或无重复索引字段并拖动到子表对应的外键字段上,然后通过“编辑关系”对话框进行设置. 选择实施参照完整性, 级联更新相关字段,及联删除相关记录. 3.通过不同方式实现用户定义的完整性的操作 用户定义的完整性,是指由用户规定的对于表中数据取值的约束.在Access表定义时,除定义主键和关系外,通过多种方式设置用户定义完整性。 对教学管理数据库中必要的用户定义完整性进行设置和定义。 (四)字段属性定义与应用 1.字段显示格式设置 ① 使“学生”表中的“民族\"字段以黄色显示。 在设计视图中,将民族字段的属性做如下设置: 在字段大小中输入 2 在格式中输入 &&[黄色] 在输入掩码中输入 && ② 使“学生”的生日以中文方式、红色显示。 将“生日\"字段的数据类型设置为“日期/时间”型,并如下设置属性: 在格式中输入 dddddd[红色], 输入掩码中 输入 9999\\年99\\月99\\日;0; ③ 使“成绩”表中成绩的显示为3位整数和一位小数,蓝色。 进入设计视图,在常规中,在字段大小中输入 小数,在格式中输入#。#[蓝色],小数位数中输入1 ,输入掩码中输入###。# 2.字段输入掩码设置 在定义“学生”表时,由于“学号”是8位文本,且每位都由0~9组成,因此,要在定义“学号\"字段时规定每一位的输入都必须是数字。 进入设计视图,在常规中,在字段大小中输入8,在格式中输入00000000,输入掩码中输入00000000;; 其他如课程表的“课程号”字段、专业表的“专业号”字段等都可以定义类似的输入掩码. 3.定义字段查阅方法 “查阅\"控件与字段绑定,可以提示字段的输入.为“专业”表的“专业类别”定义查阅控件绑定. 步骤:设计视图——数据类型——查阅向导——打开“查阅向导”对话框,选择“自行键入需要的值”——点击“下一步”输入所需的值--“下一步\"——“完成” 为“专业”表的“学院号”字段设计“查阅\"控件.数据从“学院”表中来,显示“学院号”和“学院名”两列数据,采用列表框。 步骤:设计视图—-字段属性——查阅 (五)数据表视图下数据记录的显示与操作 1.输入操作 利用数据表视图进行输入操作,输入的数据应该满足完整性的要求。而如果是有关系的表中的子表,外键输入时还要与主键值对应。 根据给定的数据,为数据库中各表(重点介绍一到两个表)输入记录。 在学生表中输入数据: (1)、打开学生表,进入数据表视图,单击鼠标将光标移到欲输入数据的单元格进行输入。 (2)、学号已设置为8个数字的文本形式,并设置为主键,有重复或字节不为8时,都无法输入,并弹出错误提示 (3)、性别设置了查阅向导,点击箭头在下拉列表中选择男女,日期设置为“日期/时间”类型,并设置了输入掩码,如图第一行显示,在下划线上输入, ,再设置民族、地址等。 2。 修改和删除操作 修改“课程”表,将“运筹学\"所在记录的学分增加1分,将开设学院变为“工商管理学院(05)”. 删除“课程\"表中“美术设计\"课程。 (1)、打开课程表,进入数据表视图。 (2)、将光标移至运筹学学分单元格,将5改为6,如图 (3)、在删除课程表与学院表的关系之后)在运筹学的学院一栏填入“工商管理学院(05)”,如上图。 3。 数据表视图中的设置 数据表视图是浏览表中数据的界面,可以做不同的设置,以获得不同的效果。 ① 数据表视图中父子表的展开。 ② 按照指定的字段排序浏览. 在“成绩\"数据表视图中,按照成绩的大小排列。 ③ 在学生表中只显示女生数据记录. (1)数据表视图中父子表的展开。 单击父表中的加号 (2)、按照指定的字段排序浏览。 将鼠标移至字段“成绩”处,变为向下箭头时单击,即选中成绩这列。点击工具栏上的升序或降序按钮 ,则成绩按大小顺序排列. (3)在学生表中只显示女生数据记录。 进入学生表数据表视图,点击菜单栏-记录—筛选—按窗体筛选,在性别一栏中选择“女”如图: 点击“应用筛选”按钮 ,则表中只显示女生信息。如图 实验项目二:查询 (一) SQL视图中表达式练习 1.进入SQL视图及在不同视图间切换 在Access中进入查询的设计视图并在查询的不同视图之间切换。 在数据库窗口中双击“在设计视图中创建查询\",或者先单击“新建\"按钮,然后在“新建查询”对话框中选中“设计视图\"并单击“确定”按钮,进入设计视图界面。在“视图\"选项中选择SQL视图或右键快捷菜单中选择SQL视图。效果图如下: 2.不同类型数据的表达式运算 在SQL视图中分别输入以下命令并运行,对于参数自己输入数据。查看并写出各表达式运算结果。 SELECT —5。12^2+(17 mod 3); SELECT ”Hello \"+\”,LEFT(”清华大学出版社”,2)+RIGHT(\"清华大学出版社”,3); SELECT ”你毕业的年份是\AL(LEFT([你的学号],4))+4; SELECT \"现在是”+STR(YEAR(DATE()))+”年”,”现在的时间是:”+CSTR(TIME()); SELECT \"张三\"〉”李四”,”ABCD\"<\"abcd”,(DATE()—#1992—10-8#)>1000; 在数据库窗口中双击“在设计视图中创建查询”,或者先单击“新建\"按钮,然后在“新建查询\"对话框中选中“设计视图\"并单击“确定\"按钮,进入设计视图界面。在“视图”选项中选择SQL视图或右键快捷菜单中选择SQL视图.在窗口中输入 SELECT —5。12^2+17 mod 3; 在数据库窗口中双击“在设计视图中创建查询”,或者先单击“新建”按钮,然后在“新建查询\"对话框中选中“设计视图”并单击“确定”按钮,进入设计视图界面。在“视图\"选项中选择SQL视图或右键快捷菜单中选择SQL视图。在窗口中输入 SELECT ”Hello ”+\",World!\",LEFT(”清华大学出版社”,2)+RIGHT(”清华大学出版社”,3); 在数据库窗口中双击“在设计视图中创建查询”,或者先单击“新建”按钮,然后在“新建查询”对话框中选中“设计视图”并单击“确定”按钮,进入设计视图界面。在“视图\"选项中选择SQL视图或右键快捷菜单中选择SQL视图。在窗口中输入SELECT ”你毕业的年份是”, VAL(LEFT([你的学号],4))+4; 在数据库窗口中双击“在设计视图中创建查询\或者先单击“新建”按钮,然后在“新建查询”对话框中选中“设计视图”并单击“确定\"按钮,进入设计视图界面。在“视图”选项中选择SQL视图或右键快捷菜单中选择SQL视图.在窗口中输入SELECT \"现在是\"+STR(YEAR(DATE()))+”年”,”现在的时间是:”+CSTR(TIME()); 在数据库窗口中双击“在设计视图中创建查询\",或者先单击“新建”按钮,然后在“新建查询”对话框中选中“设计视图”并单击“确定”按钮,进入设计视图界面。在“视图\"选项中选择SQL视图或右键快捷菜单中选择SQL视图.在窗口中输入SELECT ”张三\">”李四\",”ABCD”<\"abcd\TE()-#1992-10—8#)〉1000; (二)SQL命令进行查询和操作 1.练习SQL查询的SELECT语句 启动教学管理数据库,在数据库窗口对象栏中单击“查询”,然后进入SQL视图。在“SQL视图”中输入以下SELECT命令,查看执行结果,并仔细体会查询的实现. ① 查询“学院\"、“专业”、“学生”完整数据. SELECT * FROM ((学院 INNER JOIN 专业 ON 学院.学院号=专业。学院号) INNER JOIN 学生 ON 专业。专业号=学生。专业号); ② 查询“工商管理”专业所有女生信息。 SELECT 专业,学生.* FROM 专业 INNER JOIN 学生 ON 专业。专业号=学生.专业号 WHERE 专业.专业=”工商管理” AND 学生.性别=\"女\"; 在数据库窗口中双击“在设计视图中创建查询”,或者先单击“新建\"按钮,然后在“新建查询”对话框中选中“设计视图”并单击“确定”按钮,进入设计视图界面。在“视图\"选项中选择SQL视图或右键快捷菜单中选择SQL视图。在窗口中输入 SELECT 学生表。*, 专业表.* FROM 专业表 INNER JOIN 学生表 ON 专业表。专业号 = 学生表.专业号 WHERE (((专业表.专业名)=”工商管理\") AND ((学生表.性别)=”女\")); ③ 查询平均成绩在80分以上的各位学生的学号、姓名和平均分。保存为查询对象,对象名“优秀学生”。 SELECT 学生。学号,姓名,AVG(成绩) AS 平均分 FROM 学生 INNER JOIN 成绩 ON 学生。学号=成绩。学号 GROUP BY 学生.学号,姓名 HAVING AVG(成绩)〉=80 ; 在数据库窗口中双击“在设计视图中创建查询\",或者先单击“新建\"按钮,然后在“新建查询”对话框中选中“设计视图”并单击“确定”按钮,进入设计视图界面。在“视图”选项中选择SQL视图或右键快捷菜单中选择SQL视图.在窗口中输入 SELECT 学生表。学号, 学生表.姓名, Avg(成绩单。成绩) AS 平均分 FROM 学生表 INNER JOIN 成绩单 ON 学生表。学号 = 成绩单.学号 GROUP BY 学生表。姓名 HAVING (((Avg(成绩单.成绩))〉=80)); 单击工具栏保存按钮,弹出“另存为”对话框,输入“优秀学生”,单击“确定\"按钮. 单击工具栏保存按钮,弹出“另存为”对话框,输入“优秀学生”,单击“确定”按钮。 ④ 查询没有学生数据的专业编号和专业. SELECT 专业号,专业 FROM 专业 WHERE 专业号 NOT IN (SELECT 专业号 FROM 学生) ; SELECT 专业表。专业号,专业名 FROM 专业表 WHERE (((专业表。专业号) Not In (Select 专业号 FROM 学生表))); ⑤ 查询“湖北”籍1988年以后出生的学生信息。 SELECT * FROM 学生 WHERE 籍贯 LIKE ”湖北*” AND 生日 〉=#1988—1—1# ; 在数据库窗口中双击“在设计视图中创建查询”,或者先单击“新建”按钮,然后在“新建查询”对话框中选中“设计视图”并单击“确定”按钮,进入设计视图界面。在“视图”选项中选择SQL视图或右键快捷菜单中选择SQL视图.在窗口中输入 SELECT 学生表。* FROM 学生表 WHERE (((学生表。籍贯) Like \"湖北*\") AND ((学生表.生日)〉=#1/1/1988#)); ⑥ 查询选课人数最多的课程的课程号、课程名. SELECT TOP 1 课程。课程号,课程名 FROM 课程 INNER JOIN 成绩 ON 课程.课程号=成绩.课程号 GROUP BY 课程.课程号,课程名 ORDER BY COUNT(*) DESC ; SELECT TOP 1 课程表.课程号, 课程表。课程名 FROM 课程表 INNER JOIN 成绩单 ON 课程表.课程号 = 成绩单。课程号 GROUP BY 课程表。课程号, 课程表。课程名 ORDER BY Count(*) DESC; 2.练习SQL的插入、更新、删除操作命令 ① 在课程表中插入一门新课,数据如命令所示。 INSERT INTO 课程 VALUES(”06020101\会计学原理”,3,”06\"); 在数据库窗口中双击“在设计视图中创建查询”,或者先单击“新建”按钮,然后在“新建查询”对话框中选中“设计视图\"并单击“确定”按钮,进入设计视图界面。在“视图\"选项中选择SQL视图或右键快捷菜单中选择SQL视图。在窗口中输入 INsert into 课程表 Values(”06020101”,”会计学原理\", 3, ”06”); ② 将“法学院(04)”开设课程的学分增加1分. UPDATE 课程 SET 学分=学分+1 WHERE 学院号=”04” UPDATE 课程表 SET 课程表。学分 = [学分]+1 WHERE (((课程表。学院号)=\"04\")); ③ 删除“信息学院(09)”开设的没有学生选修的课程。 DELETE FROM 课程 WHERE 学院号=\"09” AND 课程号 NOT IN (SELECT 课程号 FROM 成绩) 在数据库窗口中双击“在设计视图中创建查询”,或者先单击“新建”按钮,然后在“新建查询”对话框中选中“设计视图\"并单击“确定\"按钮,进入设计视图界面.在“视图\"选项中选择SQL视图或右键快捷菜单中选择SQL视图。在窗口中输入 DELETE FROM 课程 WHERE 学院号=\"09” AND 课程号 NOT IN (SELECT 课程号 FROM 成绩单) 3.创建“教师”表,包括:工号、姓名、性别、生日、职称、基本工资、学院号。写出创建命令。 CREATE TABLE 教师 (工号 TEXT(6) PRIMARY KEY, 姓名 TEXT(10) NOT NULL, 性别 TEXT(2), 生日 DATE, 职称 TEXT(8), 基本工资 MONEY, 学院号 TEXT(2) REFERENCES 学院表(学院号)) (三)选择查询操作 1.进入查询设计视图进行交互式选择查询设置 启动教学管理数据库。 ① 查询“专业”表,显示开设的所有专业涉及的学科门类。 点击查询,双击在设计视图中创建查询,在显示表的对话框中选择专业,单击添加关闭对话框,在字段中选择专业类别,然后窗口的上半部分空白区域单击右键选择属性,在唯一值中 选择是,关闭对话框,点击“运行\"的快捷键. ② 查询各专业学生的人数。 将专业表和学生表加入设计视图。在QBE界面中字段栏选中“专业号”和“专业”字段显示,然后单击工具栏中的总计按钮,在QBE界面中增加总计栏。将“专业号”和“专业\"字段设置为分组,然后选择“学生\"表的学号字段,设置其为计数,在学号前面加上“人数:\作为查询后的列名.运行查询。 ③ 查询没有选课的男学生学号、姓名,即成绩表中没有记录的学生数据。 2.进行交叉表查询 将学生的“学号”和“姓名”作为行标题,“课程名\"作为列标题,成绩作为交叉数据,生成交叉表。 启动算责查询设计窗口,将“学生”“成绩”和“课程”表加入设计窗口,选择“查询\"—-—“交叉表查询\" 命令,在QBE窗格中选择“学生”表的“学号”“ 姓名”作为行标题 “课程名\"作为列标题,“成绩”总计后作为值。 3.进行参数查询 通过参数查询指定日期以后出生的某个民族的学生信息. 启动选择查询设计窗口,将学生表加入设计窗口,在QBE窗口中选择“*”表示输出学生表所有字段,然后选中“生日”字段,去掉显示行的复选框,在条件行输入。〉[SR];按同样方式设置“民族“字段 然后选择查询-——参数 命令,弹出查询参数对话框,分别设置SR和MZ的类型,单击确定。 (四)动作查询操作 1.生成表查询操作练习 将“查询平均成绩在80分以上的各位学生的学号、姓名和平均分\"的结果生成新表,表名“优秀学生名单”。 在数据库窗口中双击“在设计视图中创建查询\",或者先单击“新建\"按钮,然后在“新建查询”对话框中选中“设计视图”并单击“确定”按钮,进入设计视图界面。在“视图”选项中选择SQL视图或右键快捷菜单中选择SQL视图.在窗口中输入 SELECT 学生表.学号, 学生表。姓名, Avg(成绩单。成绩) AS 平均分 INTO 优秀学生名单 FROM 学生表 INNER JOIN 成绩单 ON 学生表。学号 = 成绩单.学号 GROUP BY 学生表.学号, 学生表.姓名 HAVING (((Avg(成绩单.成绩))>80)); 输入SQL命令后,选择“查询”—“生成表”查询,弹出生成表的对话框.输入表的名称,然后单击确定.运行查询. 结果保存到当前数据库中 2.删除查询操作 删除“优秀学生名单”表中,平均分在85分以下的记录。 进入设计视图,加入优秀学生名单表,选择查询-“删除查询\"命令,这是窗口改为删除查询,QBE栏目发证变化,初选删除栏调整或撤销其他栏. 在字段中选择“平均分”,在条件栏输入<85 单击工具栏中的运行, 删除数据。 3.追加查询操作 将平均分在80~85分之间的学生及成绩数据加入“优秀学生名单\"表, 启动设计视图,,添加“学生”和“成绩”表 在字段栏设置“学号”“姓名\"和“成绩”字段,单击工具栏中的总计按钮,增加“总计”栏,设置“学号”和“姓名\"为“分组”字段,“成绩”为“平均值”字段,在条件中输入between 80 and 85。 选择“查询\"-追加查询 命令 ,打开追加对话框,选择“优秀学生名单\"表单击确定按钮。 这时,在设计师图的QBE窗格中增加“追加到”栏,选择“学号\"“姓名\"“平均分\"字段,设计完成。运行查询 4.更新查询操作 将没有学生选修的课程的学分减少1分. 启动设计视图,添加 “课程\"选择查询-—-—更新查询 命令,设计视图变为 更新查询,QBE窗格中增加“更新到”栏. 选中“学分”字段,然后在更新到栏中输入“课程.学分—1” 选中“课程号\"字段,在“条件”栏中输入“Not In(SELECT 课程号FROM成绩)”,设计完成如图: 单击运行按钮进行查询. 实验项目三:数据交换 (一) 导出操作 1.在“教学管理”数据库中创建一个查询并保存。查询的名称为“学生成绩单\".查询的结构为:学号、姓名、专业、课程号、课程名、成绩。 2.将“学生成绩单”查询导出为文本文件,字段值之间用逗号作为分隔符,文本型数据不要加引号。文本文件要包括字段名。 3.将“学生成绩单”查询导出到桌面EXCEL文件“学生成绩表”中。 启动“教学管理”数据库,选中“查询\"后,双击“在设计视图中创建查询”,在“显示表\"中添加“学生”,“专业\"、“课程”、“成绩” 在字段中分别选择学号、姓名、专业、课程号、课程名、成绩,如图所示 选择“文件”-—“保存\"后出现另存为对话框,并命名为“学生成绩单”。 启动“教学管理”数据库,选择查询,右键单击“学生成绩单”在选择菜单中选择 “导出”,在保存类型的下拉列表中选择文本文件,然后单击导出。 弹出 “导出文本向导”对话框.选择“带分隔符……每个字段\" 单击下一步,在“请选择字段分隔符”中选择“逗号”,且将在“文本识别符\"的下拉菜单中选择“无\",“第一行包含字段名称\"前打钩。并继续点击“下一步\"。 启动“教学管理”数据库,在查询中选中“学生成绩单\" 右键单击在选择菜单中“导出”命打开“将表学生成绩单导出为…”对话框, 在对话框中选择保存类型为Excel数据类型,选择目标文件夹,可用复选框选择“带格式保存”和“自动保存”., 选择这个两个复选框,导出成功后,Access系统会自动打开所创建的对象。 单击“导出\"命令按钮,完成导出过程。 (二)导入操作 1.将上面实验产生的文本文件导入教学管理数据库中作为表对象.命名为“学生成绩单”。并为各字段列指定合适的类型. 2.上面实验产生的EXCEL文件“学生成绩表”导入教学管理数据库中作为表对象。命名为“学生成绩表”。并为各字段列指定合适的类型。产生表后,指定学号、课程号为主键。 打开“教学管理”数据库,鼠标指向空白处,单击鼠标右键,在弹出的快捷菜单中选择“导入”命令,打开“导入”对话框。 在对话框中选择文件类型为“文本文件”,选择 “学生成绩单”。 单击“导入”, 在第一个对话框中选择单选框“带分隔符——用逗号或制表之类的符号分割两个字段\".在第二个对话框中,选择分隔符为“逗号”, 在第三个对话框中,选择“新表中\", 在第四个对话框中,选择各文本字段及字段信息和属性值的修改。 例如学号: 姓名、专业、课程号、课程名、成绩等修改步骤同上。 打开“教学管理”数据库 在空白处,单击鼠标右键,在弹出的快捷菜单中选择“导入”命令,打开“导入\"对话; 在对话框中选择数据库文件类型为Excel数据类型,选择学生成绩单的Excel文件双击 打开“导入数据表向导\"如图。 在第一个对话框中,可以将数据表的第一行设为标题。 在第二个对话框中,可以选择导入的数据最为一个新的Access表存储。 在第三个对话框中,修改其字段名,使其有合适的字段类型。 第四个对话框中,选择不定义主键。 在第五个对话框中,确定生成的Access表的名称为“学生成绩表”,单击完成按钮; 在表中选择 “学生成绩表” ,进入设计视图。 按住c trl键,鼠标选择学号和课程号,再单击工具栏中主键的图标.定义学号和课程号为主键 四、回答问题 (一)实验项目1 (一)实验项目1 1.Access存储数据时,用到几个数据库文件?扩展名是什么? 答:一个,扩展名为.mdb。 2.设计ER模型、关系模型、数据库及表结构,分别属于数据库设计中的什么步骤? 答:分别属于ER模型—概念设计、关系模型—逻辑设计、数据库及表结构—物理设计. 3.在表结构设计中,应该包含哪些内容? 答:包括定义字段,主键,索引,约束,是否取空值,查阅向导等。 4.在本实验设计中,共使用了哪些数据类型? 答:文本,数字,日期/时间,是否,OLE对象. 5.定义表之间的关系时,“实施参照完整性\"的意义是什么?在“编辑关系”对话框中选中或者撤销“级联更新相关字段”复选框,对于数据表的操作有何影响? 答:实施参照完整性,则在子表中更新数据时,ACCESS将检验新加入的外键值取值是否与对应的主键满足参照完整性。若选中复选框,则父表修改主键值时,子表中对应的外键自动更新.若不选择,则若子表中有对应外键值时,ACCESS拒绝修改主键。 6.建立表的关系,是否要求发生关系的两个字段必须同名? 答:否。 7.在定义学生表的“性别”字段时,同时定义了字段的“有效性规则”,对输入学生表的记录有什么影响? 答:在输入时,若不满足“有效性规则”的约束,则无法输入。 8.如何输入学生照片? 答:在设计视图中将照片字段的数据类型设置为OLE对象,切换至数据表视图,在输入数据时,菜单栏—插入—对象—选择由文件创建,点击“浏览”找到学生照片,点击确定. 9 .如何理解“收藏夹”,试说明“收藏夹”与组之间的异同。 答:收藏夹可以看做一个组,但是收藏夹不能重命名,也不可以被删除。收藏夹和创建的组都可以用来存放常用的表. 10.打开数据库文件时,有哪几种可选择的方式?一般默认方式是什么?如果要将默认方式设置为“独占\"如何实现? 答:选项有“打开”,“以只读方式打开”,“以独占方式打开”,“以独占只读方式打开\"。默认的方式是“打开”,若要用独占方式打开,则选择菜单栏-文件-打开,选中文件,点击“打开”对话框的打开按钮右侧的箭头 ,选择以独占方式打开. 11. 在“学生”表的设计器中,选择“学号\"字段,然后单击工具栏“主键”按钮,以便取消主键,这时会出现什么情况?为什么? 答:会弹出对话框提示不能取消主键,因为该字段是一个或多个关系中的主表,取消主键前要删除关系. 12。 在“编辑关系\"对话框中,只有选中“实施参照完整性”,才可以选择“级联更新关联字段\"和“级联删除关联字段\"。试解释这三种复选项的控制意义。 答:实施参照完整性,则在子表中更新数据时,ACCESS将检验新加入的外键值取值是否与对应的主键满足参照完整性。后两项复选项必须基于实施参照完整性,只是侧重不同操作。 13.当在输入记录时,如果发生主键字段重复,会出现什么现象?如果输入的外键值如专业表的“学院号”在“学院”中没有对应的值,会出现什么情况? 答:输入不成功,弹出提示称由于在主键值重复,对表的修改没有成功。输入不成功,弹出提示称由于学院表需要一个相关的值,不能修改. 14。 定义表时,设置“有效性文本”字段属性有何作用? 答:在输入的数据不符合有效性规则约束时,弹出提示即为“有效性文本”,能够让输入人员知道数据输入的要求,相应输入符合规则的数据. 15。 在定义“文本”型字段格式时,“@\"符号与“&\"符号作为占位符有何区别?在定义“数字\"型字段格式时,“#\"符号与“0”符号作为占位符有何区别? 答:文本型中,@和&都用做字符占位符,若没有字符显示,@显示为空格,而ACCESS忽略&。 数字型中,若没有数字输入,0显示为0,#被忽略。 16。 在本实验的定义“日期/时间”型字段格式时,一个m或d与两位的mm或dd在使用时有何区别?用“\\”符号的作用是什么?若设计格式为:dddddd[红色],有何区别? 答:m和d显示为一位或两位数字,mm和dd固定显示两位;\\让跟随的第一个字符照印显示出来;dddddd[红色]表示显示长日期,并为红色. 17。 定义“输入掩码”属性的实质意义是什么?在定义“学号”字段的输入掩码时,不使用“0\"而使用“9”或“#\"有和区别?如果在“姓名\"字段上必须定义10位输入掩码,那么应该定义什么掩码字符串? 答:意义在于规定数据输入时的格式。0表示可输入数字0—9到该位置,不允许留空;9表示输入数字0—9和空格,若没有输入数字或空格,则忽略;#作为占位符数字,空格和正负号都可以输入,若不输入,则默认为空格。 18。 可以采用查阅方法输入的字段类型有哪些?绑定查阅列表框控件进行输入,如果不点击其中的值,而是输入不同的值,是否可以输入?如果一定要使输入的值限定在列表框的值的范围内,应该如何实现? 答:类型有文本,数字,是/否。可以输入不同的值. 19。 若在“课程”表删除“数据库及应用”记录,会发生什么现象?什么含义? 答:弹出提示“索引或主关键字不能为空值\",由于在“课程”表中,课程号被设置为主键,根据实体完整性原则,主键不可为null。 20。 在数据表浏览展开子表时,可以最多展开多少层子表?若要同时展开每条记录的的子表,应该如何操作? 答:最多展开8层.全部展开方式:菜单栏—格式—子数据表-全部展开。 (二)实验项目2 1.有哪几种方式可进入“SQL视图”?如果用“记事本\"编写了SQL语句,是否可以在SQL视图中使用?如何操作? 答:1。先进入设计视图,在“视图”里选择SQL视图。2.进入设计视图,右键快捷菜单中选择SQL视图。3.设计视图中 可进入。在记事本里编写的SQL语句可以再SQL视图中选择“文件”选项卡中的“获取外部数据”中的“导入”,再选择所要的记事本,或复制粘贴也可。 2.为什么不能在数字常量前加“¥”或“$”符号表示币值常量?“¥\"或“$”有何作用? 答:因为币值常量要占8个字节,而数字常量不一定是8个字节,若数值常量前加这两个符号,会令计算机产生误解.作用:可以在“格式”属性中的任何位置使用这些字符,并且将这些字符原文照印。 3.如果在修改“法学院\"学分的操作中要求根据“学院名”作为输入条件修改数据,查询命令应该如何写? 答:UPDATE 课程 SET 学分=学分+1 WHERE 学院=“法学院” 4.不保存查询,与将查询保存为查询对象有何区别?查询对象有什么作用? 答:将查询保存为查询对象可以将一些查询功能反复执行,对查询的数据做进一步的处理。查询对象的作用:一、运行查询,查看结果,获取数据源表中最新的数据;二、可以进一步成为其他操作的数据源。 5.根据以下给定的查询要求,写出对应的查询命令。 ① 查询学生中的民族来源,显示不重复的民族数据. SELECT DISTINCT 学生.民族 FROM 学生; ② 查询各民族男生和女生的人数。 TRANSFORM Count(学生。学号) AS 学号之计数 SELECT 学生。民族 FROM 学生 GROUP BY 学生。民族 PIVOT 学生。性别; ③ 查询没有学生选修的课程信息以及开课的学院名。 SELECT DISTINCT 课程.课程号, 课程。课程名, 课程.学分, 课程.学院号 FROM 课程 INNER JOIN 成绩 ON 课程.课程号 = 成绩.课程号 GROUP BY 课程.课程号, 课程。课程名, 课程。学分, 课程。学院号, 成绩。课程号 HAVING (((课程.课程号) Not In (SELECT 课程号 FROM 成绩))); ④ 插入几条教师记录。 INSERT INTO 教师 VALUES(〈表达式1>[,<表达式2〉,…]) ⑤ 给“教授”职称的教师的基本工资增加10%. UPDATE 教师 SET薪金=薪金+薪金*0。1 WHERE 职称=“教授” ⑥ 删除没有学生就读的专业数据。 DELETE FROM 学生 WHERE 专业号 NOT IN (SELECT 专业号FROM 成绩) ⑦ 删除教师表。 DROP TABLE 教师 6.深入体会交叉表查询的作用,简述交叉表查询的实质意义。作为行标题的字段最多可以设置几个?作为列标题和交叉值的字段最多可以设置几个? 答:交叉表查询示意是一种特殊的汇总查询.交叉表事实上反映的就是对两种实体及其联系的关系表示,转换为另一种二维表结构来显示。 作为行标题的字段最多可以设置3个,作为列标题和交叉值的字段最多可以设置4个。 7.参数查询的参数设置是否一定要通过菜单设置类型?通过菜单设置的参数是否一定要出现在查询中? 答:不是,可以通过单击右键实现。不一定。 8.生成表查询实现的是SQL语言中什么语句的功能? 答:生成表用的是 CREATE TABLE 语句. 9.追加查询对应SQL的什么语句?该语句是否只具有追加查询的功能?若有其他功能,如何实现交互操作? 答:追加查询用的是INSERT INTO 语句。不是,还可以将记录追加到表中.追加记录的功能可以在表的数据表视图中完成(二)实验项目3 四、回答问题 1.什么是Access的外部数据? 不同的软件一般都规定了本系统中数据的格式.在实际应用时,为了充分利用不同软件的优势功能,需要在不同软件之间移动数据。 在Access应用时,凡是不以Access数据库存储格式存储、在其它程序中的数据就称为外部数据。 2.简述不同软件进行数据导入、导出的意义. 不同的软件一般都规定了本系统中数据的格式。在实际应用时,为了充分利用不同软件的优势功能,需要在不同软件之间移动数据。 通过链接或者导入方法使外部数据能够在Access数据库中使用; 将Access数据库中数据导出到外部格式的文件中,在其它系统中对导出的数据进行利用. 数据库可以有效地存储数据、具有强大地查询功能.而其它软件也有其自身优势,导出可以利用其它软件的优势,来对数据库中的数据进行处理。 3.对于Access来说,导入和链接有什么异同点。 相同点:通过链接或者导入方法使外部数据能够在Access数据库中使用; 区别: 链接以数据的当前文件格式使用它,即保持原文件格式不变,在Access中使用外部数据. 在Access中,运用链接方式使用其他应用程序中的数据,可以和其他应用程序共享数据文件。 在Access中可以使用和修改其他程序中建立的数据文件,同时,原来的应用程序仍然能够使用这个数据文件. 导入是对外部数据制作一个副本,并将副本移动到Access中,成为Access中的表来使用。导入不会改变原来的数据源格式和内容。 导入文件操作实际上是将外部文件存储格式转换为Access表格式,再将外部文件的内容复制到Access表中保存。 导入的数据可以存储到新表中,或存储到已存在的表中,这取决于要导入的数据类型。 所有类型的数据都可以被导入到新表中,但是只有电子表格和文本文件才可以被导入到已存在的Access表中. 4.在向文本文件导出时,怎样做到只导出数据而不导出字段名? 在导出文本向导中不选择“第一行包含字段名称”。 5.可以将表对象或查询对象导出,能否将外部数据导入为查询?若要导入到查询,Access会怎样做? 可以, 但只能导入其他Access的查询。 五、分析讨论 创建管理数据库,必须极为细致谨慎,任何一个细节上的瑕疵与谬误都有可能引致全局性的瘫痪,例如在全半角转化下产生的命令符缺失,以及字段引用失误导致的查询无法运行等等。 Access对数据精确有效的维护管理为我们带来了很大的方便,如果能灵便应用,一定受益无穷,但是鉴于输入数据有各种完整性限制等等的麻烦,往往不如先用excel做完表格后再导入要来的灵便。 在实验中,无论在导入还是导出中,出现要选择保存类型,或者文件类型时要注意选择所需的文件类型。 六、教师评语 1.按时完成实验; 2.实验内容和过程记录完整; 3.回答问题完整、正确; 4.有实验的心得或讨论; 5.实验报告的撰写认真、格式符合要求,没有抄袭行为。 成绩 签名: 日期:2012.6
因篇幅问题不能全部显示,请点此查看更多更全内容