数据库及其应用2120第05章_第1页
数据库及其应用2120第05章_第2页
数据库及其应用2120第05章_第3页
数据库及其应用2120第05章_第4页
数据库及其应用2120第05章_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库及其应用课程代码2120

2005年版第5章查询“查询”是Access数据库的一个重要对象,是基于表的一种视图,查询获得的记录集显示在虚拟的数据表视图中,并不占用实际空间。使用“查询”可以从一个或多个表中按照某种准则检索数据,在查询的同时可以进行计算、更新或删除等修改数据源的操作,还能通过查询生成一个新表,更重要的是可以把查询的结果作为窗体、报表或数据访问页的数据源。5.1

查询类型与查询视图

5.1.1查询类型

5.1.2查询视图

5.2

选择查询

5.2.l使用向导创建选择查询

5.2.2在设计视图中创建选择查询

5.2.3在“设计”视图中建立查询准则

5.3

参数查询

5.4

交叉表查询

5.4.1什么是交叉表

5.4.2使用向导创建交叉表查询

5.5

操作查询

5.5.1生成表查询

5.5.2更新查询

5.5.3追加查询

5.5.4删除查询

5.6

SQL查询

5.6.1SQL简介

5.6.2SQL查询命令

5.6.3SQL查询示例

5.6.4联合查询

5.6.5传递查询

5.6.6数据定义查询

5.1查询类型与查询视图根据查询方法和对查询结果的处理不同,可以把Access中的查询分为“选择查询”、“参数查询”、“交叉表查询”、“操作查询”和“SQL查询”等五种查询。Access为查询提供了三种视图方式:“设计视图”、“数据表”视图和“SQL”查询视图。5.1.1查询类型1.选择查询选择查询是最重要的查询类型,根据某些限制条件从一个或多个表中检索数据,并在虚拟的数据表视图中显示结果,在查询的同时还可对记录进行分组、统计、计数、求平均值或其他计算。2.参数查询参数查询是选择查询的一种,不同之处是它在执行时显示一个对话框,用来提示用户输入有关参数,该参数作为查询条件检索数据,并将结果按指定的形式显示出来。参数查询也可以作为窗体、报表和数据访问页的基础。3.交叉表查询交叉表查询是一种创建类似于Excel数据透视表的查询,这种查询主要用于对数据进行分析计算,可显示来源于表中某个数值字段的合计、计数或平均值等。4.操作查询操作查询是一种处理表中记录的查询,并且一次可以批量地处理大量的记录。⑴删除查询从一个或多个表中删除记录。⑵更新查询更改已经存在数据的表。⑶追加查询是一种向已有数据的表中添加记录的查询⑷生成表查询是一种通过复制查询结果而生成新表的查询,生成的表独立于数据源,如同在数据库中创建的表一样5.SQL查询是用户使用SQL语句创建的查询。⑴联合查询是一种将来自一个或多个表的数据合并到一个表中的查询。⑵传递查询是使用服务器能够接受的SQL语言直接向网络数据库服务器发送的SQL语句,通过传递SQL语句访问服务器上数据库中的表。⑶数据定义查询是一种包含SQL数据定义语言的查询,用于创建或更新数据库中的对象。5.1.2查询视图“查询”和“表”类似,Access为查询对象提供了“设计”、“数据表”和“SQL”三种视图方式。如下图,见教材P116图5-2。设计视图用于创建查询,数据表视图用于显示查询结果,而SQL视图是一个用来输入SQL查询语言的窗口。1.“查询”之“设计”视图是一个用于创建或修改查询的窗口,窗口中包含有创建或修改查询的各种要素。设计视图分为上下两部分:上面用于显示当前查询的数据来源,可以是数据库中的表或已创建的其他查询;下面用来设置查询输出的字段、查询准则和记录排序方式等。2.“查询”之“数据表”视图数据表视图以行、列形式显示查询数据,用于浏览、添加、搜索、编辑或删除查询数据。3.“查询”之SQL查询视图Access中的查询是使用SQL语言实现的。若熟悉SQL语言,可以直接在SQL窗口中书写SQL语句;若不熟悉SQL语言,可以在“设计”视图中采用可视化地操作方法,只需在“设计”视图中给出要显示的字段、准则(条件)和排序方式等,系统就会自动生成SQL语句,切换到SQL视图,就可以看到等效的SQL语句。本节结束5.2

