什来之比 发表于 2021-8-29 15:46:36

一文学会ACCESS数据库,管理数据不再使用EXCEL

Access数据库简介

https://p6.toutiaoimg.com/large/pgc-image/fbec0eba30884188b9092fd5838caa97
Access是Microsoft公司推出的Office系列办公主动化软件的一个组件
它是一个小型的数据库管理系统。
它广泛应用于财务、行政、金融、统计和审计等浩繁领域。
在1992年11月Microsoft公司推出了第一个供个人使用的关系数据库系统Access 1.0
此后Access不断地改进和优化,从1995年开始,Access作为Microsoft Office套装软件的一部分,先后推出了多个版本
目前比较好用,而且比较稳固的版本是Access 2010
你在安装Office 2010后,便可启动Access数据库管理系统:
“开始”→“全部程序”→“Microsoft Office”
“Microsoft Access 2010”命令,启动Access 2010。
Access数据库创建表

在Access 2010中,它给我们提供了六大数据库对象,Access的主要功能就是通过这六大数据对象来完成的:
表(Table)
查询(Query)
窗体(Form)
报表(Report)
宏(Macro)
模块(Module)
创建数据表的方式有以下几种:
1、通过复制粘贴创建数据表
起首创建了一个空的数据库,找到保存到的路径,双击打开:
https://p9.toutiaoimg.com/large/pgc-image/98739501ab7b401087105009125ace4e
点击 “创建”选项卡:
https://p26.toutiaoimg.com/large/pgc-image/f88164981ee742caa213f6a21feb729f
选择“表”后,出现了表1,这个就是我们创建的表了,但它是一个空的表:
https://p26.toutiaoimg.com/large/pgc-image/c6334500608b452e8b9185066db66040
这个空的表默认的表名就是表1,当然,我们可以给它改成别的的我们便于识别的名字,下面这个图就是了:
https://p9.toutiaoimg.com/large/pgc-image/bcd6a15bb3e34a28bead4e1c3003a260
点击确定:
https://p9.toutiaoimg.com/large/pgc-image/6da8cc279e9a400eb8c53417c3f0bde2
从Excel表里面取个现成的数据:
https://p6.toutiaoimg.com/large/pgc-image/c0b0ccb05bcc4417a6ea6163c8127c33
复制后粘贴:
https://p6.toutiaoimg.com/large/pgc-image/c05157a0f1c7406ea67f29c0aeb483f6
上面这个数据表已经不是普通的数据表了,它是以数据库的情势存在数据表里面,我们可以用数据库命令对这个数据表进行相应操作了。
2、通过导入外部数据创建数据表
Access数据库也可以通过导入外部数据的方式来建立数据表。
起首,点击“外部数据”选项卡,大家可以看到,供我们导入数据的文件格式有Excel文件、Access文件、文本文件、其他文件格式等等。
https://p9.toutiaoimg.com/large/pgc-image/85ab8528750948c9ae615c3c0d26c6d7
在别的文件格式当中,最常用的就是最后一个dBASE文件,它是VF数据库格式,它的扩展名是.dbf
https://p26.toutiaoimg.com/large/pgc-image/db3d6c6d84cb4116bb2fe0d9db3569e7
也可以直接导入Excel文件当中的数据:
https://p3.toutiaoimg.com/large/pgc-image/b900e02b3aaf4d9b87e3ae5f2213e589
点击确定:
https://p9.toutiaoimg.com/large/pgc-image/124c4a4f5abd4d048a3e928f3bd19a6d
选中一个数据表:
https://p9.toutiaoimg.com/large/pgc-image/19f97e1d1e5742f3b3cc6098989b2c79
下一步:
https://p3.toutiaoimg.com/large/pgc-image/69c9e344b89c45eead81aeff8b1b4834
可以添加主键,也就是前面ID那个字段,它就会主动有个编号,所谓的主键,就是不能有重复,它的作用是方便以最快的速度找到想要的行数据:
https://p6.toutiaoimg.com/large/pgc-image/54fa25ab3a5940af9e09724c2c53f1ce
输入刚刚导入数据表的名称即可:
https://p9.toutiaoimg.com/large/pgc-image/7cfbfae551414b1c944017ad8c5f619b
也可以导入文本文件,点击“外部数据“选项卡下的“文本文件”:
https://p3.toutiaoimg.com/large/pgc-image/d26d5a6c1f34431a9b1007849a847138
找到要导入文本文件所在的路径:
https://p6.toutiaoimg.com/large/pgc-image/f3a4e40520964d1f9e61c5eb5dd64874
点击确定,选择“带分隔符”项:
https://p26.toutiaoimg.com/large/pgc-image/78fedb221f504928ae750e478c8824aa
点击下一步:
https://p9.toutiaoimg.com/large/pgc-image/84b443b954524a96a75eabc0d21b6f31
继续下一步:
https://p26.toutiaoimg.com/large/pgc-image/3feab1aaeb944c529ff3a0c7d5062fa7
点击下一步:
https://p26.toutiaoimg.com/large/pgc-image/8a912638a00143a9862d7c7dd79f9408
还可以导入VF数据库文件,现实就是将别的数据库格式文件的数据直接移植到ACCESS数据库
点击“外部数据”选项卡下的“其他”,最后一项dBASE文件就是导入VF数据格式的文件:
https://p9.toutiaoimg.com/large/pgc-image/9f9c0fe76bd94aebb7372ca52cee9f92
点击后,选择好路径:
https://p26.toutiaoimg.com/large/pgc-image/1c00433969fc4c7c8ea06e284b1e72fc
然后点击确定就OK了:
https://p3.toutiaoimg.com/large/pgc-image/76cb35e87a6844c3a4379d582b813d71
Access数据库查询

