ACCESS实验答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四Access数据库软件操作实验
1. 建立数据库
创建一个数据库,文件名为Test1.accdb,存放在实验目录中,在其中建立表Teachers,其结构如表1所示,内容如表2所示,主键为教师号。
表1 表Teachers的结构
表2 表Teachers的内容
2. 将表Teachers复制为Teachers1。
3. 用SQL中的数据更新命令数据库中表Teachers1进行操作。
1) 用INSERT命令插入一条新的记录。
600001 杨梦女59 66/04/22 YES 1660 210
SQL语句:INSERT INTO teachers1 ( 教师号, 姓名, 性别, 年龄, 参加工作年月, 党员, 应发工资, 扣除工资 )
VALUES ("600001", "杨梦", "女", 59, #1990/02/01#, true, 1960, 210);
本题操作要点:字段、常量间逗号一定要用半角,字符常量一定要用英文的双引号或单引号,例如:"杨梦",日期常量数据一定要用##,例如:#1990/02/01#。
如果在其它机器上用,运行时,access右下角运行出现“操作或事件已被禁用模式阻止”,请更改下安全等级:文件->选项->信任中心->信任中心设置->宏设置->启用所有。然后关闭ACCESS,重新启动ACCESS即可。
2) 用DELETE命令删除姓名为关红梅的记录。
SQL语句:
DELETE*
FROM teachers1
WHERE姓名="关红梅"
此题操作要点:菜单拦上选创建->查询设计->(此时会打开一个对话框,让用户选择要删除的表,可以不选任何表->直接选“关闭按钮”)->将鼠标移到上部分,按右键,选SQL视图。输入命令代码即可。
3) 用DELETE命令删除年龄小于36且性别为“女”的记录。
SQL语句:DELETE *
FROM teachers1
WHERE 性别="女" and 年龄<36;
4) 用UPDATE对表中工龄超过25年的职工加20%元工资。
SQL语句:
UPDATE teachers1 SET 应发工资= 应发工资*1.2
WHERE ((Year(Date())-Year(参加工作年月)>25));
操作要点:类似的更新数据表中的数据的题不建议用向导做。直接进到SQL 视图输入代码要简单些。
此题的难点:要知道YEAR()和DATE()函数的使用方法及其含义。Year()是取日期常量里的“年份”数据,date()是取系统时间。
小结:DELETE和UPDATE关键要记住两命令的格式,和写出正确的
WHERE 子句,即条件子句。
4. 通过Access的设计视图设计完成如下查询,然后切换至SQL视图,把SQL 语句填写在后面的横线上。(当然也可以直接写出相应的SQL语句)下面的所有的语句都是对数据库中表Teachers进行操作。
1) 查询所有教师的基本信息。
SQL语句:
SELECT teachers.*
FROM teachers
2) 查询教师的教师号、姓名、性别和年龄
SQL语句:
SELEC T 教师号,姓名,性别,年龄
FROM teachers;
3) 查询教师的教师号、姓名和实发工资。
SQL语句:
SELECT teachers.教师号, teachers.姓名, 应发工资-扣除工资AS实发工资
FROM teachers;
此题的重点在于掌握字段“标签”的书写格式,缺省事字段名称,如果要指定字符串做为标签,一定要用AS .
4) 查询教师的人数和平均实发工资。
SQL语句:
SELECT Count(teachers.教师号) AS教师人数, Avg([应发工资]-[扣除工资]) AS 平均工资
FROM teachers;
此题操作要点:要知道常用的统计函数;查询设计的工具栏上找到“汇总”按钮,点击一下,这样在查询设计向导中会增加“总计”栏。然后选取相应的字段和
函数。平均工资可以先选“应发工资”,再在字段栏直接输入:-扣除工资。标签同上,可以在切换到SQL书写模式下,直接更改。要点是要知道SQL和向导来回切换。(指向相应的查询页框标签,按右键,在快捷菜单中可以来回切换)
5) 查询华成的基本情况。
SQL语句:
SELECT teachers.*
FROM teachers
WHERE ([teachers]![姓名]="华成");
如上图,直接在条件栏输入条件.
6) 查询所有男教师的基本信息。SQL语句:
FROM teachers
WHERE ([teachers]![性别]="男");
7) 查询90年以前参加工作的所有教师的教师号、姓名和实发工资。
SQL语句:
SELECT teachers.*
FROM teachers
WHERE teachers.参加工作年月<#1/1/1990#;
在条件栏输入: <#1990/1//#。
注意日期常量的写法.
8) 查询所有不姓高的学生的基本情况。(此题改为教师)
SQL语句:
FROM teachers
WHERE teachers.姓名Not Like "高*";
此题的要点是:LIKE是个关系运算符号,包含的意识,LIKE “高*”,意识是包含高姓人名,*是统配符号,表示任意一个字符串,?表示任意一个字符,这两符号常常和LIKE连用,NOT 是逻辑运算符非的意识。NOT LIKE 就是不包含。
9) 查询男女生的最低分最高分和平均分数
SQL语句:
10) 查询男女职工的最低工资、最高工资和平均工资(工资是指实发工资)。
SQL语句:
SELECT Min([应发工资]-[扣除工资]) AS 最低工资, Max([应发工资]-[扣除工资]) AS 最高工资, Avg([应发工资]-[扣除工资]) AS 平均工资
FROM teachers;
此题直接切换到SQL视图输入要简单些。注意AS的用法。
11) 查询所有党员的教师号和姓名,并且按年龄从大到小排列。
SQL语句:
SELECT teachers.教师号, teachers.姓名