第3章access2010查询操作-上传

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第3章查询【本章主要掌握内容】查询的基本概念查询的功能与分类查询的创建与设计SQL查询第一节查询的概述在设计数据库时,常常把数据分类,并分别存放在多个表中,但在使用时需要检索一个或多个表中符合条件的数据。查询实际上就是将这些分散的数据再集中起来。xhxmxb1001张三男………………xhkcdhcj10010185………………kcdhkcmc01数据库应用…………学生表成绩表课程表xmkcmccj张三数据库应用85………………查询结果一、查询的概念查询是根据一定的条件,从一个或多个表中提取数据并进行加工处理,返回一个新的数据集合。利用查询可以实现数据的统计分析与计算等操作。查询结果可以作为其他查询、窗体、报表的数据源。查询是一张“虚表”,是动态的数据集合。查询主要有以下几个方面的功能1)选择字段和记录选择字段:在查询的结果中可以只含有表中的部分字段。选择记录:在查询的结果中,只含有符合指定条件的记录。2)编辑记录即利用查询添加、修改和删除表中的记录。3)统计和计算即在查询中进行各种统计计算,也可以建立一个计算字段来保存计算的结果。4)建立新表利用查询的结果创建一个新表。5)为其他数据库对象提供数据源即以查询的结果作为查询、窗体或报表的数据源。二、查询的种类在Access2010中,可以创建5种类型的查询:1、选择查询是根据指定的条件,从一个或多个表中获取数据并显示结果。选择查询可以对记录进行分组,并且对分组的记录进行求和、计数、求平均值以及其它类型的计算。选择查询产生的结果是一个动态的记录集,不会改变源数据表中的数据。2、交叉表查询交叉表查询是对基表或查询中的数据进行计算和重构,以方便分析数据。能够汇总数字型字段的值,将汇总计算的结果显示在行与列交叉的单元格中。3、参数查询是一种特殊的选择查询,即根据用户输入的参数作为查询的条件。输入不同的参数,将得到不同的结果。执行参数查询时,将会显示一个对话框,以提示输入参数信息。参数查询可作为窗体和报表的基础。4、操作查询查询除了按指定的条件从数据源中检索记录外,还可以对检索的记录进行编辑操作。操作查询可以分为:删除查询从一个或多个表中删除一组符合条件的记录。更新查询对一个或多个表中的一组符合条件的记录进行批量修改某字段的值。追加查询将一个或多个表中的一组符合条件的记录添加到另一个表的末尾。生成表查询将查询的结果转存为新表。5、SQL查询SQL(StructuredQueryLanguage)是一种结构化查询语言,是数据库操作的工业化标准语言,使用SQL语言可以对任何数据库管理系统进行操作。所谓的SQL查询就是通过SQL语言来创建的查询。在查询设计视图中创建任何一个查询时,系统都将在后台构建等效的SQL语句。大多数查询功能也都可以直接使用SQL语句来实现。有一些无法在查询设计视图中创建的SQL查询称为“SQL特定查询”。SQL特定查询包括:联合查询联合查询是将多个表或查询中的字段合并到查询结果的一个字段中。使用联合查询可以合并多个表中的数据,并可以根据联合查询生成一个新表。传递查询传递查询可以直接将命令发送到ODBC数据库服务器中,而不需要事先建立链接。利用传递查询可以直接使用其它数据库管理系统中的表。P154数据定义查询利用数据定义查询可以创建、删除或更改表,或者在数据库表中创建索引。子查询是包含在另一个查询之内的SQL-SELECT语句,即嵌套在查询中的查询。几点说明:创建传递查询、数据定义查询和联合查询不能在设计视图中创建,必须直接在SQL视图中输入相应的SQL语句。创建子查询可以直接在SQL视图中输入相应的SQL语句,或在设计视图的【字段】或【条件】行中输入SQL语句,即将子查询作为查询的条件。选择查询参数查询交叉表查询操作查询SQL查询查询类型☆删除查询☆更新查询☆追加查询☆生成表查询☆联合查询☆传递查询☆数据定义查询☆子查询三、查询视图查询有5种视图,分别是:设计视图数据表视图SQL视图数据透视表视图数据透视图视图设计视图即为查询设计器,通过该视图可能创建除SQL之外的各种类型的查询。数据表视图是查询的数据浏览器,用于查看查询运行的结果。SQL视图是查看和编辑SQL语句的窗口,用于查看和编辑用查询设计器创建的查询所产生的SQL语句。数据透视表视图和数据图视图在此两种视图中,可以根据需要生成数据透视表或数据透视图,从而得到直观的数据分析结果。四、创建查询的方法(界面方法)创建查询(界面方法)有2种方法:使用查询设计视图创建查询使用查询向导创建查询1、使用查询设计视图创建查询使用查询设计视图创建查询首先要打开查询的设计视图窗口,然后根据需要进行查询的定义。★操作步骤:①打开数据库②在【创建】选项卡的【查询】组中单击【查询设计】按钮,打开查询设计器窗口③在查询设计器窗口中定义查询④保存查询查询的设计视图分为上下两部分:上半部分用于显示查询的数据源(包括它们之间的关系)下半部分是定义查询的表格,表格的列对应查询中的一个字段;行对应字段的属性或要求。☆字段查询结果中所显示的字段☆表查询数据源,即字段的来源☆排序查询结果中相应字段的排序方式☆显示设置在数据表视图中是否显示该字段☆条件查询条件(同行之间为“与”关系)☆或查询条件(不同行之间为“或”关系)【例1】①创建一个查询,要求能够显示“教师表”中所有记录的“姓名”、“性别”、“出生日期”、“工作日期”和“毕业学校”;(教师表)②在上述查询的基础上,对记录进行排序,要求:按毕业学校降序排序;毕业学校相同的按出生日期的先后顺序排序;③只显示上述查询中已退休的女教师(按60岁退休)和毕业学校为南京大学的教师。在查询的设计视图中,可以为显示的信息指定标题、调整字段的宽度和改变显示顺序的操作2、使用查询向导创建查询Access2010提供了4种类型的查询向导:简单查询向导交叉表查询向导查找重复项查询向导查找不匹配项查询向导(1)创建基于单个数据源的查询【例2】利用查询向导创建一个查询,要求能够显示“教师”中每个院系教师的工资总额、平均工资、最高工资和最低工资。(教师)★操作步骤:①在【创建】选项卡的【查询】组中单击【查询向导】按钮,打开【新建查询】窗口②在【新建查询】窗口中选择需要创建查询向导③根据系统的引导选择参数或输入相应的信息选择数据源(表或查询)及字段选择明细查询或汇总查询明细查询:显示每条记录的每个字段汇总查询:对数值字段进行汇总统计④保存查询【例3】利用查询向导创建一个查询,要求能够显示教师表中所有记录的“姓名”、“性别”、“出生日期”、“工作日期”和“毕业学校”。(教师表)★操作步骤:①在【创建】选项卡的【查询】组中单击【查询向导】按钮,打开【新建查询】窗口②在【新建查询】窗口中选择需要创建查询向导③根据系统的引导选择参数或输入相应的信息选择数据源(表或查询)及字段④保存查询(2)创建基于多个数据源的查询【例4】查找每名学生的选课成绩,并且显示“学号”、“姓名”、“课程名称”和“成绩”4个字段。(学生表、课程表和成绩表)★分析:这是一个涉及多个数据源的查询成绩来自于cj表学号和姓名来自于xs表,且通过xh字段与cj表相关联课程名称来自于kc表,且通过kcdm字段与cj表相关联使用查询向导创建查询几点说明:不能对记录进行筛选和排序不能改变查询中字段的顺序允许对数值字段进行汇总统计允许按指定日期范围分组汇总汇总查询必须包含且只能包含汇总统计的数值型字段和用于汇总依据的分组字段。其它字段的添加将无法得到期望的汇总效果五、运行查询查询创建完成后,将保存于数据库中。运行查询后,才能看到查询的结果。通过以下方法之一,可以运行查询:▲在查询的设计视图下,单击【查询工具/设计】选项卡【结果】组中的【运行】按钮▲在查询的设计视图下,单击【查询工具/设计】选项卡【结果】组中的【视图】按钮▲右击查询的设计视图标题栏,并在快捷菜单中选择【数据表视图】命令▲双击导航窗口中要运行的查询▲右击导航窗口中要运行的查询,并在快捷菜单中选择【打开】命令第二节选择查询选择查询是最常用的查询类型,它是根据用户所指定的查询条件,从一个或多个数据源表中获取数据并显示结果。选择查询可以对记录进行分组,并进行各种统计,如:求和、计数、求平均值等。选择查询产生的结果是一个动态的记录集,不会改变数据源中的数据。一、基于单数据源表的查询设计单数据源表查询时,主要的操作是:确定查询的数据源(表或已建立的查询)确定查询中要显示的字段或表达式【例5】查看学生表中所有学生的信息,要求显示表中所有字段。(学生表)★操作步骤:①打开查询的设计视图②在打开窗口的上半部添加数据源表③在打开窗口的下半部添加查询中要显示的字段④保存已创建的查询▲表中的“*”表示所有字段。▲可以在下部窗格中添加或删除字段。▲鼠标拖动下部窗格中的字段,可以改变字段的显示位置。SELECT学生表.*FROM学生表SELECT学生表.xh,学生表.xm,学生表.xb,学生表.csrqFROM学生表【例6】查询全校教师的基本工资情况。要求输出教师的工号、姓名、院系名称和基本工资。按院系名称升序排序,同一个系的教师按基本工资的降序排序。(教师)★操作步骤:●打开查询设计视图●选择数据源●在设计表格中设置字段、表、排序、条件等SELECT教师.工号,教师.姓名,教师.院系名称,教师.基本工资FROM教师ORDERBY教师.院系名称,教师.基本工资DESC;【例7】查询学生每门课程成绩情况,要求输出姓名、课程名称和成绩。(学生表、成绩表和课程表)【分析】①姓名存储于学生表中②课程名称储存于课程表中③成绩存储于成绩表中因此本查询的数据源涉及三张表:学生表、课程表和成绩表二、基于多数据源表的查询SELECT学生表.XM,课程表.KCMC,成绩表.CJFROM学生表INNERJOIN(课程表INNERJOIN成绩表ON课程表.KCDM=成绩表.KCDM)ON学生表.XH=成绩表.XH;如果查询的数据源是两个或两个以上的表(或查询),则在设计查询时需要创建数据源之间的连接关系。如果相关联的表已经按照公共字段创建了索引,则在查询视图中可以看到作为数据源的表(或查询)之间已经通过相关字段建立了连接。如果相关联的表未按照公共字段创建索引,则需要在相关表之间建立连接。Access有3种连接类型:内连接左连接右连接内连接(INNERJOIN)只包含来自两张表的联接字段相等的记录。Xs.xh=Cj.xh左连接(LEFTJOIN)包括左表中所有记录和右表中联接字段相等的记录。Xs.xh=Cj.xh右连接包括右表中所有记录和左表中联接字段相等的记录。Xs.xh=Cj.xh注意:如果进行多表查询时,所使用的表或查询之间没有建立连接关系,则查询将以笛卡尔积的形式,即左表中的每一条记录均与右表所有记录合并,形成一条记录。也就是说,会在查询结果中产生大量的数据,而这样的结果是没有任何意义的。双击表的关系连线可以编辑表之间的联接属性,包括:联接的字段和连接的类型。内连接左连接右连接☆只包括两个表中联接字段相等的行(内连接,系统的默认选择)(以学生表和成绩表为例查看不同联接类型的效果)SELECT学生表.XH,学生表.XM,成绩表.KCDM,成绩表.CJFROM学生表INNERJOIN成绩表ON学生表.XH=成绩表.XH;☆包括左表中的所有记录和右表中联接字段相等的那些记录(左连接)SELECT学生表.XH,学生表.XM,成绩表.KCDM,成绩表.CJFROM学生表LEFTJOIN成绩表ON学生表.XH=成绩表.XH;☆包括右表中的所有记录和左表中联接字段相等的那些记录(右连接)SELECT学生表.XH,学生表.XM,成绩表.KCDM,成绩表.CJFROM学生表RIGHTJOIN成绩表ON学生表.XH=成绩表.XH;三、条件查询在实际的查询中,经常需要查询满足某个条件的记录。带条件的查询需要通

1 / 219
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功