Access为你提供了几种不同类型的查询,主要分为两大类:选择查询和操作查询
在进行查询前,我们起首要明白我们的目的,也就是你想要一个什么样的效果?
知道我们想要什么了,才能进一步写查询语句。
比方,校长让教务处主任统计一下哪个班级的英语平均结果最好?哪个班级语文平均结果最好?
https://p9.toutiaoimg.com/large/pgc-image/7d3b5d45fd554520ae8a3b257f4da238
要统计这个数据,主要分以下几步:
第一步:创建查询
点击“创建”选项卡的查询设计:
https://p6.toutiaoimg.com/large/pgc-image/9fe384700b2e4378af27690df2e4865c
https://p9.toutiaoimg.com/large/pgc-image/55d0e0815dd04ce68180f7ec629781bf
关闭单击右键“SQL视图”
https://p6.toutiaoimg.com/large/pgc-image/740e41cf40f34b4d9cf4837f9a463c3f
https://p9.toutiaoimg.com/large/pgc-image/2b89deb92de64f55a6baa1af942fe496
第二步:写查询语句
Select 班级,avg(英语分数),avg(语文分数) From学生结果表4 group by 班https://p9.toutiaoimg.com/large/pgc-image/954696671de440f58725f4b80375d9c0
Select:查询;
班级,avg(英语分数),avg(语文分数):这三个就是我们要的效果,avg是英文平均的缩写
From学生结果表4:这里是从“学生结果表4”里面查
group by 班级:group by是分组的意思,就是按哪个字段进行分类
第三步:运行
红色的“叹号”就是运行
https://p3.toutiaoimg.com/large/pgc-image/5e0e958c0c274822b83d1d0aa41568d0
出现下面这个统计效果
第一列是英语平均分
第二列是语文平均分
https://p6.toutiaoimg.com/large/pgc-image/c428bce7cdba4b8ca48f0d96ed08a668
可以为每个字段加一个别名,As后面接的是一个别名,
也可以把它看作是一个代号
这个别名是为了让你能够识别“avg(英语分数)”和 “avg(语文分数)”的
Select 班级,avg(英语分数) as 英语平均分,avg(语文分数)as 语文平均分 From学生结果表4 group by 班https://p3.toutiaoimg.com/large/pgc-image/243919b924d242138cb67d0d448d6f2c
查询效果有变化:
https://p3.toutiaoimg.com/large/pgc-image/a6a7af2f8f31497da43eea3c69454de4
可以保存这个查询:
https://p9.toutiaoimg.com/large/pgc-image/7cb7fea45b004696a29c5a8dc3c411c2
常用的选择查询可以归纳以下几种类型
第一种查询语句:
Select * from 学生结果表4它的意义就是查询“学生结果表4”中全部的数据,下图便是:
https://p3.toutiaoimg.com/large/pgc-image/8a1661ada5df4cd9b84b07714b52ce29
运行之后,就出现下图这样的效果,和“学生结果表4”中的数据一模一样。
https://p26.toutiaoimg.com/large/pgc-image/4c27d70c47ba4d1589ca27514059ff3e
第二种查询语句:
Select *   from 学生结果表4   where 英语分数>=60较之前多了where 英语分数>=60,就是体现加了条件限定,只查询英语结果及格的数据,where后面接的就是限定条件。
https://p3.toutiaoimg.com/large/pgc-image/e3870b1a20e6419ea3a7947bf1fc1d30
运行之后,就出现下图这样的效果,显示的只是英语结果及格的职员,不及格的不显示。
https://p26.toutiaoimg.com/large/pgc-image/5d28955c3e984b2fab1b15a93793a8dd
第三种查询语句:
Select 班级,avg(英语分数) from 学生结果表4 where 英语分数>=60 group by 班级较之前多了“group by 班级”,而且把“*”改成了“班级,avg(英语分数)”,就是体现对不同班级进行分组查询,而且只查询及格职员的平均结果,也就是中上等学生之间的比较,把不及格职员排除在外了。
https://p3.toutiaoimg.com/large/pgc-image/1a5abf992439421ab54fa5e3728de10d
运行后,是下图这样的效果,显示了不同班级英语结果及格学生的平均分数。
可以看到二班及格学生的英语平均结果最高
二班中上等生的英语结果要普遍高于别的班级的中上等生
https://p3.toutiaoimg.com/large/pgc-image/414572af14d345b09190666f44be1311
Access数据库查询语句几个常用的统计函数