选择查询5.2.1使用向导创建选择查询使用向导创建查询,除了能检索出所需要的数据外,还能对查询结果集进行计数、求最大值、求最小值、求平均值和统计汇总等工作。5.2选择查询5.2.1使用向导创建选择查询1.打开数据库2.单击“数据库”窗口中的“对象”,单击“使用向导创建查询”的快捷方式→打开或双击“查询”列表中的“使用向导创建查询”的快捷方式3.选择数据源和字段数据源可以是表或已经存在的另一个查询在表/查询选择表,在可用字段中选择所需的字段后,单击>5.2

选择查询5.2.1使用向导创建选择查询4.询问采用明细查询还是汇总查询明细查询:普通的选择查询汇总查询:是在普通查询基础上进行统计处理5.为查询命名6.完成5.2

选择查询5.2.2在设计视图中创建选择查询使用设计视图创建选择查询的三个要点:一是确定查询数据源二是指定查询输出字段三是设计查询准则5.2

选择查询5.2.2在设计视图中创建选择查询1.打开数据库2.单击“数据库”窗口中的“对象”,然后单击“在设计视图中创建查询””的快捷方式→打开或双击“查询”列表中的“在设计视图中创建查询”的快捷方式3.将表添加到查询“设计”窗口中作为数据源,然后关闭。4.建立多表之间的关系。5.向查询中添加字段5.2选择查询5.2.2在设计视图中创建选择查询6.查询设置排序:指定是否按该字段对结果进行排序显示:指定是否显示该字段准则:指定查询条件7.切换到“数据表”视图,查看一下结果8.保存查询例如:根据学生、课程和成绩表建立学生成绩S-C-G的查询,包括学号、姓名、课程名和各科成绩。5.2选择查询5.2.3在“设计”视图中建立查询准则1.表达式表达式是由运算符、常量、函数或字段等若干部分组成的有意义的式子。⑴操作符及特殊符号算术:+、-、*、/比较:>、>=、<、<=、=、<>、between……end(两者之间)5.2

选择查询5.2.3在“设计”视图中建立查询准则1.表达式⑴操作符及特殊符号逻辑:not、and、or通配符:*任意多个字符?单个字符[]与方括号内的任何单个字符匹配!与不在方括号内的任何字符匹配#与任何单个数字字符匹配5.2

选择查询5.2.3在“设计”视图中建立查询准则1.表达式⑴操作符及特殊符号Like前后两个字符串是否匹配in…给定的值是否在…之中&连接两个字符串字符串常量的定界符为双引号日期常量的定界符为#5.2

选择查询5.2.3在“设计”视图中建立查询准则1.表达式⑵使用表达式设置查询准则例如:姓名like“张*”所有姓张的数量>500出生日期=#1985-01-01#性别=“女”AND职称=“工程师”工资>=2#00工资大于2000,2100,2200…5.2

选择查询5.2.3在“设计”视图中建立查询准则2.设置查询准则示例写在同一行的条件为逻辑“与”写在不同行的条件为逻辑“或”5.2选择查询5.2.3在“设计”视图中建立查询准则3.在查询中建立计算字段⑴打开数据库⑵单击“数据库”窗口中的“对象”,然后单击“在设计视图中创建查询”的快捷方式→打开或双击“查询”列表中的“在设计视图中创建查询”的快捷方式⑶将表添加到查询“设计”窗口中作为数据源,然后关闭。5.2选择查询5.2.3在“设计”视图中建立查询准则3.在查询中建立计算字段⑷在第一个空字段的位置上单击一下,单击“工具栏”上的“生成器”按钮⑸在表达式生成器中输入计算字段的表达式,确定⑹将表达式重命名:直接把表达式1改为字段名例如:在成绩表中,计算总成绩总成绩=平时*20%+期末*80%5.3参数查询参数查询的特点是:在执行时能显示对话框来提示用户输入信息。操作步骤:⑴打开数据库⑵单击“数据库”窗口中的“对象”,然后单击“在设计视图中创建查询””的快捷方式→打开或双击“查询”列表中的“在设计视图中创建查询”的快捷方式⑶将表添加到查询“设计”窗口中作为数据源,然后关闭。5.3参数查询操作步骤:⑷在要作为参数字段下面的“准则”单元格中输入提示信息,注意:提示信息一定要用方括号[]括起来。⑸单击工具栏上的“运行”按钮,出现“输入参数值”的对话框,在对话框中输入要查询的值。⑹单击确定,显示出查询的结果。关闭显示对话框。⑺保存查询。5.4

