Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是 Microsoft Office 的系统程序之一。Microsoft Office Access是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。它是微软OFFICE的一个成员, 在包括专业版和更高版本的office版本里面被单独出售。2018年9月25日,最新的微软Office Access 2019在微软Office 2019里发布。 操作要求:在ACCESS数据库“教学管理.accdb”,其中有四个表:“教师”、“学生”、“课程”、“选课成绩”。其中教师表中信息如下图所示。 ? 1、创建“教师工作时间-姓名-职称查询”。要求以教师表为数据源,查询在1990年到1995年之间参加工作的、姓张的、职称不为空的教师信息,结果显示所有字段。 2、创建“数学系-计算机系-教师查询”。以教师表为数据源,查询数学系或计算机系的教师信息。结果显示下面字段:教师编号、姓名、性别、工作时间、职称、系别。其中“姓名”重命名为“教师姓名”。 3、创建“学生-课程-选课成绩-不及格查询”。以学生、选课成绩、课程为数据源,建立一多表查询,选出成绩<> 知识要点:1、设计查询的基本方法 2、查询设计视图的组成,以及使用 3、单表查询、多表查询、条件and和or的设置 4、字段中"*"号的作用(代表表的所有字段),字段重命名方法(新字段名称:原字段名) 知识点说明:查询是利用数据库中存储的海量数据获取信息的主要方法与技术,同时也是对数据库数据进行操纵的手段。我们通常使用标准SQL(结构化查询语言)对数据库进行维护与管理。而ACCESS为了方便客户使用,避免客户掌握SQL大量相关语法;从而利用ACCESS中的查询对象,通过可视化设计界面完成查询的设计,在内部将设计转换为SQL语句。查询相关理论知识同学们请参见内部教程或课件。 所以本部分首先简单介绍SQL的查询语句Select。然后通过示例演示查询设计时跟Select语句的关系。请同学们务必要认真阅读下面知识,以便于培养查询的设计能力,能举一反三,而不是记忆大量查询示例。 SELECT的基本语法: SELECT [ALL /DISTINCT] <目标字段或表达式>[,< 目标字段或表达式="">]… FROM <表名或视图名>[,< 表名或视图名="">]… [WHERE <条件表达式>] [GROUP BY <列名1>[ HAING< 条件表达式="">]] [ORDER BY< 列名2=""> {ASC/ DESC}] 其中<>表示在实际的语句中要采用所需内容进行代替 []表示可以根据需要进行选择,也可以不选 {}表示必选项 Select语句主要采用自然英语,通过描述任务而得到最终结果。即: 1、从(From)哪些数据源或表(表名跟在from后面)中 2、选择出满足一定条件(where后语句)的记录 3、显示记录中指定的字段(select后字段列表) 4、显示的数据是否要排序,按哪些字段如何排序(order by 完成。ASC升序,DESC降序,默认为ASC) 5、在选择数据时是否要分组,按什么字段分组(group by) 6、对选择出的记录,是否要消除重复记录(DISTINCT) 上述步骤,也是我们设计任何查询时要遵循的。如果同学们每次面对一个查询,都能这样思考,进行自主设计,那么任何查询都是相对简单的。在本节的三个示例中,我们都将首先分析设计方法,在给出查询示例来进行讲解。希望同学们自己先分析设计,独立思考一下。 1、查询设计视图及工具栏。创建查询,最常用也是最重要的方法就是利用“设计视图”来完成。对于后续要讲到的“交叉表查询”而言,使用“交叉表查询向导”要更有效一些。打开设计视图的方法如下: (1)在数据库对象窗口选择“查询”对象→右侧双击“在设计视图中创建查询”(下1图)。 (2)“新建”→“设计视图”(下2图)。 ? ? 打开如下的查询设计视图。其上部分为数据源,下部分为设计网格。查询设计视图中设计查询的基本步骤如下: (1)添加数据源:将查询要求中(条件中、显示中)所涉及到的数据源(表或查询)添加到数据源区域(如下图是课程、选课成绩、学生) (2)添加字段:在设计网格中的“字段”行添加所有涉及到的字段(要求显示的和作为条件的)。 (3)确定字段出处:如果是多表查询(即数据源有多个表或查询构成)应指定字段来自于那个表,因为可能在多个表中有同名字段。 (4)排序:按题目要求对相关字段设定排序方式。 (5)显示:决定字段是否显示。这里要注意的是,我们不一定显示所有的字段。可以让一些字段仅仅作为条件出现,而不与显示 (6)设定条件:设计网格的“条件”行输入用于选择的条件,若该行多个字段都设定了条件,则条件之间是AND关系;而在”或“行设定的条件之间是OR关系。 ? 进入查询设计视图后,上方的工具栏如下。其中最为重要的快捷按钮描述如下: (1)视图方式:有三个选项,“设计视图”(显示如上图的查询设计界面)、“数据表视图”(显示查询作用于数据的结果,可用于查看查询是否正确)、“SQL视图”(显示当前查询的SQL语句) (2)选择查询类型:当我们要设计一下特殊查询时,需要先在“选择查询类型”选定查询类型,查询设计视图能相应的变化。 (3)运行查询:对于一般查询该按钮并不重要,因为可以通过“数据表视图”来查看结果;但操作查询必须使用“运行查询”才能真正对操作的基础数据进行更改。 (4)表达式生成器:可以帮助同学们输入条件。 ? 2、创建“教师工作时间-姓名-职称查询”。要求以教师表为数据源,查询在1990年到1995年之间参加工作的、姓张的、职称不为空的教师信息,结果显示所有字段。 查询设计分析: (1)数据源为“教师”表。 (2)用于进行选择的条件有三个:工作时间在1990到1995之间、姓名第一字为“张”、职称不为空,三者之间是AND关系。 (3)要显示的字段为数据表中所有字段。 (4)通过题意,没有统计相关计算,所以不需要分组;也没要求排序 在设计视图设计(如下图): (1)在数据源区添加“教师”表 (2)将表中所有字段都添加的“字段”行,并选择“显示”打勾(默认状态) (3)在参与条件的字段的“条件”行输入条件表达式 ? 查看结果是否正确,保存查询。设计好查询后,点击“数据表视图”查看查询结果(如下图1);如果正确,则保存并指定查询名。 ? ? 上述查询还可以如下图设计。下面设计要点: (1)利用“*”表示表中的所有字段。 (2)视图中的姓名、工作时间、职称字段仅用于构成条件,所以不于显示。(如果再显示的话,则结果中就会重复了) ? 在上述查询中的条件表达式,还可以有很多种写法,请同学参看内部教程查询中的表达式部分,下面仅简单举例。 (1)判断姓张:left([姓名],1)="张"、mid([姓名],1,1)="张" (2)在1990到1995参加工作:year([工作时间]) between 1990 and 1995 、[工作时间]>=#1990-1-1# and [工作时间]<> (3)职称不为空:对于空NULL。只能用两种表达式来比较,is null(为空)、is not null(不为空) 其中,视图中like "张*",即利用“like+通配符”来匹配文本串的方法,很多地方又称之为“模糊查询”。 3、创建“数学系-计算机系-教师查询”。以教师表为数据源,查询数学系或计算机系的教师信息。结果显示下面字段:教师编号、姓名、性别、工作时间、职称、系别。其中“姓名”重命名为“教师姓名”。(演示条件OR设计,字段重命名) 查询设计分析: (1)数据源为“教师”表。 (2)用于进行选择的条件有两个:系别为数据系、系别为计算机系,两者之间为OR关系(注意如何建立) (3)要显示的字段:教师编号、姓名、性别、工作时间、职称、系别 (4)要求将“姓名”重命名为“教师姓名”(如何设计) 在设计视图设计(如下图): (1)在数据源区添加“教师”表 (2)将表中教师编号、姓名、性别、工作时间、职称、系别字段都添加的“字段”行,并选择“显示”打勾(默认状态) (3)在系别字段的“条件”行输入“数学”,在“或”行输入“计算机” (4)重命名字段方法:“新字段名称:原字段名”,如下图中 教师姓名:姓名 ? 查看结果是否正确,保存查询。设计好查询后,点击“数据表视图”查看查询结果(如下图1);如果正确,则保存并指定查询名。 注意下图中,“姓名”字段的标题变为了“教师姓名”。 ? ? 说明:本例是为了演示如何设计多个条件为OR情况下的查询,所以在条件分析时,做如上分析。事实上,我们也可以看做一个条件,书写如下: [系别]="数学" or [系别]="计算机"、[系别] in ("数学","计算机") 4、创建“学生-课程-选课成绩-不及格查询”。以学生、选课成绩、课程为数据源,建立一多表查询,选出成绩<> 查询设计分析: (1)数据源为“学生”、“选课成绩”、“课程”表。观察要求显示的字段:学生“姓名”只有“学生”表中才有,“课程名称”、“学分”只有“课程”表中才有、“成绩”只有“选课成绩”中才有。所以要完成查询目标,必须要“学生”、“选课成绩”、“课程”表。 (2)用于进行选择的条件有1个:成绩<> (3)要显示的字段:“学生编号”、“姓名”、“课程名称”、“学分”、“成绩” 在设计视图设计(如下图): (1)在数据源区添加“学生”、“选课成绩”、“课程”三个表。(实际上系统先将三表做连接操作,形成一个数据集) (2)将“学生编号”、“姓名”、“课程名称”、“学分”、“成绩”字段都添加的“字段”行,并选择“显示”打勾(默认状态) (3)在成绩字段的“条件”行输入 <> ? ? 对于多表查询,一般要求多个表之间要建立关系(如下图),这样可以加速系统进行“连接”运算的速度。当然,不建立关系,系统也会根据指定的条件来“连接”。 ? 本节虽然标题为“简单查询设计”,但如上所见,本节并不简单。不仅不简单,钟老师认为上述内容是同学们设计任何查询的基础,只有把查询看作一种在海量数据中查找数据的艺术,只有能够利用查询工具“设计”出符合要求查询来,才能真正有效的掌握和利用查询。查询的重点在条件表达式的书写,同学们应努力掌握各种运算符的使用方法和适用目的,做到举一反三,才能避免去记忆大量查询示例而耗费大量精力。 列名1>条件表达式>表名或视图名>目标字段或表达式>Microsoft Access在很多地方得到广泛使用,例如小型企业,大公司的部门。 |
温馨提示:喜欢本站的话,请收藏一下本站!