1、avg()函数
这个比较熟悉,就是取字段的平均值:求每个班级语文的平均分:
Select 班级,avg(语文分数) from 学生结果表group by 班级https://p26.toutiaoimg.com/large/pgc-image/016607ad8a704dc1a5aca63eaa35bf85
运行效果:
https://p26.toutiaoimg.com/large/pgc-image/3e35666205cf4362b36f5c43a3d82312
2、sum()函数
这个函数和我们Excel里面的比较雷同,它就是求和函数,求每个班级语文的总分:
Select 班级,sum(语文分数) from 学生结果表group by 班级https://p26.toutiaoimg.com/large/pgc-image/c1470e21806149dba0dfe406fde15059
运行效果:
https://p26.toutiaoimg.com/large/pgc-image/b6b2952644864145a75e999523963c38
3、count()函数
统计记录数,求每个班级的学生人数:
SELECT 班级, count(学号)FROM 学生结果表GROUP BY 班级;https://p3.toutiaoimg.com/large/pgc-image/9c15beb487514b238ee31d868d1341b2
运行效果:
https://p3.toutiaoimg.com/large/pgc-image/bacc45fa573e45db8f015526890818c1
4、max()函数
取字段最大值,求每个班级的语文最高分:
SELECT 学号, max(语文分数)FROM 学生结果表GROUP BY 学号;https://p26.toutiaoimg.com/large/pgc-image/8b7a1f4f72b24e2482cf38f857f26434
运行效果:
https://p26.toutiaoimg.com/large/pgc-image/eb0871ad124247809e77b373a5d24cb6
5、min()函数
取字段最小值,求每个班级的语文最低分:
https://p3.toutiaoimg.com/large/pgc-image/1556ee1646f247c098773a5a2d834f2b
运行效果:
https://p6.toutiaoimg.com/large/pgc-image/1879071e03f24184bcbfe5682037dd04
查询语句中where和having的条件用法

where和having在查询语句中的作用都是条件限定
它们在查询语句中的位置是不一样的,而且限定的内容也不一样
1、所处位置不一样
在查询语句中where作为普通条件限定,它是在group by 之前
SELECT 班级, avg(语文分数) AS 语文平均分FROM 学生结果表WHERE 英语分数>=60GROUP BY 班级https://p9.toutiaoimg.com/large/pgc-image/b84662007bbd43ed877dcb4a9b41813d
而having是一个过滤声明,是在查询返回效果集以后对查询效果进行的条件限定,位置是在group by 之后
SELECT 班级, avg(语文分数) AS 语文平均分FROM 学生结果表WHERE 英语分数>=60GROUP BY 班级HAVING avg(语文分数)>=60;https://p26.toutiaoimg.com/large/pgc-image/6523b297ac214d15a017b18ef254bdaa
2、后接内容不一样
在查询语句中where后面只能接普通条件,不能接聚合函数条件
所谓的聚合函数就是我们上一期提到的函数都可称为聚合函数
下面where后这样写是错误的:
SELECT 班级, avg(语文分数) AS 语文平均分FROM 学生结果表WHERE avg(语文分数)>=60//错误GROUP BY 班级https://p3.toutiaoimg.com/large/pgc-image/bd7f78abe130472ab4983e630af3884a
在查询语句中having作为查询效果返回后的条件限定,需要接返回效果后的条件
下面having后这样写是错误的,因为返回效果已经不存在“英语分数”这个字段了:
SELECT 班级, avg(语文分数) AS 语文平均分FROM 学生结果表WHERE 英语分数>=60GROUP BY 班级HAVING 英语分数>=60;//错误https://p26.toutiaoimg.com/large/pgc-image/9f8c094b8cda41e7bceaf8ef7db7782a
3、运行效果不一样
在where后接的条件体现要在英语结果及格的学生中进行统计
统计这些学生的语文结果怎么样
从下面的效果可以看到:
在一班英语及格的学生中语文结果并不好平均结果没有达到及格线
而别的班级英语和语文结果都较好。
https://p9.toutiaoimg.com/large/pgc-image/c073c702f1af40d7acbaa6349903ed67
而having后加了个条件是avg(语文分数)>=60
这体现在统计效果中只显示平均结果及格的班级,不及格的班级不显示
从效果看以看到:
下面这个效果较之前少了一个班级,就是一班,因为一班语文平均结果没及格
https://p3.toutiaoimg.com/large/pgc-image/30b2b6c918e0411387015c1f6f5f8484
同时查询多个表