交叉表查询5.4.1什么是交叉表查询是按行、列形式分组安排数据:一组作为行标题显示在表的左部,另一组作为列标题显示在表的顶部,而行与列的交叉点的单元格则显示数值。交叉表即可以在表的基础上创建,也可以在另一个查询基础上创建。5.4

交叉表查询5.4.1使用向导创建交叉表查询例如:根据学生成绩查询,建立交叉表查询S-C-G

交叉表1.打开数据库STUDENT,选择“查询”对象2.单击“数据库”窗口工具栏的“新建”按钮,然后在“新建查询”的对话框中双击“交叉表查询向导”5.4

交叉表查询5.4.1使用向导创建交叉表查询例如:例如:根据学生成绩查询,建立交叉表查询S-C-G

交叉表3.选择查询数据源

S-C-G

,确定字段的行标题(学号和姓名)和列标题(课程名)。4.确定行列交叉的单元格上显示的数据(成绩),在函数列表中选择“平均”,。5.保存命名,完成。5.5

操作查询操作查询是一种处理表中记录的查询,并且一次可以批量地处理大量的记录。如删除记录、更新记录、追加记录,甚至生成一个新表。特点:在查询的同时,会改变原来表中的数据。5.5

操作查询5.5.1生成表查询1.打开数据库STUDENT,选择“查询”对象,单击“数据库”窗口工具栏的“新建”按钮,然后在“新建查询”的对话框中双击“设计视图”2.选择表作为生成表的数据源,3.创建一个选择查询4.单击“查询”菜单的“生成表查询”,在“表名称”中输入表的名称,选中存入“当前数据库”,确定。5.单击工具栏上的“运行”按钮,提醒用户要创建一个新表,单击“是”。5.5操作查询5.5.2更新查询利用更新查询可以按指定的条件一次性地更新一批记录,而不必逐个地去修改每一条记录。更新查询将改变原来的数据,注意做好备份。1.打开数据库,选择“查询”对象,单击“数据库”窗口工具栏的“新建”按钮,然后在“新建查询”的对话框中双击“设计视图”2.选择表作为查询的数据源.

55操作查询5.5.2更新查询3.向查询添加字段(查询的条件和更新的字段)4.单击“查询”菜单的“更新查询”,在更新字段的“更新到”单元格中输入更新的表达式5.单击工具栏上的“运行”按钮,提醒用户是否要更新这些记录,单击“是”,将进行更新并且不能撤消这种更改。6.打开原来的表,将会看到更新的结果。5.5操作查询5.5.3追加查询追加查询是一种从一个表向另一个表追加记录的操作,特别适合从已经存在数据的源表按照指定条件向目标表转移的情况。要求源表和目标表必须具有若干个相同类型的字段。1.先创建一个选择查询,该查询应包含追加记录的源表。2.在查询“设计”视图中,单击工具栏上的“查询类型“按钮”,选择“追加查询”5.5

操作查询5.5.3追加查询3.在“表名称”框中输入目标文件名4.如果该表在当前打开的数据库中,单击“当前数据库”,否则单击“其他数据库”,并键入存放这个数据库的路径和名称,确定5.查询类型变为“追加查询”,两个表如有相同的名称的字段,Access将自动在“追加到”行中填上相同的名称;如果没有相同的名称的字段,在“追加到”行中输入所要追加到表中字段的名称5.5

