【文档说明】Access数据库应用教程-第3章--应用系统的数据重组——查询课件.pptx,共(50)页,196.096 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-2583.html
以下为本文档部分文字说明:
第3章应用系统的数据重组——查询——《数据库应用教程》3.1查询简介查询是关系数据库中的一个重要概念,通过查询可以对数据库中的数据进行添加、修改、删除、更新、筛选、汇总及各种计算。查询的结果虽然也是一个数据记录的集合(操作查询除外),但是这个记录集并不真正存在于数据库中,而是每次打开查询
时才临时生成,以使得查询中的数据始终与源表中的数据保持一致。查询的用途①利用查询可以使用户的注意力集中在自己感兴趣的数据上,而将当前不需要的数据排除在外。②通过查询可以浏览表中的数据,分析数据或修改数据。③将经常处理的原始数据或统计计算定义为查询,可大大简化处理工作。用户
不必每次都在原始数据上进行检索,从而提高了整个数据库的性能。④查询的结果可以用于生成新的基本表,可以用来进行新的查询,还可以为窗体、报表提供数据。查询的类型选择查询交叉表查询操作查询参数查询SQL查询查询的视图数据表视图设计视图SQL视图数据透视表视
图数据透视图视图创建查询的方法查询向导查询的设计视图利用向导创建查询一些简单的查询可以直接用向导创建,常用的查询向导有:简单查询向导交叉表查询向导查找重复项查询向导查找不匹配项查询向导查询条件在Access2010中,查
询条件也称为表达式,是运算符、常数、函数和字段名称、控件和属性的任意组合,计算结果为单个值。在查询条件中使用运算符算术运算符关系运算符逻辑运算符字符运算符算术运算符Access中可以使用七个算术运算符
:+-*/\Mod^关系运算符Access可以使用6个关系运算符,包括><>=<==<>逻辑运算符逻辑运算符也成为布尔运算符,包括AndOrNotEqvXor连接运算符
Access中可使用“&”和“+”这两个连接运算符,其作用是将两个文本值组合成为一个文本值。“ab”&“cd”的结果是得到字符串“abcd”特殊运算符Between…AndLikeInIsNullIsNotNull在查询条件中使用函数字符函数日期/时间函数统计函数等
等字符函数字符函数功能Left(字符表达式,数值表达式)返回从字符表达式左侧第1个字符开始长度为数值表达式值的字符串Right(字符表达式,数值表达式)返回从字符表达式右侧第1个字符开始长度为数值表达式值
的字符串Len(字符表达式)返回字符表达式的字符个数Mid(字符表达式,数值表达式1[,数值表达式2])返回从字符表达式中数值表达式1的值开始为初始位置,长度为数值表达式2的值的字符串。数值表达式2可以省略,若省略则表示从数值表达式1的值开始直到最后一个字符为
止日期/时间函数日期/时间函数功能Day(date)返回给定日期1~31的值,表示给定日期是一个月中的哪一天Month(date)返回给定日期1~12的值,表示给定日期是一年中的哪个月Year(date)返回给定日期100~9999的值,表示给定日期是哪一年Wee
kday(date)返回给定日期1~7的值,表示给定日期是一周中的哪一天Hour(date)返回给定小时0~23的值,表示给定时间是一天中的哪个钟点Date()返回当前的系统日期统计函数统计函数功能Sum(表达式)返回表达式中值的
总和。字符表达式可以是一个字段名或包含字段名的表达式Avg(表达式)返回字符表达式中值的平均值。字符表达式可以是一个字段名或包含字段名的表达式,但所含字段应该是数字数据类型的字段选择查询在设计视图中创建在查询中进行计算预定义计算自定义计算参数
查询为了方便用户随时输入新的查询条件,Access提供了参数查询,这种灵活的查询方式,是利用对话框提示用户输入参数并检索符合输入参数的记录或值。交叉表查询使用交叉表查询可以计算并重新组织数据的结构,这样可以更加方便地分析数据。交叉表查询计算数据的总计、平均值、计数或其
他类型的总和,这种数据可分为两组信息:一类在数据表左侧排列,另一类在数据表的顶端。操作查询在数据库应用中,经常需要大量地修改数据,例如在“学生管理系统”中,当学生毕业时,需要把毕业生信息追加到“已毕业学生信息表”中,并且将这些信息从“在校学生信息
表”中删除。根据功能的不同,操作查询分为生成表查询、更新查询、追加查询和删除查询。生成表查询生成表查询利用一个或多个表中的全部或部分数据创建新表。创建生成表查询时,关键是要在查询设计视图中设计好将要生成表的字段和条件。追加查询追加查询可将查询的结果追加到其他表(可以有数据,也可以是空白表)
中,追加的数据用查询条件加以限制。更新查询更新查询可以对数据表中已有记录的字段值进行全部或部分的更新。删除查询删除查询就是用来从数据表中有规律地成批删除一些记录的。需要注意的是,设计删除查询时要指定相应的删除条件,否则会删除数据表中的全部数据。而且使用删
除查询,将删除整个记录,而不是只删除记录中所选的字段。SQL查询在使用数据库的过程中经常会遇到一种情况,就是一些查询需求使用查询向导和设计器都无法完成,此时就要使用SQL查询了。什么是SQLSQL是StructuredQueryL
anguage(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在
几乎所有的数据库均支持SQL。SQL语言SQL语言强大,但是关键词只有9个,包括SELECT、INSERT、UPDATE、DELETE、CREATE、DROP、ALTER、GRANT、REVOKE等。数据查询语句SELECT的应用SELECT语句是SQL的核心语句,它从数据库中检索
数据,并将查询结果提供给用户。其完整语法如下([]表示可选项):SELECT目标表的列名或列表达式集合FROM基本表或(和)视图集合[WHERE条件表达式][GROUPBY列名集合[HAVING组条件表达式]][ORDERBY列名[集合]…];SQL举例【例3
.14】查询党员学生的记录,显示“学号”、“姓名”、“出生日期”和“班级”4个字段,并且查询结果按照“出生日期”升序排序,用SQL语句实现如下:SELECT学号,姓名,出生日期,班级FROM学生信息表;WHERE政治面貌="党员"OrderBy出生日期asc;SQL举例【例3.15】查
询没有选课的学生,显示“学号”、“姓名”、“出生日期”和“班级”4个字段,并且查询结果按照“出生日期”升序排序,用SQL语句实现如下:SELECT学号,姓名,出生日期,班级FROM学生信息表where学号notin(SELECT
学号FROM学生选课表)SQL举例【例3.16】查询教师人数多于5人的职称,显示“职称”和“人数”两个字段,用SQL语句实现如下:SELECT职称,count([教师编号])as人数FROM教师信息表GROUPBY职称HAVINGcount([教师编号
])>5;数据更新语句INSERT、UPDATE、DELETE等的应用(1)INSERT语句。INSERT语句的功能是将一条或多条记录添加到表中,具有两种形式。①插入一条记录:②插入多条记录:数据更新语
句INSERT、UPDATE、DELETE等的应用(1)INSERT语句。①插入一条记录:INSERTINTO表名[(列名,列名……)]VALUES(常量1,常量2……);【例3.17】向课程信息表中插入一个新的课程记录(课程编号:70
3010501X;售书数量:10;售书日期:2010-10-1;售货员:002):INSERTINTO课程信息表(课程编号,课程名称,学分,课程类别,学时)VALUES("c030","数据库应用技术",3,"公共课",30);数据更新语句INSERT、
UPDATE、DELETE等的应用(1)INSERT语句。②插入多条记录:INSERTINTO表名[(列名,列名……)]子查询;【例3.18】将类别是公共课的课程追加到已经提前建立的“大一学生选课课程表”中:INSERTINTO大一学
生选课课程表(课程编号,课程名称,课程类别,学时)SELECT课程编号,课程名称,课程类别,学时FROM课程信息表WHERE课程类别="公共课";数据更新语句INSERT、UPDATE、DELETE等的应用(2)UPDATE。UPDATE
语句的功能是修改表中的记录,其基本格式为:UPDATE表名SET列名=表达式,[列名=表达式]……WHERE条件表达式;【例3.19】将学院信息表中的“文学院”改名为“人文学院”。UPDATE学院信息表SET学院
名称="文学院"WHERE.学院名称="人文学院";【例3.20】假如学生信息表中有一个“年龄”字段,可以用UPDATE语句实现每年将年龄更新。UPDATE学生信息表SET年龄=[年龄]+1数据
更新语句INSERT、UPDATE、DELETE等的应用(3)DELETE。DELETE语句的功能是删除表中的记录,其基本格式为:DELETEFROM表名WHERE条件表达式;【例3.21】删除学生信息表中所有2009年以前入学的学生记录。DELE
TEFROM学生信息表WHERE入学日期<#2009-1-1#;数据表操作语句的应用数据表的操作主要通过Create、Alter(修改)和Drop(删除)等语句实现。(1)CreateTable语句。CreateTable语句
的作用是创建数据表。【例3.22】创建一张课程表,包含课程编号、课程名称、学时字段。CreateTable课程([课程编号]char(4)PrimaryKey,[课程名称]string,[学时]integer);数据表操作语句的应用(2)AlterTable语句。AlterTab
le语句用来往表中添加、修改、删除字段。【例3.23】在刚刚创建的课程表中添加学分字段。AlterTable课程Add学分integer数据表操作语句的应用(3)DropTable语句。当某张表不需要时,可以用DropTable语句删除
。【例3.24】把刚刚创建的课程表删除。DropTable课程SQL特定查询在Access中,某些SQL查询不能在查询对象的设计网格中创建,这些查询称为SQL特定查询。包括联合查询、传递查询、数据定义查询和子查询。联合查询联合查询将两个或更多
个表或查询中的字段合并到查询结果的一个字段中。使用联合查询可以合并两个表中的数据。联合查询使用的关键字为UNION。【例3.25】查询图书名称和价格,其中2002年以前的书其价格为定价*0.8,其他图书的价格为定价:SELECT教师编号,姓名
,职称FROM教师信息表UNIONSELECT学号,姓名,政治面貌FROM学生信息表;传递查询传递查询使用服务器能接受的命令直接将命令发送到ODBC数据库,如MicrosoftSQLServer。例如,可以使用传递查询来检索记录或更改数据。使用传递查询可以不必连接到
服务器上的表而直接使用它们。传递查询对于在ODBC服务器上运行存储过程也很有用。数据定义查询数据定义查询可以创建、删除或改变表,也可以在数据库表中创建索引。【例3.26】使用CREATETABLE语句创建名为“学生”的表。CREATETABLE学生([学生编号]char(10),
[姓名]string,[出生日期]date,[电话]text,[邮箱]string,PRIMARYKEY([学生编号]));子查询子查询由另一个选择查询或操作查询之内的SQLSELECT语句组成。可以在查询设计网格的“字段”行输
入这些语句来定义新字段,或在“条件”行来定义字段的条件。【例3.27】查询和“会计学”学分相等的课程记录,显示“课程编号,课程名称,学分,课程类别”、“学时”5个字段。其SELECT语句为:SELECT课程信息表.课程编号,课程信息表.课程名称,课程信息表.学分,课程
信息表.课程类别,课程信息表.学时FROM课程信息表WHERE(((课程信息表.学分)=(select学分from课程信息表where课程名称="会计学")));子查询该查询可以用设计视图实现,即在“学分”所在列的“条件”行中输入的是一条SQL语句“(select学分from课
程信息表where课程名称="会计学")”,如图。本章小结查询实际上就是将分散存储在数据表中的数据按一定的条件重新组织起来,形成一个动态的数据记录集合,而这个记录集在数据库中并没有真正存在,只是在查询运行时从查询源表的数据中抽取创建,数据库中只是保存查询的方式。当关闭查询时,动态数据
集会自动消失。本章小结Access支持5种查询方式:选择查询交叉表查询操作查询参数查询SQL查询。本章小结使用查询向导来创建选择查询和交叉表查询方便快捷,但是缺乏灵活性。查询的设计视图可以实现复杂条件和需求的查询设计,是本章学习和掌握的重点。