Access实现信息可视化查询的例子

此内容其实是我当时大作业的内容,本着开源的精神,我将其分享出来。

题目:游戏信息可视化查询

所做的内容就是从和鲸社区里面找一个别人的数据集,然后扒下来。使用Access做一个数据库的可视化查询工作。
注意:这里面的游戏数据是过时的且不一定准确,这里只是做一个Access可视化演示用例!!!

第一部分 数据搜索与清晰

1.1 数据搜索

(1) 打开浏览器,在和鲸社区寻找数据,进行登录操作。
在这里插入图片描述
(2) 输入游戏,寻找到所需数据。
在这里插入图片描述

1.2 数据清洗

(1)打开下载完的数据表
在这里插入图片描述
(2)对数据表进行简单的分类,根据列的信息分成了3个颜色,用于后续创建表的操作。
在这里插入图片描述
(3) 由于数据量过大,决定对数据进行筛选,留下50条记录,并设置ID列为每个表的主键。
在这里插入图片描述
(4) 根据前面的划分,创建3个Excel表,每个表添加ID列,为后续创建数据库以及设置主键做铺垫。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第二部分 数据库和表概念设计

2.1 E-R图

在这里插入图片描述

2.2 关系模型

3个数据表之间的关系模型:
游戏排名(ID,排名,游戏名称,开发商)
游戏风评(ID,推荐次数,评分,评分次数)
游戏信息(ID,上架时间,游戏大小,支持语言,游戏类型)

第三部分 数据库和表的创建

3.1 数据库创建

直接新建Access文件即可,其内部SQL逻辑为(注意Access没有创建数据库的说法,其整个文件就是数据库,这里只是写出其对应的等效的SQL语句):

Create database 游戏;
Use 游戏;

在这里插入图片描述
在这里插入图片描述

3.2 数据表创建

(1) 创建游戏排名表,结构和sql语句如下:
表1:游戏排名
表1 游戏排名表的结构
列名 数据类型 长度 是否允许为空值 说明
ID 字符型(char) 3 × 主键
排名 整型(int) 系统默认 ×
游戏名称 字符型(char) 40 ×
开发商 变长字符型(varchar) 50 √

等效的Sql语句,但注意实际上Access没有命令行创建表格的接口,只能用图形化界面创建:

Create Table 游戏排名(
ID CHAR(3) PRIMARY KEY,
排名 INT NOT NULL,
游戏名称 CHAR(40) NOT NULL,
开发商 VARCHAR(50)
);

效果如下:
在这里插入图片描述
(2) 创建游戏风评表,结构和sql语句如下:
表2:游戏风评
表2 游戏风评表的结构
列名 数据类型 长度 是否允许为空值 说明
ID 字符型(char) 3 × 主键
推荐次数 整型(int) 系统默认 ×
评分 短整型(smallint) 系统默认 ×
评分次数 整型(int) 系统默认 ×

Sql语句:

Create Table 游戏风评(
ID CHAR(3) PRIMARY KEY,
推荐次数 INT NOT NULL,
评分 SMALLINT NOT NULL,
评分次数 INT NOT NULL
);

效果如下:
在这里插入图片描述
(3) 创建游戏信息表,结构和sql语句如下:
表3:游戏信息
表3 游戏信息表的结构
列名 数据类型 长度 是否允许为空值 说明
ID 字符型(char) 3 × 主键
上架时间 date 系统默认 ×
游戏大小(MB) 浮点型(float) 系统默认 ×
支持语言 变长字符型(varchar) 35 √
游戏类型 字符型(char) 10 ×
Sql语句:

Create Table 游戏信息(
ID CHAR(3) PRIMARY KEY,
上架时间 DATE NOT NULL,
游戏大小 FLOAT NOT NULL,
支持语言 VARCHAR(35),
游戏类型 CHAR(10) NOT NULL
);

效果如下:
在这里插入图片描述

第四部分 插入数据

4.1 数据复制方法

(1)选中Excel表全部数据并进行复制操作
在这里插入图片描述
(2)打开Access中对应表格,点击第1行,即可把信息赋值进去,位置如红色标记所示
在这里插入图片描述

第五部分 创建视图

5.1 游戏排名类

(1)创建视图“前10名游戏”查询游戏排名前10(包含10)的排名、游戏名称、游戏类型、游戏大小和评分
注意:在Access的SQL语句中并没有create view概念,因为它的select语句作用就相当于创建视图view,也就是“【】”括起来的语句实际上在Access中无效

create view10名游戏
asselect 排名,游戏名称,游戏类型,游戏大小,评分
from 游戏排名,游戏信息,游戏风评
where 游戏排名.ID=游戏信息.ID and 游戏排名.ID=游戏风评.ID and 排名<=10;

在这里插入图片描述
(2)创建视图“前100名游戏”查询游戏排名前100(包含100)的排名、游戏名称、游戏类型、游戏大小和评分

create view100名游戏
asselect 排名,游戏名称,游戏类型,游戏大小,评分
from 游戏排名,游戏信息,游戏风评
where 游戏排名.ID=游戏信息.ID and 游戏排名.ID=游戏风评.ID and 排名<=100;