操作查询5.5.3追加查询6.单击工具栏上的“视图”,切换到数据表视图,可以预览,必要时,返回到“设计”视图进行修改。7.单击工具栏上的“运行”按钮,执行追加操作。8.打开原来的表,将会看到追加的记录。.5.5操作查询5.5.4删除查询删除查询主要用于批量的删除记录。1.在查询“设计”视图中,选择表2.单击工具栏上的“查询类型”按钮,选择“删除查询”3.把要设置删除准则的字段拖到设计网格,然后设置删除准则5.5操作查询5.5.4删除查询4.如果要预览即将删除的记录,可切换到“数据表”视图查看,然后返回查询“设计”视图,必要时可进行修改5.如果要删除记录,单击工具栏上的“运行”按钮,执行删除操作。6.打开原来的表,查看记录。7.保存查询吗?是保存。5.6SQL查询SQL查询是用户使用SQL语句创建的查询。Access将“联合查询”、“传递查询”和“数据定义查询”归结为SQL查询。5.6.1SQL简介SQL突出之处是查询。能查询满足各种条件的记录,还能在查询中进行各种计算和对查询结果进行分组排序等。5.6

SQL查询5.6.2SQL查询命令1.命令格式SELECT[*][<表名>.]<字段名1>,…FROM[<数据库名>!]<表名>,…[INSERT/LEFT/RIGHT/FULL]JOIN<数据库名>!<表名>[ON<联接条件>…][WHERE<联接条件>[AND<联接条件>]…][GROUPBY<分组表达式>…][HAVING<筛选条件>][UNION<SELECT命令>][ORDERBY<字段>[ASC/DESC]…]5.6

SQL查询5.6.2SQL查询命令1.命令格式注意:[]的内容表示任选,<>内容是必选/表示选择其中任一子句各子句之间至少有一个空格一个SQL语句可以占多行,除最后一行以外其他行最后都有一个分号;2.命令的功能从指定的表中检索出满足条件的记录5.6

SQL查询5.6.2SQL查询命令3.说明SELECT子句指出查询的输出字段FROM子句指出查询的表WHERE子句指出查询的条件*:表示选择表中的所有字段<表名>.<字段名>:指出表中的某个字段5.6

SQL查询5.6.2SQL查询命令3.说明LEFTJOIN<数据库名>!<表名>称为左联接,其含义是除了满足联接条件的记录出现在结果表中外,对于左表(第1个表)不满足联接条件的记录也出现在查询结果中,而右表(第2个表)不满足联接条件的记录返回空值。5.6SQL查询5.6.2SQL查询命令3.说明RIGHTJOIN<数据库名>!<表名>称为右联接,其含义是除了满足联接条件的记录出现在结果表中外,对于右表不满足联接条件的记录也出现在查询结果中,而左表不满足联接条件的记录返回空值。FULLJOIN称为完全联接,其含义是除了满足联接条件的记录出现在结果表中外,左有两表不满足联接条件的记录返回空值。5.6SQL查询5.6.2SQL查询命令3.说明GROUPBY子句用于对查询结果进行分组计算,需通过HAVING<筛选条件>指明分组条件UNION<SELECT命令>子句用于将两个SELECT语句的查询结果进行“并”运算,默认组合结果中排除重复行。ORDERBY<字段>子句用于对查询结果按指定的字段进行排序,ASC-升序,DESC—降序,默认升序5.6SQL查询5.6.3SQL查询示例例1:SELECT*FROM学生

WHERE性别=“男”例2:SELECT课程名,学分FROM课程

WHERE学分>=8例3:SELECTSUM(学时数)AS总学时

FROM课程5.6SQL查询5.6.3SQL查询示例例4:SELECT姓名,性别,出生日期

FROM学生

WHERE出生日期IN(SELECTMIN(出生日期)FROM学生

WHERE性别=“女”)

查询年龄最大的女生的姓名,性别,出生日期5.6

SQL查询5.6.3SQL查询示例例5:SELECT姓名,性别,出生日期

FROM学生

ORDERBY性别DESC,出生日期例6:SELECT性别,COUNT(性别)

FROM学生

GROUPBY性别

统计男女生人数。5.6

SQL查询5.6.4联合查询1.打开数据库,选择“查询”对象,单击“数据库”窗口工具栏的“新建”按钮2.在“新建查询”的对话框中单击“设计视图”,然后单击确定3.单击显示表对话框的关闭按钮4.选择“查询”菜单的“SQL特定查询”,然后单击“联合”命令5.输入SQL语句(SELECT学号FROM学生WHERE性别=“男”UNIONSELECT学号FROM成绩

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论