考试题型及分值:
全国计算机等级考试二级ACCESS语言试卷笔试满分100分,其中含公共基础知识部分的30分。
全国计算机等级考试二级ACCESS语言上机满分为100分,共有三种类型考题。
1、基本 *** 作题(30分)
2、简单应用题(40分)
3、综合应用题(30分)
Access数据库程序设计大纲
基本要求
1、 具有数据库系统的基础知识。
2、 基本了解面向对象的概念。
3、 掌握关系数据库的基本原理。
4、 掌握数据库程序设计方法。
5、 能使用Access建立一个小型数据库应用系统。
考试内容
一、数据库基础知识
1、 基本概念:
数据库,数据模型,数据库管理系统,类和对象,事件。
2、 关系模型(实体的完整性,参照的完整性,用户定义的完整性)关系模式,关系,元组,属性,字段,域,值,主关键字等。
3、 关系运算基本概念:
选择运算,投影运算,连接运算。
4、 SQL基本命令:查询命令, *** 作命令。
5、 Access系统简介:
(1)Access系统的基本特点。
(2)基本对象:表,查询,窗体,报表,页,宏,模块。
二、数据库和表的基本 *** 作
1、 创建数据库:
(1)创建空数据库。
(2)使用向导创建数据库。
2、 表的建立:
(1) 建立表结构:使用向导,使用表设计器,使用数据表。
(2) 设置字段属性。
(3) 输入数据:直接输入数据,获取外部数据。
3、 表间关系的建立与修改:
(1) 表间关系的概念:一对一,一对多。
(2) 设置参照完整性。
(3) 建立表间关系。
4、 表的维护:
(1) 修改表结构:添加字段,修改安段,删除字段,重新设置主关键字。
(2) 编辑表内容:添加记录,个性记录,删除记录,复制记录。
(3) 调整表外观。
5、 表的其他 *** 作:
(1) 查找数据。
(2) 替换数据。
(3) 排序记录。
(4) 筛选记录。
三、查询的基本 *** 作
1、查询分类
(1) 选择查询。
(2) 参数查询。
(3) 交叉表查询。
(4) *** 作查询。
(5) SQL查询。
2、查询准则
(1) 运算符。
(2) 函数。
(3) 表达式。
3、创建查询
(1) *** 作已创建的查询
(2) 编辑查询中的字段。
(3) 编辑查询中的数据源。
(4) 排序查询的结果。
四、窗体的基本 *** 作
1、 窗体分类:
(1) 纵栏式窗体
(2) 表格式窗体
(3) 主/子窗体
(4) 数据表窗体
(5) 图表窗体
(6) 数据透视表窗体
2、 创建窗体:
(1) 使用向导创建窗体。
(2) 使用设计器创建窗体:控件的含义及种类,在窗体中添加和修改控件,设置控件的常见属性。
五、报表的基本 *** 作
1、报表分类:
(1) 纵栏式报表。
(2) 表格式报表。
(3) 图表报表。
(4) 标签报表。
2、使用向导创建报表。
3、使用设计器编辑报表。
4、在报表中计算和汇总。
六、页的基本 *** 作
1、数据访问页的概念。
2、创建数据访问页:
(1) 自动创建数据访问页。
(2) 使用向导数据访问页。
七、宏
1、宏的基本概念。
2、宏的基本 *** 作:
(1) 创建宏;创建一个宏,创建宏组。
(2) 运行宏。
(3) 在宏中使用条件。
(4) 设置宏 *** 作参数。
(5) 常用的宏 *** 作。
八、模块
1、模块的基本概念:
(1) 类模块。
(2) 标准模块。
(3) 将宏转换为模块。
2、创建模块:
(1) 创建VBA模块:在模块中加入过程,在模块中执行宏。
(2) 编写事件过程:键盘事件,鼠标事件,窗口事件, *** 作事件和其他事件。
3、调用和参数传递。
4、VBA程序设计基础:
(1) 面向对象程序设计的基本概念。
(2) VBA编程环境:进入VBE,BE界面。
(3) VBA编程基础:常量,变量,表达式。
(4) VBA程序流程控制:顺序控制,选择控制,循环控制。
(5) VBA程序的调试:设置断点,单步跟踪,设置监视点。
考试方式
1、笔试:90分钟,满分100分,其中含公共基础知识部分的30分。
2、上机 *** 作:90分钟,满分100分。
上机 *** 作包括:
(1) 基本 *** 作。
(2) 简单应用。
(3) 综合应用
数据库 *** 作练习一
说明:下面所提到的“当前目录”是指答题文件夹中的FOXKT文件夹;而且以下文件名、字段名、字段值中的字母和数字都是英文半角字符。
在FoxPro环境中进行如下 *** 作:
1、追加数据:在当前目录下打开WriteBDBF,往该数据表中追加如下记录:
产品大类 产品编号 产品名称 零售价
家电类 LQ1600 超薄彩电 358050
2、数据复制:在当前目录下打开FoxBDBF,将所有“女性职工” 大于20的记录复制到当前目录下的CopyBDBF中。
3、创建索引:在当前目录下打开IndexBdbf数据库表文件,建立索引:
索引名为“NUMBER”、降序、类型为“唯一索引”、表达式为“男性职工”。
4、关闭所有打开的数据库,退出FoxPro应用程序。
数据库 *** 作练习二
说明:下面所提到的“当前目录”是指答题文件夹中的FOXKT文件夹;而且以下文件名、字段名、字段值中的字母和数字都是英文半角字符。
在FoxPro环境中进行如下 *** 作:
1、创建数据表:在当前目录(FOXKT文件夹)中创建数据表STRUBDBF,结构如下:
Field Name Type Width Dec
产品编号 Character 12
产品名称 Character 20
生产日期 Date
合格率 Numeric 6 2
2、数据计算:在当前目录下打开FoxBDBF,计算所有记录的“总人数”列,计算公式为:
总人数 = 男性职工 + 女性职工
3、创建索引:为FoxBDBF建立索引:索引名为“ZHIGONG”、降序、类型为“普通索引”、表达式为“男性职工”。
4、创建查询:打开FoxBDBF建立一个查询,字段选择企业编号、企业名称、女性职工字段,筛选记录条件为女性职工小于等于50,排序选择按女性职工升序排序。将生成的查询以文件名tb保存在FOXKT文件夹下(注意:扩展名默认)。
5、关闭所有打开的数据库,退出FoxPro应用程序。
数据库 *** 作练习三
说明:下面所提到的“当前目录”是指答题文件夹中的FOXKT文件夹;而且以下文件名、字段名、字段值中的字母和数字都是英文半角字符。
在FoxPro环境中进行如下 *** 作:
1、创建数据表:在当前目录(FOXKT文件夹)中创建数据表STRUBDBF,结构如下:
Field Name Type Width Dec
姓名 Character 10
工作日期 Date
是否党员 Logical
基本工资 Numeric 8 2
2、录入数据:在当前目录下打开RECBDBF,往该数据表中追加如下记录:
班级号 班级名称 班主任 班级人数
980107 四年级二班 黄玉华 41
3、数据复制:在当前目录下打开CMDBDBF,将所有项目代号等于“1158”的记录复制 到GENBDBF中。
4、关闭所有打开的数据库,退出FoxPro应用程序。
●假设某硬盘由5个盘片构成(共有8个记录面),盘面有效记录区域的外直径为30cm,内直径为10cm,记录位密度为250位/mm,磁道密度为16道/mm,每磁道分16个扇区,每扇区512字节,则该硬盘的格式化容量约为(2)MB。
● (3)是指按内容访问的存储器。
(3)A虚拟存储器B相联存储器
C 高速缓存(Cache) D 随机访问存储器 阅读下列说明,回答问题1和问题2,将解答填入答题纸的对应栏内。
说明
假设某大型商业企业由商品配送中心和连锁超市组成,其中商品配送中心包括采购、财务、配送等部门。为实现高效管理,设计了商品配送中心信息管理系统,其主要功能描述如下:
1 系统接收由连锁超市提出的供货请求,并将其记录到供货请求记录文件。
2 在接到供货请求后,从商品库存记录文件中进行商品库存信息查询。如果库存满足供货请求,则给配送处理发送配送通知;否则,向采购部门发出缺货通知。
3 配送处理接到配送通知后,查询供货请求记录文件,更新商品库存记录文件,并向配送部门发送配送单,在配送货品的同时记录配送信息至商品配送记录文件。
4 采购部门接到缺货通知后,与供货商洽谈,进行商品采购处理,合格商品入库,并记录采购清单至采购清单记录文件、向配送处理发出配送通知,同时通知财务部门给供货商支付货款。该系统采用结构化方法进行开发,得到待修改的数据流图(如图1-1所示)。
问题1(8分)
使用说明中的词语,给出图 1-1 中外部实体 E1 至 E4 的名称和数据存储 D1 至D4的名称。
问题2(7分)
图 1-1 中存在四处错误数据流,请指出各自的起点和终点;若将上述四条错误数据流删除,为保证数据流图的正确性,应补充三条数据流,请给出所补充数据流的起点和终点。(起点和终点请采用数据流图1-1中的符号或名称) 数据库系统工程师2009年上半年软考真题,详情请参见参考资料 。
数据库语言的目标
要说清这个目标,先要理解数据库是做什么的。
数据库这个软件,名字中有个“库”字,会让人觉得它主要是为了存储的。其实不然,数据库实现的重要功能有两条:计算、事务!也就是我们常说的 OLAP 和 OLTP,数据库的存储都是为这两件事服务的,单纯的存储并不是数据库的目标。
我们知道,SQL 是目前数据库的主流语言。那么,用 SQL 做这两件事是不是很方便呢?
事务类功能主要解决数据在写入和读出时要保持的一致性,实现这件事的难度并不小,但对于应用程序的接口却非常简单,用于 *** 纵数据库读写的代码也很简单。如果假定目前关系数据库的逻辑存储模式是合理的(也就是用数据表和记录来存储数据,其合理性与否是另一个复杂问题,不在这里展开了),那么 SQL 在描述事务类功能时没什么大问题,因为并不需要描述多复杂的动作,复杂性都在数据库内部解决了。
但计算类功能却不一样了。
这里说的计算是个更广泛的概念,并不只是简单的加加减减,查找、关联都可以看成是某种计算。
什么样的计算体系才算好呢?
还是两条:写着简单、跑得快。
写着简单,很好理解,就是让程序员很快能写出来代码来,这样单位时间内可以完成更多的工作;跑得快就更容易理解,我们当然希望更短时间内获得计算结果。
其实 SQL 中的 Q 就是查询的意思,发明它的初衷主要是为了做查询(也就是计算),这才是 SQL 的主要目标。然而,SQL 在描述计算任务时,却很难说是很胜任的。
SQL为什么不行
先看写着简单的问题。
SQL 写出来很象英语,有些查询可以当英语来读和写(网上多得很,就不举例了),这应当算是满足写着简单这一条了吧。
且慢!我们在教科书上看到的 SQL 经常只有两三行,这些 SQL 确实算是写着简单的,但如果我们尝试一些稍复杂化的问题呢?
这是一个其实还不算很复杂的例子:计算一支股票最长连续上涨了多少天?用 SQL 写出来是这样的:
selectmax(consecutive_day)from(selectcount() (consecutive_dayfrom(selectsum(rise_mark) over(orderbytrade_date) days_no_gainfrom(selecttrade_date,case when closing_price>lag(closing_price) over(order by trade_date)then 0 else 1 END rise_markfrom stock_price ) )group by days\_no\_gain)这个语句的工作原理就不解释了,反正有点绕,同学们可以自己尝试一下。
这是润乾公司的招聘考题,通过率不足 20%;因为太难,后来被改成另一种方式:把 SQL 语句写出来让应聘者解释它在算什么,通过率依然不高。
这说明什么?说明情况稍有复杂,SQL 就变得即难懂又难写!
再看跑得快的问题,还是一个经常拿出来的简单例子:1 亿条数据中取前 10 名。这个任务用 SQL 写出来并不复杂:
SELECTTOP 10x FROMT ORDERBYx DESC但是,这个语句对应的执行逻辑是先对所有数据进行大排序,然后再取出前 10 个,后面的不要了。大家知道,排序是一个很慢的动作,会多次遍历数据,如果数据量大到内存装不下,那还需要外存做缓存,性能还会进一步急剧下降。如果严格按这句 SQL 体现的逻辑去执行,这个运算无论如何是跑不快的。然而,很多程序员都知道这个运算并不需要大排序,也用不着外存缓存,一次遍历用一点点内存就可以完成,也就是存在更高性能的算法。可惜的是,用 SQL 却写不出这样的算法,只能寄希望于数据库的优化器足够聪明,能把这句 SQL 转换成高性能算法执行,但情况复杂时数据库的优化器也未必靠谱。
看样子,SQL 在这两方面做得都不够好。这两个并不复杂的问题都是这样,现实中数千行的 SQL 代码中,这种难写且跑不快的情况比比皆是。
为什么 SQL 不行呢?
要回答这个问题,我们要分析一下用程序代码实现计算到底是在干什么。
本质上讲,编写程序的过程,就是把解决问题的思路翻译成计算机可执行的精确化形式语言的过程。举例来说,就象小学生解应用题,分析问题想出解法之后,还要列出四则运算表达式。用程序计算也是一样,不仅要想出解决问题的方法,还要把解法翻译成计算机能理解执行的动作才算完成。
用于描述计算方法的形式语言,其核心在于所采用的代数体系。所谓代数体系,简单说就是一些数据类型和其上的运算规则,比如小学学到的算术,就是整数和加减乘除运算。有了这套东西,我们就能把想做的运算用这个代数体系约定的符号写出来,也就是代码,然后计算机就可以执行了。
如果这个代数体系设计时考虑不周到,提供的数据类型和运算不方便,那就会导致描述算法非常困难。这时候会发生一个怪现象:翻译解法到代码的难度远远超过解决问题本身。
举个例子,我们从小学习用阿拉伯数字做日常计算,做加减乘除都很方便,所有人都天经地义认为数值运算就该是这样的。其实未必!估计很多人都知道还有一种叫做罗马数字的东西,你知道用罗马数字该怎么做加减乘除吗?古罗马人又是如何上街买菜的?
代码难写很大程度是代数的问题。
再看跑不快的原因。
软件没办法改变硬件的性能,CPU 和硬盘该多快就是多快。不过,我们可以设计出低复杂度的算法,也就是计算量更小的算法,这样计算机执行的动作变少,自然也就会快了。但是,光想出算法还不够,还要把这个算法用某种形式语言写得出来才行,否则计算机不会执行。而且,写起来还要比较简单,都要写很长很麻烦,也没有人会去用。所以呢,对于程序来讲,跑得快和写着简单其实是同一个问题,背后还是这个形式语言采用的代数的问题。如果这个代数不好,就会导致高性能算法很难实现甚至实现不了,也就没办法跑得快了。就象上面说的,用 SQL 写不出我们期望的小内存单次遍历算法,能不能跑得快就只能寄希望于优化器。
我们再做个类比:
上过小学的同学大概都知道高斯计算 1+2+3+…+100 的小故事。普通人就是一步步地硬加 100 次,高斯小朋友很聪明,发现 1+100=101、2+99=101、…、50+51=101,结果是 50 乘 101,很快算完回家午饭了。
听过这个故事,我们都会感慨高斯很聪明,能想到这么巧妙的办法,即简单又迅速。这没有错,但是,大家容易忽略一点:在高斯的时代,人类的算术体系(也是一个代数)中已经有了乘法!象前面所说,我们从小学习四则运算,会觉得乘法是理所当然的,然而并不是!乘法是后于加法被发明出来的。如果高斯的年代还没有乘法,即使有聪明的高斯,也没办法快速解决这个问题。
目前主流数据库是关系数据库,之所以这么叫,是因为它的数学基础被称为关系代数,SQL 也就是关系代数理论上发展出来的形式语言。
现在我们能回答,为什么 SQL 在期望的两个方面做得不够好?问题出在关系代数上,关系代数就像一个只有加法还没发明乘法的算术体系,很多事做不好是必然的。
关系代数已经发明五十年了,五十年前的应用需求以及硬件环境,和今天比的差异是很巨大了,继续延用五十年前的理论来解决今天的问题,听着就感觉太陈旧了?然而现实就是这样,由于存量用户太多,而且也还没有成熟的新技术出现,基于关系代数的 SQL,今天仍然是最重要的数据库语言。虽然这几十年来也有一些改进完善,但根子并没有变,面对当代的复杂需求和硬件环境,SQL 不胜任也是情理之中的事。
而且,不幸的是,这个问题是理论上的,在工程上无论如何优化也无济于事,只能有限改善,不能根除。不过,绝大部分的数据库开发者并不会想到这一层,或者说为了照顾存量用户的兼容性,也没打算想到这一层。于是,主流数据库界一直在这个圈圈里打转转。
SPL为什么能行
那么该怎样让计算写着更简单、跑得更快呢?
发明新的代数!有“乘法”的代数。在其基础上再设计新的语言。
这就是 SPL 的由来。它的理论基础不再是关系代数,称为离散数据集。基于这个新代数设计的形式语言,起名为SPL(Structured Process Language)。
SPL 针对 SQL 的不足(更确切地说法是,离散数据集针对关系代数的各种缺陷)进行了革新。SPL 重新定义了并扩展许多结构化数据中的运算,增加了离散性、强化了有序计算、实现了彻底的集合化、支持对象引用、提倡分步运算。
限于篇幅,这里不能介绍 SPL(离散数据集)的全貌。我们在这里列举 SPL(离散数据集)针对 SQL(关系代数)的部分差异化改进:
游离记录
离散数据集中的记录是一种基本数据类型,它可以不依赖于数据表而独立存在。数据表是记录构成的集合,而构成某个数据表的记录还可以用于构成其它数据表。比如过滤运算就是用原数据表中满足条件的记录构成新数据表,这样,无论空间占用还是运算性能都更有优势。
关系代数没有可运算的数据类型来表示记录,单记录实际上是只有一行的数据表,不同数据表中的记录也不能共享。比如,过滤运算时会复制出新记录来构成新数据表,空间和时间成本都变大。
特别地,因为有游离记录,离散数据集允许记录的字段取值是某个记录,这样可以更方便地实现外键连接。
有序性
关系代数是基于无序集合设计的,集合成员没有序号的概念,也没有提供定位计算以及相邻引用的机制。SQL 实践时在工程上做了一些局部完善,使得现代 SQL 能方便地进行一部分有序运算。
离散数据集中的集合是有序的,集合成员都有序号的概念,可以用序号访问成员,并定义了定位运算以返回成员在集合中的序号。离散数据集提供了符号以在集合运算中实现相邻引用,并支持针对集合中某个序号位置进行计算。
有序运算很常见,却一直是 SQL 的困难问题,即使在有了窗口函数后仍然很繁琐。SPL 则大大改善了这个局面,前面那个股票上涨的例子就能说明问题。
离散性与集合化
关系代数中定义了丰富的集合运算,即能将集合作为整体参加运算,比如聚合、分组等。这是 SQL 比 Java 等高级语言更为方便的地方。
但关系代数的离散性非常差,没有游离记录。而 Java 等高级语言在这方面则没有问题。
离散数据集则相当于将离散性和集合化结合起来了,既有集合数据类型及相关的运算,也有集合成员游离在集合之外单独运算或再组成其它集合。可以说 SPL 集中了 SQL 和 Java 两者的优势。
有序运算是典型的离散性与集合化的结合场景。次序的概念只有在集合中才有意义,单个成员无所谓次序,这里体现了集合化;而有序计算又需要针对某个成员及其相邻成员进行计算,需要离散性。
在离散性的支持下才能获得更彻底的集合化,才能解决诸如有序计算类型的问题。
离散数据集是即有离散性又有集合化的代数体系,关系代数只有集合化。
分组理解
分组运算的本意是将一个大集合按某种规则拆成若干个子集合,关系代数中没有数据类型能够表示集合的集合,于是强迫在分组后做聚合运算。
离散数据集中允许集合的集合,可以表示合理的分组运算结果,分组和分组后的聚合被拆分成相互独立的两步运算,这样可以针对分组子集再进行更复杂的运算。
关系代数中只有一种等值分组,即按分组键值划分集合,等值分组是个完全划分。
离散数据集认为任何拆分大集合的方法都是分组运算,除了常规的等值分组外,还提供了与有序性结合的有序分组,以及可能得到不完全划分结果的对位分组。
聚合理解
关系代数中没有显式的集合数据类型,聚合计算的结果都是单值,分组后的聚合运算也是这样,只有 SUM、COUNT、MAX、MIN 等几种。特别地,关系代数无法把 TOPN 运算看成是聚合,针对全集的 TOPN 只能在输出结果集时排序后取前 N 条,而针对分组子集则很难做到 TOPN,需要转变思路拼出序号才能完成。
离散数据集提倡普遍集合,聚合运算的结果不一定是单值,仍然可能是个集合。在离散数据集中,TOPN 运算和 SUM、COUNT 这些是地位等同的,即可以针对全集也可以针对分组子集。
SPL 把 TOPN 理解成聚合运算后,在工程实现时还可以避免全量数据的排序,从而获得高性能。而 SQL 的 TOPN 总是伴随 ORDER BY 动作,理论上需要大排序才能实现,需要寄希望于数据库在工程实现时做优化。
有序支持的高性能
离散数据集特别强调有序集合,利用有序的特征可以实施很多高性能算法。这是基于无序集合的关系代数无能为力的,只能寄希望于工程上的优化。
下面是部分利用有序特征后可以实施的低复杂度运算:
1) 数据表对主键有序,相当于天然有一个索引。对键字段的过滤经常可以快速定位,以减少外存遍历量。随机按键值取数时也可以用二分法定位,在同时针对多个键值取数时还能重复利用索引信息。
2) 通常的分组运算是用 HASH 算法实现的,如果我们确定地知道数据对分组键值有序,则可以只做相邻对比,避免计算 HASH 值,也不会有 HASH 冲突的问题,而且非常容易并行。
3) 数据表对键有序,两个大表之间对位连接可以执行更高性能的归并算法,只要对数据遍历一次,不必缓存,对内存占用很小;而传统的 HASH 值分堆方法不仅比较复杂度高,需要较大内存并做外部缓存,还可能因 HASH 函数不当而造成二次 HASH 再缓存。
4) 大表作为外键表的连接。事实表小时,可以利用外键表有序,快速从中取出关联键值对应的数据实现连接,不需要做 HASH 分堆动作。事实表也很大时,可以将外键表用分位点分成多个逻辑段,再将事实表按逻辑段进行分堆,这样只需要对一个表做分堆,而且分堆过程中不会出现 HASH 分堆时的可能出现的二次分堆,计算复杂度能大幅下降。
其中 3 和 4 利用了离散数据集对连接运算的改造,如果仍然延用关系代数的定义(可能产生多对多),则很难实现这种低复杂的算法。
除了理论上的差异, SPL 还有许多工程层面的优势,比如更易于编写并行代码、大内存预关联提高外键连接性能等、特有的列存机制以支持随意分段并行等。
再把前面的问题用 SPL 重写一遍有个直接感受。
一支股票最长连续上涨多少天:
stock_pricesort(trade_date)group@o(closing_price计算思路和前面的 SQL 相同,但因为引入了有序性后,表达起来容易多了,不再绕了。
1 亿条数据中取前 10 名:
Tgroups(;top(-10,x))SPL 有更丰富的集合数据类型,容易描述单次遍历上实施简单聚合的高效算法,不涉及大排序动作。
这里还有更多 SPL 代码以体现其思路及大数据算法:
重磅!开源SPL交流群成立了
简单好用的SPL开源啦!
为了给感兴趣的小伙伴们提供一个相互交流的平台,
特地开通了交流群(群完全免费,不广告不卖课)
需要进群的朋友,可长按扫描下方二维码
mysql> create table Score
-> (Sno char(10),Cno char(10),Grade real,
-> constraint pk foreign key(Sno)
-> references student(Sno),
-> constraint pk1 foreign key(Cno)
-> references Course(Cno));
Query OK, 0 rows affected (001 sec)
2. 增加、修改和删除字段,要求:
(1) 给Student表增加一个memo(备注)字段,类型为Varchar(200)
mysql> alter table student add memo varchar(200);
Query OK, 0 rows affected (025 sec)
Records: 0 Duplicates: 0 Warnings: 0
(2)将memo字段的类型修改为Varchar(300)
mysql> alter table student
-> modify memo varchar(300);
Query OK, 0 rows affected (006 sec)
(3)删除memo 字段
mysql> alter table student drop memo;
Query OK, 0 rows affected (002 sec)
关系模型:读者表(读者编号,姓名,性别,出生年月,单位,可借阅图书数目)主键是读者编号
图书信息表(书号,书名,作者,出版社,可被借次数)主键是书号
借阅表(读者编号,书号,借阅时间,归还时间)读者编号参照读者表的读者编号,书号参照图书信息表的书号
以上就是关于Access 的考试题型全部的内容,包括:Access 的考试题型、河北省职称计算机考试试题 数据库 *** 作练习、数据库系统工程师考试的考试试题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)