在这里插入图片描述
(3)创建视图“前1000名游戏”查询游戏排名前1000(包含1000)的排名、游戏名称、游戏类型、游戏大小和评分
在这里插入图片描述

5.2 开发公司类

(1)创建视图“腾讯游戏”查询开发商为“深圳市腾讯计算机系统有限公司”的排名、游戏名称和开发商

create view 腾讯游戏
asselect 排名,游戏名称,开发商
from 游戏排名
where 开发商='深圳市腾讯计算机系统有限公司';

在这里插入图片描述
(2)创建视图“上海公司游戏” 查询开发商为带“上海”的排名、游戏名称和开发商

create view 上海公司游戏
asselect 排名,游戏名称,开发商
from 游戏排名
where 开发商 like '%上海%';

在这里插入图片描述
(3)创建视图“北京公司游戏” 查询开发商为带“北京”的排名、游戏名称和开发商

create view 北京公司游戏
as 
select 排名,游戏名称,开发商
from 游戏排名
where 开发商 like '%北京%';

在这里插入图片描述
(4)创建视图“开发商不清楚的游戏” 查询开发商为空的排名、游戏名称和开发商

create view 开发商不清楚的游戏
asselect 排名,游戏名称,开发商
from 游戏排名
where 开发商 is null;

在这里插入图片描述

5.3 推荐次数类

(1)创建视图“推荐次数多”查询推荐次数大于等于100次的排名、游戏名称、开发商和推荐次数

create view 推荐次数多
asselect 排名,游戏名称,开发商,推荐次数
from 游戏排名,游戏风评
where 推荐次数>=100 and 游戏排名.id=游戏风评.id;

在这里插入图片描述
(2)创建视图“有被推荐”查询推荐次数大于0(不包含0)次的排名、游戏名称、开发商和推荐次数

create view 有被推荐
asselect 排名,游戏名称,开发商,推荐次数
from 游戏排名,游戏风评
where 推荐次数>0 and 游戏排名.id=游戏风评.id;

在这里插入图片描述
(3)创建视图“未被推荐”查询推荐次数等于0次的排名、游戏名称、开发商和推荐次数

create view 未被推荐
as 
select 排名,游戏名称,开发商,推荐次数
from 游戏排名,游戏风评
where 推荐次数=0 and 游戏排名.id=游戏风评.id;

在这里插入图片描述

5.4 游戏评分类

(1)创建视图“5星好评”查询评分为5的排名、游戏名称、开发商和评分

create view 5星好评
asselect 排名,游戏名称,开发商,评分
from 游戏排名,游戏风评
where 评分=5 and 游戏排名.id=游戏风评.id;

在这里插入图片描述
(2)创建视图“4星评分”查询评分为4的排名、游戏名称、开发商和评分

create view 4星评分
asselect 排名,游戏名称,开发商,评分
from 游戏排名,游戏风评
where 评分=4 and 游戏排名.id=游戏风评.id;

在这里插入图片描述
(3)创建视图“评分不太好”查询评分小于等于3的排名、游戏名称、开发商和评分

create view 评分不太好
asselect 排名,游戏名称,开发商,评分
from 游戏排名,游戏风评
where 评分<=3 and 游戏排名.id=游戏风评.id;

在这里插入图片描述

5.5 评分次数类

(1)创建视图“评分次数多”查询评分次数大于等于100000次的排名、游戏名称、评分和评分次数

create view 评分次数多
asselect 排名,游戏名称,评分,评分次数
from 游戏排名,游戏风评
where 评分次数>=100000 and 游戏排名.id=游戏风评.id;

在这里插入图片描述
(2)创建视图“评分次数一般” 查询评分次数在1000次(不含1000)到100000次的排名、游戏名称、评分和评分次数

create view 评分次数一般
asselect 排名,游戏名称,评分,评分次数
from 游戏排名,游戏风评
where 评分次数 between 1000 and 100000 and 游戏排名.id=游戏风评.id;

在这里插入图片描述

(3)创建视图“评分次数少” 查询评分次数小于1000次的排名、游戏名称、评分和评分次数

create view 评分次数少
asselect 排名,游戏名称,评分,评分次数
from 游戏排名,游戏风评
where 评分次数<1000 and 游戏排名.id=游戏风评.id;

在这里插入图片描述

5.6 上架时间类

(1)创建视图“2016年之前”查询上架时间为2016年之前(不包含2016年)的游戏名称、评分、上架时间和支持语言

create view 2016年之前
asselect 游戏名称,评分,上架时间,支持语言
from 游戏信息,游戏风评,游戏排名
where 上架时间<'2016-01-01' and 游戏排名.id=游戏风评.id and 游戏排名.id=游戏信息.id;

在这里插入图片描述
(2)创建视图“2016到2019年”查询上架时间为2016到2019年(2016-1-1到2019-12-31)的游戏名称、评分、上架时间和支持语言

