Access数据库这些功能如果你掌握了,数据从此为你所用
数据表“合计”公式的应用
我们先来打开一个“学生成绩表4”,如下图:
然后点击“开始”选项卡下面的“合计公式”
在数据表的最后一行出现了“汇总”字样:
你可以在汇总一行的每个字段下选择想要的结果
对于数字格式的字段会有7种结果
而对于文本则只有一个“计数”结果:
下面是文本字段:
分别对字段班级1求“计数”
对英语求“平均分”
对语文求“最高分”
对数学求“最低分”
得到如下的结果是有21条数据
英语平均分是62.3分
语文最高分是96分
数学最低分是47分,如下图:
数据表的“筛选”功能
从2007以后版本的Access数据库开始兼容了Excel的一些基本操作功能
再加上本身的数据库功能,使得它倍受青睐
你如果想在Access数据库中,对表实现一些简单的“筛选”功能,可以不用写“查询语句”,直接用鼠标操作即可
假如你想对下面的学生成绩表进行筛选
你需要二班语、数、外成绩及格的人员数据:
通常在数据库中,你需要写“查询语句”来实现上述的任务
创建一个查询,并写上语句:
select * from 学生成绩表 where 班级=‘二班 and 英语分数>=60 and 语文分数>=60 and 数学分数>=60
点击红色叹号运行,结果如下:
可以看到,二班的学生三门课同时都及格的只有两名学生
学号分别是17号和21号,你如果不写查询语句怎么完成这个操作呢?
其实很简单,从下面能够看到,每个字段名字旁边都有一个黑色的三角号:
点击黑色小三角:
直接选中二班,点确定:
看到了吗,数据只有二班的了,接着点击英语分数旁边的黑色小三角:
界面有点不一样了,因为它是数字格式的字段
你不要一个一个地去选,比较麻烦
直接点击数字筛选器,再点击大于(实际上这是个大于等于):
输入60即可,然后确定,以此类推,语文和数据都这么弄,就得到下面的结果:
这个不用写语句,同样可以实现
所以零基础的小白学习Access数据库也是相当容易的
数据表中数据的“排序”功能
你想要对下面的学生成绩表,按英语分数由低到高进行排序:
如果你用查询语句实现,你可以创建一个查询并写上语句:
select * from 学生成绩表 order by 英语分数
这里面的order by表示由低到高进行排序:
点击红色叹号运行,结果如下:
如果你想要由高到低排序怎么办?
SQL语句这么写:
select * from 学生成绩表 order by 英语分数 desc
只是在原来的基础上多了一个“desc”,即为由高到低排序:
运行结果:
你除了写查询语句进行排序外,还可以通过简单的鼠标操作来实现数据的排序问题
打开学生成绩表,右键点击“英语分数”字段:
可以看到,有升序和降序两种选择
你只需要选择一种我们想要的排序即可,排序结果如下(由低到高排序):
这种用鼠标操作的排序是非常简单的
“left”的用法
“left”在Access数据库中表达的含义是“左截取”
也就是从左面开始截取字符,它的用法是:
left(字段名称,2),表示对某个字段进行左截取2个字符
你要对下面的“学生信息表”中的出生日期精确到月份即可,就可以用到left:
你可以创建一个查询并写上语句:
select *,left(出生日期,6) as csrq from 学生信息表
这里面的left(出生日期,6)即为对字段“出生日期”从左面开始取6位
关于“as csrq”表示一个别名,前面的文章已经讲过:
点击红色叹号运行,结果如下:
可以看到出生日期精确到月份了
从“出生日期”字段左面取了6位,这只是一个查询,并没有生成真正的数据表
如果要生成真正的数据表,需要这样:
select *,left(出生日期,6) as csrq into 学生信息表改 from 学生信息表
加一个“into 学生信息表改”即可:
运行结果:
这时你的数据库中就生成了一个实实在在的表了“学生信息表改”
“top”用法
对于下面的“学生成绩表”
你只想要显示前7行数据
在查询语句中怎么进行控制呢?
你可以创建一个查询并写上语句:
select top 7 * from 学生成绩表
这里面的top 7就是显示前7行
*就是显示所有字段的数据:
点击红色叹号运行,结果如下:
假如你只想要显示班级,学号和英语分数这几个字段
应该这么写:
select top 7 班级,学号,英语分数 from 学生成绩表
运行结果:
“文本类型”转换为“时间类型”
下面是学生的入学时间表
为了方便录入数据,录入人员在“入学时间”字段录入的是文本类型的数据
你怎么才能把它转换为真正的日期型呢?
第一步:加一个“入学时间1”字段,类型选择“日期/时间”型:
可以看到“入学时间1”字段,这个字段的类型就是“日期/时间”型的:
第二步:创建查询,写语句:
UPDATE 入学表SET 入学时间1 = CDATE(LEFT(入学时间,4)&"/"&MID(入学时间,5,2)&"/"&RIGHT(入学时间,2))
CDATE函数就是将文本转换为日期,里面由三部分组成,每个部分用”/”隔开:
1、LEFT(入学时间,4):表示年,用left实现,左边截取4位
2、MID(入学时间,5,2):表示月,用mid实现,从每5位开始截取2位
3、RIGHT(入学时间,2):表示日,用right实现,右边截取2位
“&”用于连接每一部分与”/”。
第三步:运行结果:
可以看到入学时间1字段变成了日期型的
SQL查询“不重复”数据
对于下面的“学生成绩表7”,里面有一些重复的数据
你怎么来查询不让它重复呢?
你可以创建一个查询并写上语句:
select distinct 班级,学号,语文分数,数学分数from 学生成绩表7order by 学号
distinct就是显示唯一的数据值,后面接想要的字段名称即可
order by的作用就是按学号进行升序排序
运行,结果如下:
除了这种方法,还有一种方法同样可以实现这种操作
SQL语句改为:
select 班级,学号,语文分数,数学分数from 学生成绩表7group by 班级,学号,语文分数,数学分数order by 学号
运行结果:
SQL查询“between and”的用法
SQL查询语句中“between and”表示条件的范围,一般跟在where的后面
下面是“学生成绩表”
你想要查询英语分数在40分到70分之间的学生:
你可以创建一个查询并写上语句:
select * from 学生成绩表 where 英语分数 between 40 and 70”
这里面的between…and就表示在哪个区间:
运行结果如下:
查询语句“字符匹配”
下面是所有学生成绩表:
你想要把所有姓“张”的学生的成绩提出来,应该怎么办?
创建一个“查询”并写上语句:
select * from 学生成绩表 where 姓名 like '张*'
从查询语句可以看出“like”可以实现字符匹配
like ‘张*’字符匹配,“*”代表通配符
你想要提取姓“张”的学生,所以“张”字开头,后面用“*”代替后面的名字
运行结果如下:
如果,你想要把所有学生名字中带“冰”字的学生成绩提出来,应该怎么办?
创建一个“查询”并写上语句:
select * from 学生成绩表 where 姓名 like '*冰*'
前后都加通配符,表示“冰”字可以在名字中的任何位置
运行结果如下:
如何用not like 来提取不包含这些字的学生
看下面这个语句:
select * from 学生成绩表 where 姓名 not like '张*'
运行结果如下:
当然,如果想要提名字最后一个字是“玲”字和最后一个字不是“玲”字的学生成绩,也很容易
SQL查询语句【in】和【null】的用法
1、【in】的用法
下面是学生成绩表:
你只要一班和二班学生成绩信息,创建一个查询
查询语句为:
select * from 学生成绩表 where 班级 in('一班','二班')
【in】的用途就是把班级限制在(‘一班’,’二班’)这个集合中
下面就是集合限制的查询语句:
当然,集合里面是可以有多个元素的,也可以加上三班或者四班
运行结果如下:
显示的查询结果能够看出,只有“一班”和“二班”的学生成绩
那如果在“in”的前面加个“not”表达什么含义呢?看下面的【not in】的用法:
查询语句:
select * from 学生成绩表 where 班级 not in('一班','二班')
语句中多了一个“not”:
运行结果如下:
2、【null】的用法
从下面的学生成绩表中可以看到,有些学生的班级信息漏掉了
你要把这些学生找出来
看这个查询:
select * from 学生成绩表 where 班级 is null
运行结果:
那么【is not null】就表示不为空:
select * from 学生成绩表 where 班级 is not null
运行结果:
用【and】进行多条件查询实例
下面是一个“学生成绩表”:
想要在学生成绩表中提取一班、二班和三班学生的三科成绩
这些学生英语不及格,但数学成绩及格
语文分在50-70分之间,并且名字中不能包括“冰”字
创建一个查询:
select * from 学生成绩表 where 班级 in('一班','二班','三班') and 姓名 not like '*冰*' and 英语分数<60 and 数学分数>=60 and (语文分数 between 50 and 70)
这个SQL查询语句看着有点长,实际上并不复杂:
条件1,班级 in(‘一班’,’二班’,’三班’),这个用到了“in”,表示所在的集合;
条件2,姓名 not like ‘*冰*’,这个用到了“not like”,表示不包含;
条件3,英语分数<60,这个用到了“<”,表示小于;
条件4,数学分数>=60,这个用到了“>=”,表示大于等于;
条件5,语文分数 between 50 and 70,这个用到了“between…and”,表示介于两个数之间。
同时满足这一个条件,最后的查询结果是:
有9个学生满足以上五个条件。
其实,在条件1中,你还可以这样写:
条件1,班级 not in(‘四班’,null)
运行的结果如下,查询的结果也是这9个学生:
用【or】进行“并列或”的条件查询
下面是一个“学生成绩表”:
想要在学生成绩表中提取一班和三班学生的三科成绩
这些学生三门课只要有一门不及格就提出来
并且这些学生只能姓“张”或者姓“刘”
创建一个查询:
select * from 学生成绩表where 班级 in('一班','三班') and (姓名 like '张*' or 姓名 like '刘*') and (英语分数<60 or 数学分数<60 or 语文分数<60 )
来分析一下:
条件1,班级 in(‘一班’,’三班’),这个表示一班和三班的都提出来;
条件2,(姓名like ‘张*’ or 姓名like ‘刘*’),这个表示姓张的或者姓刘的学生都提出来;
条件3,(英语分数<60 or 数学分数<60 or 语文分数<60 ),这个表示只要学生有一科没及格就提出来。
以上的【or】都表示“或者”,最后的查询结果是一共有16个学生符合条件:
你只要用括号把大的条件分清,再用or或者and去限制小的条件,基本是不会出错的。
用“rnd()”函数产生随机数
下面是一个“学生成绩表”
已经添加了三个字段,都是数字格式的,用于生成三组不同类型的随机数字
还添加了一个自动编号格式的ID字段:
至于如何添加字段,可以翻看以前的文章
然后创建一个查询,并写上SQL查询语句:
update 学生成绩表 set 随机数1=rnd(id)
以前讲过update set的用法,它是对表进行更新操作,也就是修改表
来分析一下随机数字是怎么产生的:
随机数1=rnd(id) 表示rnd(id)产生一组0-1之间的随机数
并放到随机数1这个字段
Access数据库很特殊,这里面用到了id字段
它就是一个自动编号字段,运行结果如下:
那如何产生0-100之间的随机数字呢?请看下面的语句:
update 学生成绩表 set 随机数2=rnd(id)*100
将rnd(id)乘以100,表示0-100之间的随机数字,结果如下:
上面产生的随机数都是从0开始的
那么,如何产生两个固定数字之间的数呢?
假如你想要50-100之间的数呢?
请看下面的语句:
update 学生成绩表 set 随机数3=rnd(id)*50+50
rnd(id)是0-1之间
rnd(id)*50就表示0-50之间
rnd(id)*50+50就表示50-100之间
运行结果如下:
实现字段数据的“自动计算”
下面是一个“学生成绩表”
有语、数、外三科成绩:
你想要加一个总分,实现字段的自动计算
第一步:打开表,点击设计视图:
增加一个总分字段,数据类型选择“计算”:
在上面的空白处键入“[英语分数]+[数学分数]+[语文分数]”
所表达的含义是新增加的“总分”字段的内容是“语数外三个字段的和”:
点击确定后,回到数据表视图下
可以看到多了一个“总分”字段,并且自动计算出了总分:
假使,你对期中的一科成绩进行修改,那么总分会自动更新结果:
可以看到英语分数修改了,总分跟着就自动计算
导入VF数据库时出错的处理方法
有一些VF数据表需要导入Access数据库:
你想要把它们导入到Access数据库
第一步:点外部数据选项卡下的其他,选择最后一项dBASE文件:
选择VF数据库所在的路径后,双击文件即可:
确定后,出现了下面的错误信息“外部表不是预期的格式”:
什么原因呢?
这是因为Access数据库并不识别现有的VF数据库格式
只需要把VF数据库另存一下,改一下格式就可以了
首先,我们把VF数据表打开,点击文件,选择导出:
确定后,出现下面这个界面,将默认的VF3.0格式改成下面的Dbase 格式:
确定后可以看到再次导入VF数据时,弹出了下面的界面:
说明你已经成功导入了这个表:
轻松实现对Access数据库的基本设置
第一步,双击打开你的数据库:
第二步,点击“文件”选项卡,选择“选项”:
选择选项后,会弹出以下界面:
第三步,对常规、当前数据库、数据表和对象设计器等四项进行设置:
1、常规:
选择蓝色后,点击确定,可以看到数据库的颜色变啦:
变成蓝色了,你也可以选择黑色:
2、“当前数据库”设置:
选择选项卡式,你的数据表可以很容易的找到:
下面这是重叠式的:
3、“数据表”设置:
你可以对数据表进行基本的设置
你选择凸起的效果,字号大一点并加粗:
4、“对象设计器”设置:
你可以对默认的字段类型和字段大小等进行修改
原来是文本的可以设置数字的
这样你增加一个字段后,它的类型就自动是数字的:
总结
1、了解Access数据库
Access是Microsoft公司推出的Office系列办公自动化软件的一个组件,是一个小型的数据库管理系统。它广泛应用于财务、行政、金融、统计、审计和科研项目等众多领域。
2、创建Access数据库
“开始”→“所有程序”→“Microsoft Office” →“Microsoft Access 2010” →启动Access 2010:
在右下角,你可以选择将该数据库保存的路径及文件名称:
3、创建“数据表”
打开空的数据库→创建→表
创建了名字为表1的表,你可以给它改名字
你可以直接将Excel表里面的数据粘贴过来:
粘贴之后给你的表起个名字:
当然了,也可以导入其它格式的数据到你这个数据库里面
4、创建“查询”
创建→查询设计→单击右键→SQL视图
可以写查询语句了:
5、查询分类
分两大类:
一是选择查询
二是操作查询
显示的图标都不太一样,不同图标表示不同种类的查询,前面的文章讲的很详细。
6、常用的SQL查询语句写法
一是(选择查询):
Select * from 学生成绩表 where 英语分数>=60
二是(更新查询):
update 学生成绩表 set 英语分数=英语分数+5
三是(生成表查询):
Select 学号, 数学分数 into 数学成绩表 from 学生成绩表
四是(追加查询):
Insert into 一班成绩 select * from学生成绩表
五是(删除查询):
delete * from 一班成绩 where 班级 = '二班'
7、常用的函数用法。
Access数据库中一些常用的函数,如:avg()函数、sum()函数、count()函数、max()函数、min()函数、left()函数、cdate()函数