Access学习笔记
Access介绍
- Access是微软发布的图形用户界面形式的关系数据库管理系统
- Access的用途体现在两个方面:数据分析、开发软件
- Access易学易用,任何人员都能轻松掌握,从而低成本满足企业管理需要
数据处理进化史
效率低下,管理麻烦
无法处理大量数据
可以存储大量数据,方便关联数据处理
Access开始
数据库相关概念
- 数据(Data):数字、文字、图像、音频、视频等。
- 数据库(DataBase)按特定结构存储数据的文件
- 数据库管理系统(DBMS):对数据进行统一管理,方便数据共享,处理,维护
- 数据库应用系统:(DataBase Application System, DAS)
- 数据库管理员(DataBase Administrator, DBA)
数据库文件的后缀名为.accdb
Access系统六种对象
- 表:保存数据
- 查询:从表中提取数据,查询结果可作为窗体和报表的数据源
- 窗体:数据库与用户之间的界面,用于数据输入和显示
- 报表:自设计格式,展示数据和打印
- 宏:非编程方式实现任务自动化编程方式实现更复杂的自动化功能
- VBA:编程方式实现更复杂的自动化功能
表:保存数据的
查询:是从表中寻找数据
窗体:可以理解为一个图形化界面,与用户交互,窗体是自己设计的,用户可以通过这个界面输入数据
报表:实际上就是把数据库中的数据通过一定的格式,以报表的形式打印出来。报表的格式也是可以自己设计的。报表就是给我们提供了一个功能,让我们自己去设计某一组报表的展现形式,然后把各个数据通过报表的形式展现出来。
宏:非编程方式实现任务自动化
vba:通过编程方式实现更复杂的自动化功能
宏和vba这两个功能都是为了帮助我们在处理大量数据的时候能够实现作业的自动化,不需要我们插手,它可以自动完成我们分配的任务
关系数据库基本概念
关系数据模型
表间关系
一对一:员工与身份证信息
一对多:部门与员工
多对多:课程与学生
Access命令题
题目一
一个“学生”表,其中的字段为“班级编号”“学号”“姓名”“性别”“出生日期”“入学成绩”“是否团员”“备注”“照片”。
(1)列出入学成绩
在300分至320分(包括300分和320分)之间的学生的信息
select
:选择*
:所有字段(所有列)from
:来自(哪个表)where
:条件between
:在什么之间(范围)and
(…和…)
点击展开答案~
1 | select * from 学生 where 入学成绩 between 300 and 320 |
(2)列出按性别
降序排序的结果
- 升序
asc
:12345 - 降序
desc
:54321 order by
:排序
点击展开答案~
1 | select * from 学生 order by 性别 desc |
(3)统计出所有男生
的人数
count(*)
:代表计数
点击展开答案~
1 | select count(*) from 学生 where 性别="男" |
(4)已知学号前两位为年级,请统计出2007级学生的人数
LIKE
是一个用于在WHERE
子句中搜索特定字符串的关键字。执行模糊匹配这里的*
号表示模糊搜索,指2007后面还有其他字符
点击展开答案~
1 | select count(*) from 学生 where 学号 like"2007*" |
题目二
学生表(st)有8个字段:学号(短文本)、姓名(短文本)、性别(短文本)、出生日期(日期/时间)、年龄(数字)、出生地(短文本)、所学专业(短文本)、入学平均成绩(数字),其中学号是主键。
用 SQL 语言实现以下功能。
(1)添加一个学生记录,学号为10012,姓名为张三,性别为男,出生日期为2001年03月12 日,年龄为20岁,出生地为湖北省,所学专业为计算机网络,入学平均成绩为88分。
insert into
: 用于向数据库的表中添加新的记录。#日期#
:日期类型需要用#
括起来
点击展开答案~
1 | insert into st ("10012","张三","男",#2001-03-12#,20,"湖北省","计算机网络",88) |
(2)在表中找出在第(1)步插入的记录,将其年龄更新为年龄加1。
update
:用于修改已存在的数据库表中的记录,可以更改表中一列或多列的值set
:用来指定要修改的列和它的新值
点击展开答案~
1 | update st set 年龄=年龄+1 where 学号="10012" |
(3)删除姓名为“李四”的学生记录。
delete
:用于删除表中满足特定条件的记录
点击展开答案~
1 | delete from st where 姓名="李四" |
(4)查找所有来自四川省的学生的姓名。
点击展开答案~
1 | select 姓名 from st where 出生地="四川省" |
(5)统计一下入学平均成绩大于85分的学生人数。
select count(*)AS
:将符合条件的东西进行计数
注意:在有范围的情况下需要用between
例如:between 60 and 85
表示60到85之间范围的条件
点击展开答案~
1 | select count(*)AS 学生人数 from st where 入学平均成绩>85 |
题目三
“学生”表(st)有8个字段:学号(短文本)、姓名(短文本)、性别(短文本)、出生日期(日期/时间)、年龄(数字)、出生地(短文本)、所学专业(短文本)、入学平均成绩(数字),其中学号是主键。
(1)在表中找出学号为2100 的记录,将其年龄更新为年龄加 1。
update
语句不需要加from
子句
点击展开答案~
1 | update st set 年龄=年龄+1 where 学号 ="2100" |
(2)删除姓名为“李四海”的学生的记录。
delete
需要加from
子句
点击展开答案~
1 | delete from st where 姓名="李四海" |
(3)查找所有来自郑州市的学生的姓名。
点击展开答案~
1 | select 姓名 from st where 出生地="郑州市" |
(4)
- 带有统计字样的,统一带
count(*)
点击展开答案~
1 | select count(*) from st where 入学平均成绩 between 80 and 90 |
题目四
有一个“职工”表,表中有若干记录,表结构定义如下:姓名(短文本)、部门(文本)、年龄(整型)、进厂日期(日期/时间)、职称(短文本)、性别(短文本)、电话(短文本)。
(1)列出姓名中包含“强”字的全部男职工的信息。
点击展开答案~
1 | SELECT * FROM 职工 WHERE 姓名 LIKE "*强*" AND 性别="男" |
(2)列出所有技术部以外的年龄大于 40 岁的职工的姓名和电话。
点击展开答案~
1 | SELECT 姓名,电话 FROM 职工 WHERE 年龄>40 AND 部门<>"技术部" |
(3)统计进厂迄今超过 25 年的职工人数。
点击展开答案~
1 | SELECT COUNT(*) AS 职工人数 FROM 职工 WHERE YEAR(DATE())-YEAR(进厂日期)>25 |
(4)把所有人的年龄加1。
点击展开答案~
1 | UPDATE 职工 SET 年龄 = 年龄 + 1 |
题目五
有一个“职工”表,表中有若干记录,表结构定义如下:姓名(短文本)、部门(短文本)、年龄(整型)、进厂日期(日期/时间)、职称(短文本)、性别(短文本)、电话(短文本)。
(1)列出姓“张”的男性职工的信息。
点击展开答案~
1 | SELECT * FROM 职工 WHERE 姓名 ="张*" AND 性别="男" |
(2)列出所有技术部的年龄大于35岁的职工的姓名和电话。
点击展开答案~
1 | SELECT 姓名,电话 FROM 职工 WHERE 年龄>35 AND 部门 = "技术部" |
(3)统计进厂迄今超过15年的职工人数。
点击展开答案~
1 | SELECT COUNT(*) AS 职工人数 FROM 职工 WHERE YEAR(DATE())-YEAR(进厂日期)>15 |
(4)删除所有年龄大于60岁的男性职工。
点击展开答案~
1 | DELETE FROM 职工 WHERE 年龄>60 and 性别 = "男" |
题目六
现有数据表学生(学号(C),姓名(C),性别(C),年龄(),专业(C)
(1)将所有性别为女的学生年龄加1。
点击展开答案~
1 | UPDATE 学生 SET 年龄=年龄+1 WHERE 性别="女" |
(2)查询年龄大于 19岁的学生的全部信息,并按照年龄降序排列。
点击展开答案~
1 | SELECT * FROM 学生 WHERE 年龄>19 ORDER BY 年龄 DESC |
(3)查询各专业的人数。
点击展开答案~
1 | SELECT专业,COUNT(*) AS 人数 FROM 学生 GROUP BY 专业 |
或者
1 | SELECT专业,COUNT(专业) AS 人数 FROM 学生 GROUP BY 专业 |
(4)删除所有年龄大于 20 岁且性别为男的学生记录。
点击展开答案~
1 | DELETE FROM 学生 WHERE 年龄>20 AND 性别="男" |
题目七
有一个职工表对象,表结构定义如下
姓名 | 部门 | 年龄 | 进场日期 | 职称 | 性别 | 电话 |
---|---|---|---|---|---|---|
文本型 | 文本型 | 整型 | 日期/时间型 | 文本型 | 文本型 | 文本型 |
(1)列出姓“张”的男职工信息。
点击展开答案~
1 | select * from 职工 where 性别="男" and 姓名 like"张*" |
(2)列出所有技术部的年龄在35岁以上的职工的姓名和职称
点击展开答案~
1 | select 姓名, 职称 from 职工 where 部门='技术' and 年龄 > 35; |
(3)统计进厂迄今已满15年及以上的职工人数。
点击展开答案~
1 | select count(*) from 职工 where year(date())-year(进场日期)>=15 |
(4)删除所有年龄在60岁以上的男职工信息。
点击展开答案~
1 | delete from 职工 where 年龄>70 and 性别="男" |
题目八
学生表有7个字段:
学号(文本型)、姓名(文本型)、性别(文本型)、出生日期(日期型)、专业(文本型)、联系方式(文本型)、家庭住址(文本型),其中学号为主键。
成绩表有4个字段:
学号(文本型)课程名称(文本型)、成绩(数字型)、学分(数字型),其中学号和课程名称为主键。
(1)在成绩表中查询前三名的信息,并按成绩降序排序。
点击展开答案~
1 | select top 3 * from 成绩 order by desc |
(2)查询2003年出生的计算机应用专业的学生信息。
点击展开答案~
1 | select * from 学生 where 出生日期 between#2003/1/1# and #2003/12/31# and 专业="计算机应用" |
(3)查询每位学生的成绩,并显示学号、姓名、课程名称、成绩字段。
点击展开答案~
1 | select 成绩表.学号,学生表.姓名,成绩表.课程名称,成绩表.成绩 |
(4)查询平均成绩在70分以上(含)的课程名称。
点击展开答案~
1 | SELECT 课程名称 FROM 成绩表 GROUP BY 课程名称 HAVING AVG(成绩) >= 70; |
题目九
在“教职工人事管理系统”中,已建立“教职工基本信息”表和“教职工 工资”表 。
“教职工基本信息”表的字段分别是:
教工号(文本型)、姓名(文本型)、性别(文本型)、出生日期(日期/时间型)、部门(文本型)、学历(文本型)、职称(文本型)、联系方式(文本型),其中教工号为主键。
“职工工资”表中的字段分别是:
教工号(文本型)、基本工资(数字型)、奖金(数字型)、应发工资(数字型),其中教工号为主键。
(1)查询“教职工基本信息”表中“信息工程学院”教师的所有信息;
1 | select * from 教职工基本信息 where 部门="信息工程学院" |
(2)查询应发工资大于4000的教师人数,输出字段为“教师人数”:
1 | select count(*) as 教师人数 from 职工工资 where 应用工资>4000 |
(3)查询“教职工基本信息”表中“学历”为博士且“职称”为副教授或教授的教师的“教工号”、“姓名”和“部门”;
1 | select 教工号,姓名,部门,from 教职工基本信息 where 学历="博士" and (职称="副教授" or 职称="教授"); |
(4)通过查询创建一个新表,并显示“教工号”、“姓名”、部门、“奖金”,新表的名称为“教师奖金细目表”
1 | CREATE TABLE 教师奖金细目表 AS |
题目十
现有数据表 S,字段有(姓名,性别,工资,年龄,电话,居住地区)
(1)列出表S中的所有内容
1 |
(2)列出表S中居住地在广州的男性的资料
1 |
(3)列出表S中居住在上海、成都的人的信息
1 |
(4)列出表S中年龄为22~25岁(包含22和25岁)的人的信息
1 |
题目十一
现有数据表 S(姓名,性别,工资,年龄,电话,居住地区)。 用sql语句实现:
(1)列出表S中年龄为20~30岁(不包含20和30岁)的女性员工的信息。
1 | SELECT * FROM S WHERE 性别 = '女' AND 年龄 > 20 AND 年龄 < 30; |
(2)统计表S中年龄在20岁以下(不包含20岁)的女性员工的人数。
1 | SELECT COUNT(*) |
(3)将性别为女且年龄为 22和 24岁的员工的工资值调整为6666。
1 | UPDATE S |
题目十二
Access实训题
题目一
在“进销存管理”数据库中,已经建立的“员工”表结构如下:员工(员工编号,姓名,性别,出生日期,联系电话,入职时间,照片)。
(1)对“员工”按“入职时间”升序排列。
打开access,打开“学生成绩管理”数据库,打开员工表,选中员工表,单击入职时间,然后单击升序
(2)“入职时间”相同的按“出生日期”降序排列。
打开access,打开员工表,选中员工表,
点击展开答案~
打开“学生成绩管理”数据库,单击“创建”→“表格”→“表”按钮,进入创建表的工作界面。
选择“ID”字段并右击,在弹出的快捷菜单中选择“重命名字段”选项,将字段重命名为“编号”,为该列指定字段名称。
选择“编号”字段,单击“表格工具/字段”→“格式”→“数据类型”下拉按钮,在下拉列表中选择“短文本”选项,在“表格工具/字段”选项卡“属性”选项组的“字段大小”文本框中输入“6”。
从第二列开始,在“单击以添加”列中单击,选择第二列字段的数据类型为“短文本”,同时第二列的列名变为“字段1”,将“字段1”重命名为“课程名称”,将字段大小设为12。
重复步骤(4),继续单击第三列出现的“单击以添加”,选择第三列字段的数据类型,设为“短文本”,将“字段1”重命名为“类别”,字段大小设为2。
用同样的方法,选择第四列字段的数据类型,设为“数字”,将字段名称重命名为“学时数”。
单击“保存”按钮,打开“另存为”对话框,在其中输入表名称:课程,单击“确定”按钮完成表的创建。
新表创建完成之后,如果需要对表结构进行修改,则可以切换到设计视图,修改之后重新保存即可。
题目二
考查知识点:创建窗体的基本方法
在“学生成绩管理”数据库中,已经建立的“学生”表结构如下;学生(学号,姓名,性别,年龄,专业)。
使用窗体向导完成窗体的设计,按照下述要求写出详细的操作步骤。
(1)窗体标题为“学生信息表”。(2分)
(2)窗体布局为“纵栏表”。(2分)
(3)窗体显示内容包括:学号、姓名、专业。(4分)
点击展开答案~
打开access,打开“学生成绩管理“数据库
单击创建-单击窗体-在创建里单击‘窗体向导’-在可用字段里单击学号-点击”>“移到可用字段
“姓名””专业“重复步骤(2),完成后单击下一步-
选择纵栏表-单击下一步,将窗体标题改为“学生信息表”-单击”完成“
题目三
在”教师信息管理数据库中“已经建立的”教师“表结构如下:教师(工号,姓名,性别,年龄,职称,学历,所属系)要求如下:
(1)设置“按选定内容饰选”方式。(4分)
(2)筛选出所有女教师的记录、(4分)
点击展开答案~
(1)在数据表视图中打开”教师“表
(2)将光标定位在任意一个“性别”字段中值为”女“的单元格中
(3)在开始菜单中点击筛选器,点击”女“,单击”完成“