create view 20162019asselect 游戏名称,评分,上架时间,支持语言
from 游戏信息,游戏风评,游戏排名
where 上架时间 between '2016-01-01' and '2019-12-31' and 游戏排名.id=游戏风评.id and 游戏排名.id=游戏信息.id;

在这里插入图片描述
(3)创建视图“2019年之后”查询上架时间为2019年之后(不包含2019年)的游戏名称、评分、上架时间和支持语言

create view 2019年之后
asselect 游戏名称,评分,上架时间,支持语言
from 游戏信息,游戏风评,游戏排名
where 上架时间>'2019-12-31' and 游戏排名.id=游戏风评.id and 游戏排名.id=游戏信息.id;

在这里插入图片描述

5.7 游戏大小类

(1)创建视图“小型游戏”查询游戏大小小于100MB的游戏名称、开发商、游戏大小

create view 小型游戏 
asselect 游戏名称,开发商,游戏大小
from 游戏信息,游戏排名
where 游戏大小< 100 and 游戏排名.id=游戏信息.id;

在这里插入图片描述
(2)创建视图“中型游戏”查询游戏大小为100MB到1000MB(包含100和1000)的游戏名称、开发商、游戏大小

create view 中型游戏 
asselect 游戏名称,开发商,游戏大小
from 游戏信息,游戏排名
where 游戏大小 between 100 and 1000 and 游戏排名.id=游戏信息.id;

在这里插入图片描述
(3)创建视图“大型游戏”查询游戏大小大于1000MB的游戏名称、开发商、游戏大小

create view 大型游戏 
asselect 游戏名称,开发商,游戏大小
from 游戏信息,游戏排名
where 游戏大小 > 1000 and 游戏排名.id=游戏信息.id;

在这里插入图片描述

5.8 游戏类型类

(1)创建视图“策略游戏”查询游戏类型为“策略游戏”的游戏名称、上架时间、游戏大小和游戏类型

create view 策略游戏
asselect 游戏名称,上架时间,游戏大小,游戏类型
from 游戏信息,游戏排名
where 游戏类型 = '策略游戏' and 游戏信息.id = 游戏排名.id;

在这里插入图片描述
(2)创建视图“模拟游戏”查询游戏类型为“模拟游戏”的游戏名称、上架时间、游戏大小和游戏类型

create view 模拟游戏
asselect 游戏名称,上架时间,游戏大小,游戏类型
from 游戏信息,游戏排名
where 游戏类型 = '模拟游戏' and 游戏信息.id = 游戏排名.id;

在这里插入图片描述
(3)创建视图“其他类型游戏”查询游戏类型为除了策略游戏和模拟游戏的游戏名称、上架时间、游戏大小和游戏类型

create view 其他类型游戏
as 
select 游戏名称,上架时间,游戏大小,游戏类型
from 游戏信息,游戏排名
where 游戏类型 not in( '模拟游戏','策略游戏') and 游戏信息.id = 游戏排名.id;

在这里插入图片描述

第六部分 窗体页面与设计

6.1 游戏排名窗体

(1)首先根据查询创建子窗体,选择对应查询使用窗体向导,选择所有
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)窗体是一个可视化的工具,可以根据各种空间和子窗体实现交互式的界面,我这里就是使用的导航空间+之前创建的子窗体,并且使用VBS脚本实现。以下是可视化窗体视图。
在这里插入图片描述

(3)设计视图
在这里插入图片描述

6.2 游戏开发商窗体

(1)窗体视图
在这里插入图片描述
(2)设计视图在这里插入图片描述

6.3 游戏推荐窗体

(1)窗体视图
在这里插入图片描述
(2)设计视图
在这里插入图片描述

6.4 游戏评分窗体

(1)窗体视图
在这里插入图片描述
(2)设计视图
在这里插入图片描述

6.5 游戏评分次数窗体

(1)窗体视图
在这里插入图片描述
(2)设计视图
在这里插入图片描述

6.6 游戏上架时间窗体

(1)窗体视图
在这里插入图片描述
(2)设计视图
在这里插入图片描述

6.7 游戏大小窗体

(1)窗体视图
在这里插入图片描述
(2)设计视图
在这里插入图片描述

6.8 游戏类型窗体

(1)窗体视图
在这里插入图片描述
(2)设计视图
在这里插入图片描述

第七部分 报表页面与设计

7.1 游戏排名

(1)报表是Access中一个可视化的记录信息的工具,以下是其报表页面,其中有记录当前时间和日期,然后还要总记录数和页数。
在这里插入图片描述
在这里插入图片描述
(2)报表设计视图是程序员对报表进行设计的界面,设计视图如下:
在这里插入图片描述

7.2 游戏风评

(1)报表视图
在这里插入图片描述
在这里插入图片描述
(2)设计视图
在这里插入图片描述

7.3 游戏信息

(1)报表视图
在这里插入图片描述
在这里插入图片描述
(2)设计视图
在这里插入图片描述

第八部分 数据和实例资源

https://pan.baidu.com/s/1V-v7nd819vRehAIF3xPcWw?pwd=loqe

  • 19
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值