下面这个数据库有两个结果单
一个是期中测验
一个是期末测验
要看一看学生结果有没有进步:
https://p6.toutiaoimg.com/large/pgc-image/5148680dbe584cb4a4839bf72664e731
创建一个查询,并写上下面的查询语句:
SELECT A.学号, A.姓名, A.英语分数 AS 此中英语分, B.英语分数 AS 其末英语分FROM 根本信息 AS A, 期末测验 AS BWHERE A.学号=B.学号;https://p26.toutiaoimg.com/large/pgc-image/f08be34c12624e8abbfcfea3d48ad4fe
SELECT:后面接的就是我们想要的信息,如学号,姓名,期中英语分,期末英语分;
FROM:后面接的就是涉及的表名,这里面我们就涉及两个表,一个是“期中测验”,一个是“期末测验”;
WHERE:后面接的就是限定条件,因为我们查的是两个表,而这两个表必须有一个纽带能够联系到一起,而这个纽带就是学生的学号,因为每个学生的学号是唯一的,并没有重复,所以,我们查询两个表的时候必须找到一个纽带,这个纽带不能重复,否则我们无法正确的区分学生的结果。
运行之后,得到下面的效果:
https://p6.toutiaoimg.com/large/pgc-image/cf2e330282c442a1b3b5755a8c8d0d97
可以看到,赵风车的结果下降的最快,期中考了70分,而期末考了35分
其他人的结果有上升较快的,刘玲的结果由30分上升到76分
这样每个学生的结果就一目了然了,无论涉及几个表,只要找到这几个表共有的纽带,就可以查询每个表相对应的信息了。
简单的嵌套查询

先来看下面这个简单的查询:
SELECT 班级, avg(英语分数) AS 英语平均分, avg(语文分数) AS 语文平均分FROM 学生结果表4GROUP BY 班级;https://p3.toutiaoimg.com/large/pgc-image/83dae4de14e0463ab5ab363741546dbd
运行效果是:
https://p9.toutiaoimg.com/large/pgc-image/2c51cd6ab2cf4e369f024e231c9fd13a
下面这个就是嵌套查询了:要看一下哪个班级英语平均分和语文平均分都及格了?
SELECT *FROM (SELECT 班级, avg(英语分数) AS 英语平均分, avg(语文分数) AS 语文平均分 FROM 学生结果表y GROUP BY 班级)AS [%$##@_Alias]WHERE 英语平均分>=60 AND 语文平均分>=60;https://p26.toutiaoimg.com/large/pgc-image/5a5ab303762d4d1d83eadcf06c51909d
运行效果是这样的,可以看到只显示两门结果都及格的班级。:
https://p3.toutiaoimg.com/large/pgc-image/65b7f689d2174d06a2d934515fef619f
结语:觉得有用的请关注、转发、收藏、点赞!

什来之比 发表于 2021-8-29 15:59:23

有人在使用这个数据库吗?

什来之比 发表于 2021-8-29 16:00:02

也容易上手

什来之比 发表于 2021-8-29 15:59:40

用起来非常方便

王小二他哥的初恋是翠花 发表于 2021-8-29 16:43:35

我平时工作是结合excel+access使用的,用excel处理数据,用access存储数据,但遇到十万万行以上的数据access也会比较吃力变得非常卡顿,虽然access可以突破excel的108万行的瓶颈,但筛选和用sql查询也是非常慢,还有什么推荐的方案吗?

语言学女青年 发表于 2021-8-30 11:08:58

先收藏。这个是自己下载还是插件?有点没看懂。。。

收不到私信回复 发表于 2021-9-22 10:58:08

要求每个人的语文数学英语总分怎么查询?

unknown17 发表于 2021-8-29 17:46:38

以前学过fox base 不过忘记了

eayeking 发表于 2021-11-2 10:32:33

好复杂,我还是用Excel表格吧

无忧的帆船ql 发表于 2021-9-13 07:51:12

如果不是本机本地数据,局域网同事怎么访问这个查询界面呢?
页: [1] 2 3
查看完整版本: 一文学会ACCESS数据库,管理数据不再使用EXCEL