书签 分享 收藏 举报 版权申诉 / 123
上传文档赚钱

类型Access数据库技术与应用第4章查询课件.pptx

  • 上传人(卖家):晟晟文业
  • 文档编号:3622349
  • 上传时间:2022-09-27
  • 格式:PPTX
  • 页数:123
  • 大小:1.50MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《Access数据库技术与应用第4章查询课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Access 数据库技术 应用 查询 课件
    资源描述:

    1、第4章 查询4.1 4.1 查询查询概述概述 查询是数据库管理系统最常用、最重要的功能。通过查询,可以对数据库中一个或多个表中的数据进行检索,获得需要的数据或统计结果等.24.1.14.1.1 查询查询的的特点特点(1)表是存储数据的数据库对象,而查询则是对表中的数据进行检索、统计、分析、查看和更改的又一个非常重要的数据库对象。(2)如果说表是对数据进行了分割,那么查询则是将不同表的数据进行组合,它可以从多个表中查找到满足条件的记录组成一个动态集,以数据表视图的方式显示。(3)查询对象中保存的是查询准则,而不是查询的结果。(4)表和查询都是查询的数据源,查询也是窗体、报表的数据源。(5)建立查

    2、询之前,一定要先建立表与表之间的关系。34.1.24.1.2 查询查询的的类型类型Access2010主要提供了两种查询方式。屏幕操作方式,通过建立查询的可视化方法存储查询条件;程序方式,通过直接书写SQL命令的方式实现查询。Access2010的查询有五种形式:选择查询 交叉表查询 参数查询 操作查询 特殊用途查询44.2.1使用查询向导创建查询 例例4-1 使用查询向导创建查询,查询“学生信息”表中学生的信息,要求显示学生的“学号”、“姓名”、“性别”和“政治面貌”信息,查询名为“学生名单”。(1)打开“学生管理系统”数据库,单击功能区“创建”选项卡下“查询”组中的“查询向导”按钮。打开新

    3、建查询对话框,选择“简单查询向导”。5(2)单击“确定”按钮,在打开的对话框“表/查询”列表框中选择“学生信息”表,在“可用字段”中选择所需字段。6 选择表 选择可用字段 添加或取消选定字段单击“下一步”按钮(3)单击“下一步”按钮,在打开的对话框中为查询指定标题。7单击“完成”按钮(4)单击“完成”按钮。84.2.24.2.2 在在查询设计视图中创建查询查询设计视图中创建查询 查询设计视图可以独立的创建查询,也可以对向导创建的查询进行修改。例例4-24-2 使用查询设计视图创建查询,显示学生的“学号”、“姓名”、“班级名称”、“学院名称”,查询名为“学生班级学院信息”。操作步骤:9(1)打开

    4、“学生管理系统”数据库,单击功能区“创建”选项卡下“查询”组中的“查询设计”按钮。打开“显示表”对话框。10(2)确定所需的数据表,在弹出的“显示表”对话框中选择添加“学院信息”表、“班级信息”表、“学生信息”表。(3)确定查询所要包含的字段,在设计网格中的字段行依次选择。11(4)保存查询对象,在弹出的“另存为”对话框中,为查询命名为“学生班级学院信息”。在“学生管理系统”数据库的左边导航窗格下就会显示新创建的查询。12(5)运行查询,即单击功能区“设计”选项卡下“结果”组中的运行 按钮。13学院信息学生信息班级信息4.2.34.2.3 设置设置查询条件查询条件 查询条件是指在创建查询时,通

    5、过对字段添加限制条件,使查询结果中只包含满足条件的数据。1.1.简单简单条件条件表达式表达式 例例4-34-3 查询所有学生的“高等数学”课程成绩,查询结果先按“班级编号”升序和“成绩”字段降序排列。查询名称命名为“高等数学成绩”。14 操作步骤:(1)使用查询设计视图创建查询,添加“学生信息”表、“学生成绩”表、“课程信息”表。(2)确定查询所需要的字段。在“课程名”字段下方的条件网格中输入“高等数学”。15(3)设计查询结果排序的依据,选择“班级编号”下方的排序网格,在下拉列表中选择“升序”,同样选择“成绩”下方的排序网格,在下拉列表中选择“降序”,选择“成绩”下方的排序网格,在下拉列表中

    6、选择“降序”。16查询条件排序(4)单击“保存”按钮,弹出“另存为”对话框,查询命名为“高等数学成绩”。(5)运行查询。172 2.多多字段多条件表达式字段多条件表达式设计网格中的“条件”和“或”两行都属于条件网格。输入在同一行的条件表示“并且(And)”逻辑关系;输入在不同行的条件表示“或(Or)”逻辑关系。例如,查询“高等数学”和“大学英语”课程,该条件网格的写法有两种。18 例4-4 在“学生信息”表中查询国际贸易1班党员和国际贸易2班团员的学生名单。操作步骤:(1)使用查询设计视图创建查询,添加“学生信息”表、“班级信息”表。(2)设置查询条件设计网格。19查询条件 (3)保存并运行。

    7、20按条件查询的结果3 3.特殊特殊运算符运算符运算符运算符功能说明功能说明举例举例NOT BETWEENAND指定字段值在(或不在)某个区间内成绩 Between 70 And 90NOT LIKE指定字段值与某个字符串模式匹配(或不匹配)姓名 Like王*NOT IN指定字段值包含(或不包含)在某几个值中课程号 In(101,103)NOT IS NULL指定字段值是(否)空值入学成绩 Is Null21 查询条件设计中的可以使用一些特殊的运算符 例例4-6 4-6 查找显示所有考试成绩在70到85分之间学生的“学号”、“姓名”、“课程名”和“成绩”信息。操作步骤:(1)使用查询设计视图创

    8、建查询,添加“学生信息”表、“课程信息”表和“学生成绩”表。(2)设置查询条件网格。(3)运行并保存。22方法一方法二 例例4-74-7 查询学生的课程号为“1001”或“1003”课程的成绩,要求显示“学号”、“姓名”、“课程名”和“成绩”。操作步骤:使用查询设计视图创建查询,添加“学生信息”表、“课程信息”表和“学生成绩”表。设置查询条件网格,保存并运行。23方法一方法二 例4-8查询无需先修课的“课程名称”和“学分”信息。操作步骤:(1)使用查询设计视图创建查询,添加“课程信息”表。(2)设置查询条件网格,保存并运行。24通配符通配符功能说明功能说明举例举例*表示0个或多个字符“王*”可

    9、以与王浩、王林、王沂东匹配?表示一个非空字符“王?”可以与王林、王浩匹配,但不与王沂东匹配#表示一个数字“图4-#”可以与图4-2、图4-5等匹配方括号内任何单个字符“王张伟”可以与王伟、张伟匹配,但不与黄伟匹配!排除方括号内任何单个字符“!张王伟”可以和黄伟匹配,但不与张伟和王伟匹配-某个范围内的任何单个字符“02-4”可以与02、03、04匹配,但不与01、06匹配25 有时候查询数据需进行模糊查找,这时使用通配符就是比较好的方法。例4-9 查找显示所有“王”姓学生的“学号”、“姓名”、“课程名”和“成绩”。操作步骤:(1)使用查询设计视图创建查询,添加“学生信息”表、“学生成绩”表和“课

    10、程信息”表(2)设置查询条件网格,保存并运行。26方法一方法二4.3 4.3 查询中的计算查询中的计算 查询可以供用户同时浏览多个表的数据,还可以执行计算。例如用户可能不关心某个学生的具体考试情况,更关心课程的及格率,或更关心学生的平均分数等汇总结果。为了获得这些汇总数据,要在查询中执行计算。274.3.14.3.1 预定预定义计算义计算 预定义计算即所谓的“查询汇总”,用于对查询中的分组记录或全部记录进行“汇总”,如求和、平均、计数、最大值、最小值、标准偏差或方差等。Access通过聚合函数来实现。例例4-114-11建立查询,统计“学生信息”表中男女生人数。操作步骤:(1)使用查询设计视图

    11、创建查询,添加“学生信息”表。(2)添加“学号”字段和“性别”字段。28 (3)单击功能区“设计”选项卡下“显示/隐藏”组中的“汇总”按钮,Access在设计网格中显示“总计”行,并将“学号”和“性别”进行了分组。(4)单击“总计”行“学号”右边下三角按钮,选取聚合函数:“计数”。29(5)保存并运行查询。30按性别分组统计人数 查询汇总的要点有两个:1.1.确定分组项确定分组项 要确定按照什么依据对已选的数据进行分组(分组以行为单位)。分组的依据可以是某个字段,例如按学号分组,那么同一个学号的则被分到一组;分组依据也可以是某个表达式,例如Year(出生日期),那么同一年的则被分到一组。如果在

    12、查询汇总的时候没有设分组依据,那么所有已选的记录被认为是一个大组2 2.确定统计汇总项确定统计汇总项 分组的最终目的是为了汇总,要指定对组内的哪些列,做什么汇总操作。常用的汇总操作由Access2010内置函数中的聚合函数实现。31总计项总计项意义意义说明说明Group By分组用以指定分组字段Sum合计为每一组中指定的字段进行求和运算Avg平均值为每一组中指定的字段进行求平均值运算Min最小值为每一组中指定的字段进行求最小值运算Max最大值为每一组中指定的字段进行求最大值运算Count计数根据指定的字段计算每一组中记录的个数Stdev标准差根据指定的字段计算每一组的统计标准差Var方差根据指

    13、定的字段计算每一组的统计方差First第一条记录根据指定的字段获取每一组中首条记录该字段的值Last最后一条记录根据指定的字段获取每一组中最后一条记录该字段的值Expression表达式用以在设计网格的“字段”行中建立计算表达式Where条件限定表中的哪些记录可以参加分组汇总32Access2010内置函数中的聚合函数4.3.24.3.2 自定义自定义计算(添加新字段)计算(添加新字段)如果想对于一个或多个字段的数据进行数值、日期和文本计算,需要在“设计网格”中创建计算字段,自定义计算就是在设计网格中创建新的字段,计算字段是在查询中重新定义的字段。创建计算字段的方法:将表达式输入到查询设计网格

    14、中的“字段”单元格中输入规则是:如果表达式包含字段名,则必须用中括号将字段名括起来其中计算字段名和表达式之间的分隔符是半角的“:”。33例例4-15查询所有学生的“学号”、“姓名”和“年龄”。分析:年龄字段在“学生信息”表是不存在的,年龄可以通过对“出生日期”字段计算得出 计算年龄的表达式是:Year(Date()-Year(出生日期)。新字段缺省名为“表达式1”,为了给新字段起一个合适的名字,在此直接将“表达式1”改为“年龄”即可。操作步骤:(1)使用查询设计视图创建查询,添加“学生信息”表。(2)添加“学号”、“姓名”字段。34(3)在一个空白的字段网格中输入表达式:Year(Date()

    15、-Year(出生日期)。(4)在表达式前面指定新的字段名“年龄”,并和表达式之间用英文的冒号间隔。35计算年龄的表达式(5)保存并运行。36计算年龄的表达式结果4.4 4.4 交叉表查询交叉表查询 交叉表是一种不同于数据库二维表结构的数据表,他有行、列两个系列的字段名,行、列字段的交叉项中存储数据。课程表是一种典型的交叉表,按行检索第几节课,按列检索星期几,交叉项显示课程名称和上课地点。交叉表实际上也是一种查询,只不过用交叉表的形式组织查询结果。371.1.利用利用向导建立交叉表查询向导建立交叉表查询 例例4-17 4-17 使用“交叉表查询向导”创建查询,按性别统计不同政治面貌的人数。操作步

    16、骤:(1)打开“学生管理系统”数据库,单击功能区“创建”选项卡下“查询”组中的“查询向导”按钮。选择“交叉表查询向导”。38(2)单击“确定”按钮,在弹出“交叉表查询向导”对话框中选择“表”单选项,选择“学生信息”作为数据源。39(3)选定“政治面貌”字段,此字段作为行标题,单击“下一步”按钮。40 (4)选定“性别”字段作为列标题。单击“下一步”按钮。(5)对“学号”个数计数,作为行列交叉点的数据,单击“下一步”按钮。41(6)指定查询名称“男女生政治面貌”。42(7)单击“完成”按钮。43行坐标列坐标交叉点计数2 2使用使用查询设计视图建立交叉表查询查询设计视图建立交叉表查询 使用查询设计

    17、视图的方式创建交叉表查询和使用交叉表向导方式创建交叉表查询的最大区别:设计视图方式可以选择多个表、多个字段作为交叉表中的数据,创建方式简单灵活。例例4-184-18利用查询设计视图方式建立交叉表查询,查询学生各科成绩。操作步骤:(1)使用查询设计视图创建查询,添加“学生信息”表、“学生成绩”表和“课程信息”表。(2)在“查询类型”组中单击“交叉表”按钮。(3)在条件网格中添加“学号”、“姓名”、“课程名”和“成绩”字段。44(4)在设计网格中修改“成绩”字段的总计项为“First”(因为成绩唯一,选择“平均值”,“最后一个”等都可以)。(5)在交叉表网格将“姓名”字段和“学号”字段设置为“行标

    18、题”,将“课程名”设置成“列标题”,将“成绩”设为“值”。45(6)保存并运行。464.5 参数查询参数查询 参数查询是Access查询中比较复杂的高级查询,该查询是在查询运行时设置查询参数,实现对数据检索的查询。即在查询运行时弹出对话框,要求用户输入记录的限制条件,然后系统根据用户输入条件,实现动态查询。提示信息用方括号“”括起来。如果不需要指定范围,可直接在字段下输入表达式。如在“姓名”字段下的“条件”单元格中,输入“请输入要查找的学生姓名”。47例例4-19 按照用户输入的年份,查找该年份出生的学生。显示包括“学号”、“姓名”、“性别”和“出生日期”。操作步骤:(1)使用查询设计视图创建

    19、查询,添加“学生信息”表。(2)在设计网格中添加选择“学号”、“姓名”、“性别”和“出生日期”字段。(3)在设计网格中插入一个自定义字段:Year(出生日期)。(4)在自定义字段的条件网格中输入提示信息:“请输入出生年份”,中括号不能省略,并取消该列的显示。48(5)保存。运行时弹出对话框,输入出生年份。49 例例4-204-20 设计参数查询,检索“入学分数”在用户输入的范围内的所有学生的“学号”、“姓名”和“入学分数”。操作步骤:(1)使用查询设计视图创建查询,添加“学生信息”表。(2)在设计网格中添加“学号”、“姓名”、“入学分数”字段。(3)在要做参数的“入学分数”字段“条件”单元格中

    20、,输入:Between 输入分数下限 And 输入分数上限。50(4)运行查询。在出现的第一个对话框中输入“入学分数”的下限值,单击“确定”按钮,在出现的第二个对话框中输入“入学分数”的上限值,单击“确定”按钮。51下限值上限值 运行结果:52580到605之间的记录4.6 4.6 操作查询操作查询 在数据库的日常维护和使用过程中,常常会对大量的数据进行修改。Access的操作查询可以用一个查询实现成批数据的插入、更新和删除,还可以将查询的结果生成一个基本表,并写入数据库磁盘。534.6.14.6.1 生成生成表查询表查询 生成表查询是利用一张或多张表中的全部或部分数据生成新表。例例4-214

    21、-21 将“C程序设计”课程不及格学生的“学号”、“姓名”、“课程名”和“成绩”信息生成新表,新表名为“程序设计不及格名单”。操作步骤:(1)使用查询设计视图创建查询,添加“学生信息”、“学生成绩”和“课程信息”表。(2)在设计网格中添加“学号”、“姓名”、“课程名”和“成绩”字段。54(3)输入查询条件,限制新表所包含的内容。55设置生成新表的条件设置生成新表的字段(4)单击功能区“查询工具/设计”选项卡下“查询类型”组中“生成表”按钮,运行查询,在“生成表”对话框中输入目标表的名称。56(5)单击“确定”按钮,弹出消息框。57(6)单击“是”按钮,在数据库导航窗口的“表”对象中,将增加一张

    22、新表“程序设计不及格名单”。584.6.2 4.6.2 追加追加查询查询 追加查询是将一个或多个表中的一组记录添加到另一个已经存在的表的末尾。追加查询应满足几点要求:(1)追加查询的数据源表和插入数据的目标表不能是同一个表。(2)一旦追加不可撤销。(3)新数据和目标表字段个数一样,且字段类型、字段大小一一对应。(4)新数据不能违背目标表的约束。59 例例4-22 将“VB程序设计”成绩不及格的学生信息追加到“程序设计不及格名单”表中。操作步骤:(1)使用查询设计视图创建查询,添加“学生信息”表、“学生成绩”表和“课程信息”表。(2)在设计网格中添加“学号”、“姓名”、“课程名”和“成绩”字段。

    23、60(3)在“查询工具/设计”选项卡的“查询类型”组上,单击“追加”按钮,显示“追加”对话框,在“表名称”框中,输入要向其追加记录的表的名称。61 如果表位于当前打开的数据库中,则单击“当前数据库”。如果表不在当前打开的数据库中,则单击“另一数据库”并输入存储该表的数据库的路径,或单击“浏览”按钮定位到该数据库,再单击“确定”按钮。(4)单击“确定”按钮,在设计网格中增加“追加到”行。输入查询条件。62(5)运行查询,弹出对话框,单击“是”按钮追加记录,单击“否”按钮取消追加。634.6.34.6.3 更新更新查询查询 更新查询是对一个或多个表中筛选出来的数据进行更改。如果要对数据表中的某些数

    24、据进行有规律地成批的更新替换操作,就可以使用更新查询来实现。例例4-234-23 在“学生成绩”表中,将“C程序设计”课程的成绩小于60分的记录成绩上调5分。操作步骤:(1)使用查询设计视图创建查询,添加“学生成绩”表和“课程信息”表。(2)在设计网格中添加“课程名”和“成绩”字段。64(3)在“条件”网格中输入条件。(4)单击“查询工具/设计”选项卡下“查询类型”组中“更新”按钮,并在“成绩”的“更新到”设计网格中输入表达式:“成绩+5”。(5)若要查看将要更新的记录列表,单击“查询工具/设计”选项卡下“结果”组中的“视图”按钮,此列表并不显示新值。65(6)运行查询,弹出消息框。只有运行查

    25、询后,才能更新数据。单击“确定”按钮,更新查询完成。664.6.44.6.4 删除删除查询查询删除查询是将满足条件的记录进行删除。它将改变设计网格的结构,去掉“排序”网格和“显示”网格,增加一个“删除”网格。删除查询将删除整个记录,而不只是记录中的所选字段;删除查询可以从单个表中删除记录,也可以从多个相互关联的表中删除记录;删除网格有“From”和“Where”两个选项,“From”指明从哪个表删除记录,“Where”指明删除记录要满足的条件。运行此查询将永久删除指定表中的记录,并且删除的记录不能使用“撤销”命令恢复。在执行删除查询的操作时要十分慎重,最好把要删除记录的表进行备份,以防由于误操

    26、作而引起数据丢失。67 例例4-24 建立查询,将“入学分数”低于561分的记录从“学生信息”表中删除。操作步骤:(1)使用查询设计视图创建查询,添加“学生信息”表。(2)在设计网格中添加“学生信息.*”和“入学分数”字段。(3)单击“查询工具/设计”选项卡下“查询类型”组中“删除”按钮。(4)为“学生信息.*”字段设置删除项为“From”,为“入学分数”设置删除项为“Where”。(5)设置查询设计网络。68(6)运行查询,弹出消息框,单击“是”按钮,执行删除。694.7 4.7 其他查询其他查询4.7.1 4.7.1 查找查找重复项重复项查找重复项查询向导,可以在表中找到一个或多个字段完全

    27、相同的记录数。例4-25 查找统计“学生信息”表中不同政治面貌男生、女生人数(即统计“政治面貌”和“性别”均相同的记录个数)。操作步骤:70(1)单击功能区“创建”选项卡下“查询”组中“查询向导”按钮,选择查找重复项查询向导。71(2)单击“确定”按钮,在打开的对话框中,选择“表”视图,并在组合框中选择表:“学生信息”。72(3)单击“下一步”按钮,在打开的对话框中选择包含重复项的字段,在本例中为“政治面貌”和“性别”。73(4)单击“下一步”按钮,在打开的对话框中选择要显示的其他字段,如无则不选择。74(5)单击“下一步”按钮,在打开的对话框中确定该查询的名称,保存查询。75(6)单击“完成

    28、”按钮。该表第三列显示出了不同性别的政治面貌人数。764.7.24.7.2 查找查找不匹配项不匹配项 查找不匹配项查询向导,可以在表中找到与其他表中的信息不匹配的记录。例4-26 查找没有被选的课程(即该课程无学生成绩),显示“课程号”、“课程名”和“学分”字段。操作步骤:77(1)单击功能区“创建”选项卡下“查询”组中的“查询向导”按钮。(2)单击“确定”按钮,在打开的对话框中,选择“表”视图,并在组合框中选择表:“课程信息”。78(3)单击“下一步”按钮,在打开的对话框中选择要与哪张表比较不匹配项,在此选择“学生成绩”表。79(4)单击“下一步”按钮,在打开的对话框中选择两张表按比较的标准

    29、,在此选择“课程信息”表的“课程号”字段和“学生成绩”表的“课程号”字段。80(5)单击“下一步”按钮,在打开的对话框中选择查询结果需要显示的字段。81(6)单击“下一步”按钮,在打开的对话框中确定该查询的名称。82(7)单击“完成”按钮,保存查询。834.8 4.8 结构化查询语言结构化查询语言 SQL结构化查询语言(Structured Query Language)功能强大,结构简练、使用方便,成为当前流行的各种关系数据库管理软件的通用标准语言。其功能包括数据查询、数据操纵、数据定义和数据控制四个部分,是一种非过程化的语言,其大多数语句都是独立执行的,与上下文无关。SQL语言中有9个关键

    30、核心命令,包括了对数据库的所有操作。目前,几乎所有的关系数据库都支持SQL标准。84功能分类功能分类命令命令功能功能数据定义数据定义CREAT创建对象ALTER修改对象DROP删除对象数据操纵数据操纵数据查询SELECT数据查询数据更新UPDATE更新查询INSERT插入查询DELETE删除查询数据控制数据控制GRANT定义访问权限REVOKE回收访问权限85SQLSQL语言的核心命令语言的核心命令4.8.14.8.1 SQLSQL数据查询命令的基本用法数据查询命令的基本用法 数据查询是数据库的核心操作,用SQL的SELECT命令,可以实现数据查询功能。具有灵活的使用方法和丰富的功能。在Acc

    31、ess2010中,查询的数据来源可以是表,也可以是另一个查询。数据查询包括单表查询、多表查询、嵌套查询、合并查询等。861 1.SELECT.SELECT命令的语法格式命令的语法格式SELECT ALL|DISTINCTTOP PRECENT AS FROM AS,AS INNER|LEFTOUTER|RIGHT OUTERJOINAS ON WHERE AND GROUP BY HAVING ORDER BY ASC DESC872 2.参数参数说明说明(1)SELECT子句指定查询输出的结果。ALL:表示查询结果中包括所有满足查询条件的记录,也包括重复的记录。默认ALL。DISTINCT:

    32、表示在查询结果中内容完全相同的记录只能出现一次。TOP PRECENT:指定查询结果中只返回前面一定数量或百分比的记录,具体数量或百分比由来决定。AS:指定查询结果中列的标题名称。88(2)FROM子句指定查询数据所在的表以及在连接条件中涉及的表。:表或查询表示要操作的表或查询名称,即数据源。AS:表示同时为表指定一个别名。89 (3)JOIN子句指定多表之间的连接方式。INNER|LEFTOUTER|RIGHT OUTERJOIN表示内部|左(外部)|右(外部)连接。其中的OUTER关键字为可选项,用来强调创建的是一个外部连接查询。ON子句:与JOIN子句连用,指定多表之间的关联条件为:。(

    33、4)WHERE子句指定查询条件。多个条件之间用AND 或OR 连接,分别表示多个条件之间的“与”和“或”关系。90(5)GROUP BY 子句指定对查询结果分组的依据。:指定分组所依据的字段 HAVING子句:与GROUP BY子句联用,指定对分组结果进行筛选的条件为。91(6)ORDER BY 子句指定对查询结果排序所依据的列。:指定对查询结果排序所依据的列。ASC指定查询结果以升序排列,DESC指定查询结果以降序排列。说明:“”表示必选项,具体内容由用户提供“”表示可选项“|”表示多选一924.8.14.8.1SQLSQL数据查询命令的基本用法数据查询命令的基本用法93SELECT 子句子

    34、句查询设计器的选项查询设计器的选项SELECT“字段字段”栏栏FROM“显示表显示表”对话框对话框WHERE“条件条件”栏栏GROUP BY“总计总计”栏栏ORDER BY“排序排序”栏栏3 3SELECTSELECT命令与查询设计器中选项的对应关系命令与查询设计器中选项的对应关系在查询向导和查询设计器中建立的查询,都由Access中的SQL语法转换引擎自动转换为等效的SQL语句。SELECT命令各子句与查询设计器中各选项间的对应关系4.8.24.8.2单表查询单表查询单表查询是指查询结果及查询条件中涉及的字段均来自于一个表或查询。常用的单表查询有下面几种情况。1.1.查询表中的若干列查询表中

    35、的若干列这种查询就是从表中选择需要的目标列,对应于关系代数中的投影运算,其格式为:SELECT ,FROM(1)查询所有字段当需要查询输出表中所有字段时,在目标列中使用“*”即可,而不必将表所有字段依次罗列出来。94例例4-27 查询“课程信息”表中所有课程的全部信息。Select *From 课程信息该命令等同于以下命令,但简化了命令的输入。Select 课程号,课程名,学分,先修课 From 课程信息 95(2)查询指定的字段 当需要查询输出一张表中的某些字段时,目标列中依次罗列各输出字段名称,字段的罗列次序即为字段的输出顺序。例例4-28 查询“学生信息”表中所有学生的“学号”、“姓名”

    36、和“性别”信息。Select 学号,姓名,性别 From 学生信息 96(3)查询不重复记录 如果要去掉查询结果中的重复记录,可以在字段名前加上DISTINCT关键字。例例4-29从“学生成绩”表中查询所有学生的“学号”。Select Distinct 学号 From 学生成绩 974.8.24.8.2 单表查询单表查询2 2选择查询选择查询 选择查询是从表中选出满足条件的记录,对应于关系代数中的选择运算,其格式为:SELECT FROM WHERE 说明:WHERE子句中的条件是一个逻辑表达式,常由多个关系表达式通过逻辑运算符连接而成。98例例4-31 4-31 查询“教师信息”表中已婚教师

    37、的信息。显示包括“教师编号”、“姓名”、“性别”和“婚否”。Select 教师编号,姓名,性别,婚否 From 教师信息 Where 婚否=True 例例4-324-32 查询“课程信息”表无先修课的课程相关信息 Select *From 课程信息 Where 先修课 is Null 994.8.24.8.2 单表查询单表查询3 3排序查询排序查询 在SELECT语句中使用ORDER BY子句可以对查询结果按照一个或多个列的升序(ASC)或降序(DESC)排列,默认是升序。该子句的格式为:ORDER BY ASC|DESC 说明:可以是字段名,也可以是目标列的序号。如上例题中“学号”列的序号为

    38、1,“姓名”列的序号为2,以此类推。100 例例4-374-37 查询“学生成绩”表中成绩在8085分之间的记录,记录按课程号的升序排列,同门课程按成绩的降序排列。Select *From 学生成绩 Where 成绩 Between 80 And 85 Order By 课程号,成绩 Desc 101 若要从满足条件的记录中选出前面的若干记录(用数字或百分比指定),可以在目标列前加上TOP短语,其格式为:TOP 或TOP PERCENT例例4-38 查询“学生信息”表中成入学分数排在前5名的记录。Select Top 5 *From 学生信息 Order By 入学分数 Desc102103在

    39、SELECT语句中使用GROUP BY子句可以对查询结果按照某字段的值分组。该子句的格式为:GROUP BY HAVING 说明:分组查询通常与SQL聚合函数一起使用,先按指定的字段分组,再对各组进行合并,如计数、求和,求平均值等。如果未分组,则聚合函数将作用于整个查询结果。函数名函数名功能功能参数参数实例实例Count()统计记录个数*Count(*)Count()统计某列非空值个数列名Count(分数分数)Avg()求某列数据(必须是数字型)的平均值字段名Avg(分数分数)Sum()求某列数据(必须是数字型)的总和字段名Sum(学分学分)Min()求某列数据的最小值字段名Min(成绩成绩)

    40、Max()求某列数据的最大值求某列数据的最大值字段名字段名Max(出生日期)(出生日期)104聚合函数例例4-394-39 统计“学生信息”表中学生总人数。分析:“学生信息”表中的学号是唯一的,即一个学号对应一个学生,所以“学生信息”表中的记录个数,就是所要求的学生总数。Select Count(*)As 学生总数 From 学生信息;说明:由聚合函数形成的数据将成为一个新的列,在查询结果中出现,其标题名可以用AS子句指定,也可以不指定,用系统默认的名字。105 例例4-40 4-40 统计各班的学生人数。分析:解决这个问题需要先将“学生信息”表的记录按“班级编号”分组,其次在组内统计记录个数

    41、,即在组内使用COUNT(*)。Select 班级编号,Count(*)As 学生总数 From 学生信息 Group By 班级编号 1064.8.34.8.3 多表查询多表查询 在实际应用中,经常需要同时从两个或两个以上有关联关系的表中提取数据,这就需要将两个或两个以上表的记录通过相关联的字段联接起来进行查询,这种查询称为多表查询。1.Access1.Access表间联接查询的类型表间联接查询的类型 两张或两张以上的表进行联接查询时,根据建立联接的规则不同,会生成不同的查询结果。Access支持2种表间联接方式:107(1)在FORM子句中指定连接条件,其格式为:SELECT FROM I

    42、NNER JOIN|LEFT JOIN|RIGHT JOIN ON.=.108 INNER JOIN内部联接,即查询结果中只包含两个表中都有的记录。LEFT JOIN左联接,即查询结果中包含JOIN子句左边表的所有记录,如果右边表中有相关联的信息,则显示该值,否则返回空值。RIGHT JOIN右联接,即查询结果中包含JOIN关键字右边表中的所有记录,如果左边表中有相关联的信息,则显示该值,否则返回空值。109(2)在WHERE子句指定连接条件,格式为:SELECT FROM,WHERE.=.1102 2两张以上表间的联接查询两张以上表间的联接查询多表进行联接查询时,也可以使用WHERE子句和J

    43、OIN ON子句两种格式实现。格式1:SELECT FROM ,WHERE AND AND 111 格式2:SELECT FROM INNER JOIN|LEFT JOIN|RIGHT JOIN(INNER JOIN|LEFT JOIN|RIGHT JOIN ON.=.)ON.=.WHERE 1124.8.44.8.4 嵌套查询嵌套查询 嵌套查询是将一个SELECT语句包含在另一个SELECT语句的WHERE子句中,嵌套在内层的查询称为子查询。子查询(内层查询)的结果作为建立其父查询(外层查询)的条 件,因此,子查询的结果必须具有确定的值。利用嵌套查询可以将几个简单查询构成一个复杂查询,从而增

    44、强SQL的查询能力。113例例4-514-51 查询“刘刚”同学所修课程的“课程号”及“成绩”。分析:所需信息在“学生信息”表、“学生成绩”表中,已知的是学生“姓名”,要找到“课程号”和“成绩”。方法是先在“学生信息”表中查到“刘刚”的学号,再以找到的学号为依据在“学生成绩”表中查找“课程号”与“成绩”。前者是内层查询,后者是外层查询。114 Select 学号,课程号,成绩 From 学生成绩 Where 学号=(Select 学号 From 学生信息 Where 姓名=刘刚)该命令的执行过程是:先执行子查询,从“学生信息”表中找出“刘刚”的学号,然后执行外层查询,在“学生成绩表”中找出学号

    45、值等于子查询结果的记录,并提取这些记录的“课程号”及“成绩”字段值。1154.8.54.8.5 合并查询合并查询 在SQL中,可以将两个SELECT语句的查询结果通过并运算(UNION)合并为一个查询结果。进行合并查询时,要求两个查询结果具有相同的字段数,并且对应字段的数据类型也必须相同。例例4-54 4-54 查询1990年以前出生和1995年以后出生的学生信息。Select 学号,姓名,性别,出生日期 From 学生信息 Where Year(出生日期)1995 1164.8.64.8.6 其他其他SQLSQL命令命令1 1数据定义语言数据定义语言(DDL)(DDL)使用SQL语言的CRE

    46、ATE、ALTER和DROP命令可以实现数据的定义功能,包括表的定义、修改和删除等。(1)定义表使用CREATE TABLE语句定义表,格式为:CREATE TABLE ()NOT NULL PRIMARY KEY|UNIQUE ,()NOT NULL PRIMARY KEY|UNIQUE ,)117(2)修改表 使用SQL语言中的ALTER TABLE语句可以修改表的结构。修改字段类型及大小。ALTER TABLE ALTER ()说明:使用该命令不能修改字段名。添加字段。ALTER TABLE ADD ()删除字段。ALTER TABLE DROP 118(3)删除表 说明:删除表后,在表

    47、上定义的索引也一起被删除。1192 2数据操纵语言数据操纵语言使用SQL语言的INSERT、UPDATE、DELETE命令可以实现数据更新功能,包括插入记录、更新记录和删除记录。(1)插入记录INSERT INTO (,)VALUES(,)120(2)更新记录 UPDATE SET=,=,WHERE 说明:如果不带WHERE子句,则更新表中所有的记录。如果带WHERE子句,则只更新表中满足条件的记录。121(3)删除记录 DELETE FROM WHERE 说明:如果不带WHERE子句,则删除表中所有的记录(表结构仍然存在),如果带有WHERE子句,则只删除表中满足条件的记录。122小结 查询

    48、是关系型数据库应用中的一个重要部分,为了适应数据存储模式的优化,所建立的数据表必然是有限的,但查询可以提供有限表上的无限应用。本章的重点有两个:第一,实现查询的工具;第二,查询可以完成的功能。在Access2010中创建、修改查询的工具有3种,一是查询向导;二是查询设计器;三是SQL语言。这3种工具,从本质上讲是一致的,可它们各有特长与不足:查询向导的操作简单易学,不足是能完成的查询功能比较少;查询设计可以完成复杂的查询功能,具有大量的图形界面,使得操作直观,不足之处是操作步骤繁琐;SQL语言查询操作快速直接,不足之处是要求用户深入掌握SQL语言的语法及功能。Access2010 数据库应用教程123

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Access数据库技术与应用第4章查询课件.pptx
    链接地址:https://www.163wenku.com/p-3622349.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库