1、1 3 24 6 52 查询查询实际上是将分散的数据按一定的条件重新实际上是将分散的数据按一定的条件重新组织起来,形成一个动态的数据记录集合,而这个记组织起来,形成一个动态的数据记录集合,而这个记录集在数据库中并没有真正的存在,只是在查询运行录集在数据库中并没有真正的存在,只是在查询运行时从查询源表的数据中提取并创建,数据库中只是保时从查询源表的数据中提取并创建,数据库中只是保存查询的方式。当关闭查询时,动态数据集合会自动存查询的方式。当关闭查询时,动态数据集合会自动消失。消失。将将数据保存到数据表以后,就可以对数据进行分数据保存到数据表以后,就可以对数据进行分析和处理,查询功能就是用来完成对
2、数据进行提取、析和处理,查询功能就是用来完成对数据进行提取、分析和计算的。分析和计算的。31选择选择数据数据2排序记录排序记录3执行计算执行计算4数据数据更新更新5建立表建立表6作为其他对象的数据源作为其他对象的数据源42.参数查询参数查询 在在执行时会通过显示对话框来提示用户输入信息。例如执行时会通过显示对话框来提示用户输入信息。例如提示输入条件,按输入的条件检索满足条件的记录或数值。提示输入条件,按输入的条件检索满足条件的记录或数值。3交叉表查询交叉表查询 利用利用了表中的行和列来统计数据。了表中的行和列来统计数据。Access有五种类型的查询,分别为:选择查询、参有五种类型的查询,分别为
3、:选择查询、参数查询、交叉表查询、操作查询、数查询、交叉表查询、操作查询、SQL查询。查询。55SQL查询查询 SQL(Structured Query Language,结构化查询,结构化查询语言语言)查询就是使用查询就是使用SQL语句来创建的一种查询。语句来创建的一种查询。6 Access查询查询主要有主要有3个视图,即数据表视个视图,即数据表视图、设计视图和图、设计视图和SQL视图视图。(1)数据表数据表视图用于显示查询的结果数据视图用于显示查询的结果数据。(2)设计设计视图用于对查询设计进行创建和编辑视图用于对查询设计进行创建和编辑。(3)SQL视图用于显示与设计视图等效的视图用于显示
4、与设计视图等效的SQL语句。语句。此外此外,查询还包括数据透视表视图、数据,查询还包括数据透视表视图、数据透视图视图透视图视图。各种各种视图可以通过工具栏上视图可以通过工具栏上“视图视图”按钮按钮进行进行相互切换。相互切换。7 Access提供了多种向导以方便查询的创提供了多种向导以方便查询的创建,对于初学者来说,选择使用向导的帮建,对于初学者来说,选择使用向导的帮助可以快捷地建立所需要的查询。常用的助可以快捷地建立所需要的查询。常用的查询向导有:查询向导有:1.简单查询向导简单查询向导2.交叉表查询向导交叉表查询向导3.查找重复项查询向导查找重复项查询向导4.查找不匹配项查询向导查找不匹配项
5、查询向导8 9 利用利用“查找重复项查找重复项”查询的结果,可以确定查询的结果,可以确定在表中是否有重复的记录,或记录在表中是否共在表中是否有重复的记录,或记录在表中是否共享相同的值。享相同的值。例:例:为为“学生学生”表表创建名为创建名为“男女学生人数男女学生人数”查询查询。10 使用使用“查找不匹配项查询向导查找不匹配项查询向导”可以在一可以在一个表中查找与其另一个表中没有相关记录的记个表中查找与其另一个表中没有相关记录的记录。录。例:使用教师表和开课教师表创建例:使用教师表和开课教师表创建“没有开没有开设课程教师设课程教师”的查询的查询。查询结果中显示教师编查询结果中显示教师编号、姓名、
6、性别和职称信息号、姓名、性别和职称信息。11 交叉交叉表查询以表查询以水平方式和垂直方式水平方式和垂直方式对记录进行对记录进行分组,并计算和重构数据,可以简化数据分析分组,并计算和重构数据,可以简化数据分析。交叉交叉表查询可以计算数据总和、计数、平均值表查询可以计算数据总和、计数、平均值或完成其他类型的综合计算。或完成其他类型的综合计算。121准则中的运算符准则中的运算符 查询准则是指在查询中用来限制检索记录的条件表达查询准则是指在查询中用来限制检索记录的条件表达式,使用查询准则可以使查询结果中仅包含满足相应式,使用查询准则可以使查询结果中仅包含满足相应限制条件的数据记录。它是算术运算符、逻辑
7、运算符、限制条件的数据记录。它是算术运算符、逻辑运算符、常量、字段值和函数等的组合。通过查询准则可以过常量、字段值和函数等的组合。通过查询准则可以过滤掉不需要的数据。滤掉不需要的数据。13运算符运算符含义含义运算符运算符含义含义+加加*乘乘-减减/除除 整除整除 乘方乘方modmod求余求余 例:例:7/3=2.3333 73=2 7 mod 3=1 23=814写出下列写出下列算术表达式算术表达式1.查询任意一个三位数查询任意一个三位数x的百位数的百位数a、十位数、十位数b和个位数和个位数c。X=a*100+b*10+c2.如果一个三位数是它的个位数的立方加上如果一个三位数是它的个位数的立方
8、加上十位数的立方加上百位数的立方,则这个数十位数的立方加上百位数的立方,则这个数就是水仙花数。就是水仙花数。X=a3+b3+c315 运算符运算符含义含义运算符运算符含义含义 大于大于=大于等于大于等于不等于不等于=#1994-5-23#成绩成绩=0 AND 成绩成绩=100性别性别=“男男”OR 性别性别=“女女”专业专业=“会计会计”AND 性别性别=”女女”16 运算符运算符说明说明Not当当Not连接的表达式为真时,整个表达式为假连接的表达式为真时,整个表达式为假And当当And连接的表达式都为真时,整个表达式为真,连接的表达式都为真时,整个表达式为真,否则为假否则为假Or当当Or连接
9、的表达式有一个为真时,整个表达式为连接的表达式有一个为真时,整个表达式为真,否则为假真,否则为假17 18 1920函数的一般格式:函数的一般格式:函数名(函数名(参数参数1,参数,参数2)函数分为:函数分为:数值函数、字符函数、日期数值函数、字符函数、日期/时间函数、时间函数、统计函数统计函数21函数说明Abs(数值表达式)返回数值表达式值的绝对值Int(数值表达式)返回数值表达式值的整数部分Sqr(数值表达式)返回数值表达式值的算术平方根Sgn(数值表达式)返回数值表达式值的符号值,当表达式的值为正、负和零时,函数值分别为1、-1和0Fix(数值表达式)返回数值表达式值的整数部分,去掉小数
10、部分Int(数值表达式)返回不大于数值表达式值的最大整数Rnd(数值表达式)返回一个0至1之间的随机数Round(数值表达式,n)对数值表达式求值并四舍五入保留n位小数22函数函数说明说明Space(n)返回由返回由n个空格组成的字符串。个空格组成的字符串。String(n,字符表达式字符表达式)返回返回“字符表达式字符表达式”的第一个字符组成的字符串,字符个数是的第一个字符组成的字符串,字符个数是n个。个。Left(字符表达式字符表达式,n)从字符表达式左边第一个字符开始截取从字符表达式左边第一个字符开始截取n个字符个字符Right(字符表达式字符表达式,n)从字符表达式右边第一个字符开始截
11、取从字符表达式右边第一个字符开始截取n个字符个字符Mid(字符表达式字符表达式,n1,n2)从字符表达式左边第从字符表达式左边第nl位置开始,截取连续位置开始,截取连续n2个字符;省略个字符;省略n2,则,则从从nl位置开始截取以后的所有字符串位置开始截取以后的所有字符串Len(字符表达式字符表达式)返回字符串的长度返回字符串的长度Ltrim(字符表达式字符表达式)去掉字符表达式前导空格后的字符串去掉字符表达式前导空格后的字符串Rtrim(字符表达式字符表达式)去掉字符表达式尾部空格后的字符串去掉字符表达式尾部空格后的字符串Trim(字符表达式字符表达式)去掉字符表达式前导和尾部空格后的字符串
12、去掉字符表达式前导和尾部空格后的字符串Asc(字符表达式字符表达式)返回字符表达式首字符的返回字符表达式首字符的ASCII码值码值Chr(字符的字符的ASCII码值码值)将将ASCII码值转换为字符码值转换为字符InStr(字符表达式字符表达式1,字符表达式字符表达式2)返回字符表达式返回字符表达式2在字符表达式在字符表达式1中的位置中的位置Ucase(字符表达式字符表达式)将字符串中的小写字母转换为大写字母将字符串中的小写字母转换为大写字母Lcase(字符表达式字符表达式)将字符串中的大写字母转换为小写字母将字符串中的大写字母转换为小写字母23例例:字符字符函数的函数的用法用法String(
13、4,a)结果结果是:是:aaaaLeft(计算机等级考试计算机等级考试,3)结果是:结果是:计算机计算机Right(计算机等级考试计算机等级考试,2)结果结果是:是:考试考试Mid(计算机等级考试计算机等级考试,4,2)结果结果是:是:等级等级Len(计算机等级考试计算机等级考试)结果结果是:是:7Len(姓名姓名)=2 查询查询姓名为两个字的姓名为两个字的记录记录left(姓名姓名,1)=“王王”查询姓王的记录查询姓王的记录Asc(A)结果结果是:是:65Chr(65)结果结果是:是:AInStr(计算机计算机abc,a)结果是:结果是:4InStr(计算机计算机abc,d)结果结果是:是:
14、0 243.日期时间函数日期时间函数函数函数说明说明Now()返回系统当前的日期时间返回系统当前的日期时间Date()返回系统当前日期返回系统当前日期Time()返回系统当前的时间返回系统当前的时间Year(date)返回日期中的年份,范围从返回日期中的年份,范围从1009999Month(date)返回日期中的月份,范围从返回日期中的月份,范围从112Day(date)返回日期中的日,范围从返回日期中的日,范围从131Weekday(date)返回日期中的星期,从星期日到星期六的值返回日期中的星期,从星期日到星期六的值分别是分别是17Hour(date)返回时间中的小时值,范围从返回时间中的
15、小时值,范围从123Minute(date)返回时间中的分钟返回时间中的分钟Second(date)返回时间中的秒返回时间中的秒DateSerial(year,month,day)返回指定的日期返回指定的日期3.日期时间函数日期时间函数25例例:日期日期时间函数的用法时间函数的用法Between#1998-1-1#and#1998-12-31#或或Year(出生日期出生日期)=1998 查询查询1998年出生的年出生的记录记录=3 And Month(出生日期出生日期)=90,优秀优秀,IIf(成绩成绩=60,合格合格,不及格不及格)38例例:以以“学生学生”表为数据源,创建一个选择查询,表为
16、数据源,创建一个选择查询,统计出一共有多少会计专业的学生。统计出一共有多少会计专业的学生。39 40例:在已经建立例:在已经建立的的“学生的考试成绩学生的考试成绩”的基础上,建立学生的的基础上,建立学生的考试成绩交叉表查询考试成绩交叉表查询。4142查询结果如下:查询结果如下:43例例:在在“学生的考试成绩学生的考试成绩”的基础上,用设计视图建的基础上,用设计视图建立学生的考试成绩交叉表查询立学生的考试成绩交叉表查询。44Access提供了参数查询。参数查询是动态的,它利提供了参数查询。参数查询是动态的,它利用对话框提示用户输入参数并检索符合所输入参数的用对话框提示用户输入参数并检索符合所输入
17、参数的记录或值。记录或值。根据查询中参数的数据的不同,参数查询可以分为单根据查询中参数的数据的不同,参数查询可以分为单参数查询和多参数查询两类。参数查询和多参数查询两类。45例例:创建创建单参数查询,根据用户输入的教师编号查询教师的相关单参数查询,根据用户输入的教师编号查询教师的相关信息。运行查询时,显示提示信息信息。运行查询时,显示提示信息“请输入教师编号:请输入教师编号:”。设计视图设计视图运行时,弹运行时,弹出出“输入参输入参数值数值”对话框,输入参对话框,输入参数值,得到查询结果。数值,得到查询结果。46是通过输入多个条件来检索指定记录是通过输入多个条件来检索指定记录根据根据用户输入的
18、成绩区间,查询满足条用户输入的成绩区间,查询满足条件的学生成绩信息。件的学生成绩信息。多参数查询多参数查询 设计视图设计视图运行时,弹出多个运行时,弹出多个“输入参数值输入参数值”对对话框,输入参数值,话框,输入参数值,得到查询结果。得到查询结果。47Access中包括中包括4种类型的操作查询。种类型的操作查询。生成表查询生成表查询:创建创建新表。新表。删除查询删除查询:从现有表中删除记录。从现有表中删除记录。更新查询更新查询:替换现有数据。替换现有数据。追加查询追加查询:在现有表中添加新记录在现有表中添加新记录。48 由于由于操作查询将改变数据表的内容,并且这种改变是不可以操作查询将改变数据
19、表的内容,并且这种改变是不可以恢复的,所以某些错误的操作查询可能会造成数据表中数据的丢恢复的,所以某些错误的操作查询可能会造成数据表中数据的丢失。因此,用户在进行操作查询之前,应该先对数据表进行备份。失。因此,用户在进行操作查询之前,应该先对数据表进行备份。创建创建表的备份的具体操作步骤如下:表的备份的具体操作步骤如下:(1)单击导航窗格中的表,单击)单击导航窗格中的表,单击“开始开始”选项卡中选项卡中“复制复制”按钮。按钮。(2)单击)单击“开始开始”选项卡中选项卡中“粘贴粘贴”按钮按钮,弹,弹出出“粘贴表方粘贴表方式式”对话框对话框。49。将将“教学管理系统教学管理系统”数据库有不及格的学
20、数据库有不及格的学生记录保存到新的表中。要求显示生记录保存到新的表中。要求显示“学号学号”、“姓名姓名”、“专专业业”、“课程名称课程名称”和和“成绩成绩”5个字段。个字段。生成表查询就是利用一个或多个表中的全部或部分数据创建新表,生成表查询就是利用一个或多个表中的全部或部分数据创建新表,如果将查询结果保存在已有的表中,则该表中原有的内容将被删除。如果将查询结果保存在已有的表中,则该表中原有的内容将被删除。命令命令50删除查询可以从一个或多个表中删除一组记录,删除查询将删除查询可以从一个或多个表中删除一组记录,删除查询将删除整个记录,而不只是记录中的所选字段。删除整个记录,而不只是记录中的所选
21、字段。51删除删除“学生学生”表中会计专业的学生记录表中会计专业的学生记录。5253例:例:创建。创建。将姓将姓“王王”的学生的高等数学成绩的增加的学生的高等数学成绩的增加5分分。更新查询是对一个或多个表中的记录全部更新更新查询是对一个或多个表中的记录全部更新。更新更新查询命令查询命令54 例:例:创建创建追加查询。将追加查询。将“学生学生”表中的会计专业学生记录追表中的会计专业学生记录追加到一个结构类似、内容为空的表中加到一个结构类似、内容为空的表中。(1)创建)创建“学生学生”表结构表结构的副本。的副本。(2)在设计视图中创建在设计视图中创建查询。查询。55(3)单击单击“设计设计”选项卡
22、选项卡“查询类型查询类型”组中组中“追加追加”按钮,弹出按钮,弹出“追加追加”对话框对话框(4)回到)回到设计视图,删除设计视图,删除“专业专业”字段下字段下“追加到追加到”行中的内容行中的内容(5)运行查询。在)运行查询。在“会计专业学生会计专业学生”表中可以看到追表中可以看到追加结果。加结果。56图图3.49 追加查询预览结果追加查询预览结果 图图3.50“追加查询追加查询”提示对话框提示对话框 57在在Access中,不是所有的查询都可以在系统提供的中,不是所有的查询都可以在系统提供的“查询设计视图查询设计视图”中进行,有的查询只能通过中进行,有的查询只能通过SQL语语句实现句实现。结构
23、化结构化查询语言查询语言(Structured Query Language,简称简称SQL)是关系数据库的标准语言是关系数据库的标准语言。SQL语言作为语言作为一种通用的数据库操作语言,并不是一种通用的数据库操作语言,并不是Access用户必用户必须要掌握的,但实际工作中有时必须用到这种语言才须要掌握的,但实际工作中有时必须用到这种语言才能完成一些复杂的查询工作。能完成一些复杂的查询工作。58SQL其其主要特点如下:主要特点如下:(1)SQL类似于英语自然语言,简单易学类似于英语自然语言,简单易学。(2)SQL是一种非过程语言。是一种非过程语言。(3)SQL是一种面向集合的语言。是一种面向集
24、合的语言。(4)SQL既可独立使用,又可嵌入到宿主语言中使用。既可独立使用,又可嵌入到宿主语言中使用。(5)SQL具有查询、操纵、定义和控制一体化功能具有查询、操纵、定义和控制一体化功能。SQL语言具有以下语言具有以下功能功能:(1)数据定义)数据定义DDL。数据。数据定义语句包括定义语句包括CREATE(建立建立),DROP(删除),(删除),ALTER(修改)。(修改)。(2)数据操纵)数据操纵DML。数据。数据操纵语句包括操纵语句包括INSERT(插入),(插入),DELETE(删除),(删除),UPDATE(修改)。(修改)。(3)数据查询)数据查询DQL。数据。数据查询语句包括查询语
25、句包括SELECT(选择)。(选择)。(4)数据控制)数据控制DCL。数据。数据控制语句包括控制语句包括GRANT(授权),(授权),REVOTE(回收权限)。(回收权限)。59SQL有两种使用方式。有两种使用方式。(1)联机交互方式。在数据库管理系统提供的命令窗口中)联机交互方式。在数据库管理系统提供的命令窗口中输入输入SQL命令,交互地进行数据库操作。命令,交互地进行数据库操作。(2)嵌入式。在高级语言(如)嵌入式。在高级语言(如Fortran、Cobol、C、VB等)等)编写的程序中嵌入编写的程序中嵌入SQL语句,完成对数据库的操作语句,完成对数据库的操作。在在Access中,所有通过查
26、询设计器设计出的查询,系统中,所有通过查询设计器设计出的查询,系统在后台都自动生成了相应的在后台都自动生成了相应的SQL语句。用户可在查询的语句。用户可在查询的SQL视图中看到相关的查询命令。在建立一个比较复杂的查询时,视图中看到相关的查询命令。在建立一个比较复杂的查询时,通常是先在查询设计视图中将基本的查询功能都实现了,最通常是先在查询设计视图中将基本的查询功能都实现了,最后再切换到后再切换到SQL视图通过编写视图通过编写SQL语句完成一些特殊的查询。语句完成一些特殊的查询。60例例:将已经将已经建立的建立的“通过四级的女生通过四级的女生”查询中的准则改为查询中的准则改为“通通过四级的男生过
27、四级的男生”。设计视图设计视图单击功能区上的单击功能区上的“视图视图”按钮下侧的向下箭头按钮,从下拉按钮下侧的向下箭头按钮,从下拉列表中选择列表中选择“SQL视图视图”选项,打开选项,打开SQL视图。视图。将将=女女改为改为=男男“完成修改。完成修改。61 626364数据类型数据类型含义含义数据类型数据类型含义含义texttext或或charchar文本文本imageimageOLE对象对象IntegerInteger或或intint整型整型Single或或real单精度型单精度型doubledouble或或floatfloat双精度型双精度型Date、time或或datetime日期型日期
28、型stringstring字符型字符型LogicalLogical或或bitbit是是/否型否型CurrencyCurrency或或money money 货币型货币型memomemo备注型备注型6566676869例例:为为“工资工资”表按表按“工资工资”字段建立一个降序索引字段建立一个降序索引GZ。SQL语句如下:语句如下:CREATE INDEX GZ ON 工资工资(工资工资 DESC)例例:为为“职工职工”表按表按“性别性别”和和“出生日期出生日期”字段建字段建立一个多字段索引立一个多字段索引XBCSRQ。SQL语句如下:语句如下:CREATE INDEX XBCSRQ ON 职工职
29、工(性别性别,出生日期出生日期 ASC)7071例例3.28 删除删除“工资备份工资备份”表。表。操作步骤如下:操作步骤如下:(1)为)为“工资工资”表建立一个备份,命名为表建立一个备份,命名为“工资备工资备份份”表。表。(2)打开数据定义)打开数据定义“查询查询”窗口。窗口。(3)输入删除表的)输入删除表的SQL语句:语句:DROP TABLE 工资备份工资备份(4)单击功能区上的运行按钮)单击功能区上的运行按钮“!”,执行,执行SQL语语句,完成删除表的操作,则句,完成删除表的操作,则“工资备份工资备份”表将从表将从“职职工管理工管理”数据库操作窗口消失。数据库操作窗口消失。7273例例:
30、“职工职工”表增加一个表增加一个“电话号码电话号码”字段。字段。ALTER TABLE 职工职工 ADD 电话号码电话号码 Char(8)执行执行SQL语句,完成修改表的操作,为语句,完成修改表的操作,为“职工职工”表表增加一个增加一个“电话号码电话号码”字段字段。例例:删除删除“职工职工”表的表的“电话号码电话号码”字段。字段。ALTER TABLE 职工职工 DROP 电话号码电话号码例例:将将“职工职工”表的表的“姓名姓名”字段的宽度改为字段的宽度改为6。ALTER TABLE 职工职工 ALTER 姓名姓名 TEXT(6)74 751插入数据插入数据是指在数据表的尾部添加一条记录。插入
31、数据是指在数据表的尾部添加一条记录。格式:格式:INSERT INTO 表名表名()VALUES()功能:在指定的数据表的尾部添加一条新记录。功能:在指定的数据表的尾部添加一条新记录。例例 在职工表尾部添加一条新记录。操作步骤如下:在职工表尾部添加一条新记录。操作步骤如下:INSERT INTO 职工职工(职工号职工号,姓名姓名,性别性别,出生日期出生日期,婚婚否否)VALUES(1001,张明张明,男男,#1965-03-09#,yes)例例:在职工表尾部插入第二条记录,在职工表尾部插入第二条记录,SQL语句语句如下:如下:INSERT INTO 职工职工 VALUES(1002,王芳王芳,
32、女女,#1972-07-21#,no)76772更新数据783删除数据 例例:将将“职工职工”表中女职工的记录删除表中女职工的记录删除。DELETE FROM 职工职工 WHERE 性别性别=女女798081例例 查询学生表的全部字段。操作步骤如下:查询学生表的全部字段。操作步骤如下:(1)在教学管理系统数据库窗口中选定在教学管理系统数据库窗口中选定“查询查询”对象。对象。(2)双击在双击在“设计视图中创建查询设计视图中创建查询”,关闭弹出的,关闭弹出的“显显示表示表”对话框,打开查询设计视图窗口。对话框,打开查询设计视图窗口。(3)选择选择“视图视图”菜单中菜单中“SQL视图视图”命令,打开
33、命令,打开“选选择查询择查询”窗口。窗口。(4)在窗口中输入在窗口中输入SQL语句语句SELECT*FROM 学生学生(5)在数据表视图中查看查询结果。保存查询,查询建在数据表视图中查看查询结果。保存查询,查询建立完毕。立完毕。(6)在设计视图中,单击工具栏上运行按钮在设计视图中,单击工具栏上运行按钮“!”,屏,屏幕显示运行查询的结果幕显示运行查询的结果 例例:在学生表中查询学号、姓名字段。在学生表中查询学号、姓名字段。SELECT 学号学号,姓名姓名 FROM 学生学生例例:查询查询学生数据表的全部学生的姓名和年龄,去学生数据表的全部学生的姓名和年龄,去掉重名。掉重名。SELECT DIST
34、INCT 姓名姓名,YEAR(DATE()-YEAR(出生日期出生日期)AS 年龄年龄 FROM 学生学生82例例:查询查询学生数据表学号为学生数据表学号为0901001和和0902001的记录。的记录。SELECT*FROM 学生学生 WHERE 学号学号 IN(09010001,09020001)例例:查询成绩表中成绩在查询成绩表中成绩在7090之间学生记录。之间学生记录。SELECT*FROM 成绩成绩 WHERE 成绩成绩 BETWEEN 70 AND 90例例:查询查询学生表中姓学生表中姓“王王”的男学生的记录。的男学生的记录。SELECT*FROM 学生学生 WHERE 姓名姓名
35、LIKE 王王*AND 性别性别=男男 83842计算查询例:例:在在学生表中统计学生人数。学生表中统计学生人数。SQL语句如下:语句如下:SELECT COUNT(*)As 学生人数学生人数 FROM 学生学生例:例:在学生表中统在学生表中统计会计专业学生计会计专业学生人数。人数。SELECT COUNT(*)As 会计专业学生人数会计专业学生人数 FROM 学生学生 WHERE 专业专业=“会计会计 853排序与分组计算查询是对整个表的查询,一次查询只能得出一计算查询是对整个表的查询,一次查询只能得出一个计算结果。利用分组计算查询则可以通过一次查询个计算结果。利用分组计算查询则可以通过一次
36、查询获得多个计算结果。分组查询是通过获得多个计算结果。分组查询是通过GROUP BY子子句实现的。句实现的。例:例:统计成绩表中不同课程的成绩字段的最大值和统计成绩表中不同课程的成绩字段的最大值和最小值。最小值。SQL语句如下:语句如下:SELECT 课程号课程号,Max(成绩成绩)AS 最大最大值值,Min(成绩成绩)AS 最小值最小值FROM 成绩成绩GROUP BY 课程号课程号例例:分别分别统计男女学生的人数。统计男女学生的人数。SQL语句如下:语句如下:SELECT 性别性别,Count(性别性别)AS 人数人数 FROM 学生学生 GROUP BY 性别性别例例:按学号升序查询学生
37、表中的记录。按学号升序查询学生表中的记录。SELECT*FROM 学生学生 ORDER BY 学号学号 ASC例例:在在成绩表中统计有成绩表中统计有4个以上学生学生选修的课程个以上学生学生选修的课程。SELECT 课程号课程号,COUNT(*)AS 选课人数选课人数 FROM 成绩成绩GROUP BY 课程号课程号 HAVING COUNT(*)=486874多表查询多表查询在数据查询中,经常涉及提取两个或多个表的数在数据查询中,经常涉及提取两个或多个表的数据,来完成综合数据的检索,因此就用到连接操作据,来完成综合数据的检索,因此就用到连接操作来实现若干个表数据的查询。来实现若干个表数据的查询
38、。SELECT语句提供了语句提供了专门的专门的JOIN子句实现连接查询。子句实现连接查询。语句格式:语句格式:SELECT FROM INNER JOIN ON 说明:说明:INNER JOIN用来连接左右两个用来连接左右两个指定的指定的表,表,ON用来指定连接条件。用来指定连接条件。884多表查询多表查询8990联合查询可以将两个或两个以上的表或查询所对应的多个联合查询可以将两个或两个以上的表或查询所对应的多个字段的记录合并为一个查询表中的记录。执行联合查询时,字段的记录合并为一个查询表中的记录。执行联合查询时,将返回所包含的表或查询中对应字段的记录。创建联合查将返回所包含的表或查询中对应字
39、段的记录。创建联合查询的惟一方法是使用询的惟一方法是使用SQL窗口。窗口。例例:创建联合查询,查询学生成绩大于创建联合查询,查询学生成绩大于80或或小于小于60的学生记录。的学生记录。SELECT*FROM 成绩 WHERE 成绩=80UNIONSELECT*FROM 成绩 WHERE 成绩ANY(SELECT 成绩成绩 FROM 成绩成绩 WHERE 课程号课程号=102)例例:查询选修查询选修“101”课的学生中成绩比选修课的学生中成绩比选修“102”的最高成绩高的学生的学号和成绩。的最高成绩高的学生的学号和成绩。SELECT 学号学号,成绩成绩 FROM 成绩成绩 WHERE 课程号课程
40、号=101 AND 成绩成绩ALL(SELECT 成绩成绩 FROM 成绩成绩 WHERE 课程号课程号=102)94例例:查询查询“学生学生”表中有哪些学生已在表中有哪些学生已在“成绩成绩”表中表中选修了课程。选修了课程。SELECT 学号学号,姓名姓名 FROM 学生学生 WHERE EXISTS(SELECT*FROM 成绩成绩 WHERE 成绩成绩.学号学号=学生学生.学号学号)例例:查询查询“学生学生”表中有哪些学生没有在表中有哪些学生没有在“成绩成绩”表表中选修课程。中选修课程。SQL语句如下:语句如下:SELECT 学号学号,姓名姓名 FROM 学生学生 WHERE NOT EX
41、ISTS(SELECT*FROM 成绩成绩 WHERE 成绩成绩.学号学号=学生学生.学号学号)9596Access的传递查询可直接将命令放送到的传递查询可直接将命令放送到ODBC数据库服数据库服务器,在另一个数据库中执行查询。使用传递查询时,可务器,在另一个数据库中执行查询。使用传递查询时,可以不与服务器的表链接,就可以使用相应的表。使用传递以不与服务器的表链接,就可以使用相应的表。使用传递查询的主要目的是为了减少网络负荷。查询的主要目的是为了减少网络负荷。例:创建传递查询,访问例:创建传递查询,访问SQL Server中名为中名为Student的数据库中的数据库中Stu_Info表的表的S
42、tu_ID、Stu_Name、Stu_Sex、Stu_Age、Stu_Dep等字等字段的值。段的值。97 98 99 100 101102103单击单击“完成完成”按钮完成选择数据源,同时打开按钮完成选择数据源,同时打开“创建创建到到SQL Server的新数据源的新数据源”第第1个对话框,如图所示。个对话框,如图所示。在该对话框中设置数据源的名称和要连接的服务器名称。在该对话框中设置数据源的名称和要连接的服务器名称。在在“名称名称”文本框中输入文本框中输入“数据源数据源”,在,在“服务器服务器”文本文本框中输入数据库服务器名称或框中输入数据库服务器名称或IP地址,这里输入服务器地址,这里输入
43、服务器名称为名称为“LIUGU”。104(11)单击单击“下一步下一步”按钮,打开按钮,打开“创建到创建到SQL Server的新的新数据源数据源”第第2个对话框,如下图所示。个对话框,如下图所示。对话框中各项设置如下:对话框中各项设置如下:105(12)单击单击“下一步下一步”按钮,打开按钮,打开“创建到创建到SQL Server的新数据源的新数据源”第第3个对话框。该对话框设置如个对话框。该对话框设置如下:下:(13)(14)106(15)在对话框中,单击在对话框中,单击“确定确定”按钮,打开按钮,打开“SQL Server登录登录”对话框。在对话框中输入登录对话框。在对话框中输入登录ID和密码,单击和密码,单击“确定确定”按钮,然后在弹出的按钮,然后在弹出的“连接字符串生成器连接字符串生成器”提示框中单击提示框中单击“是是”按钮,完成登录。设置后的按钮,完成登录。设置后的“ODBC连接字符串连接字符串”属属性如图所示。性如图所示。107(16)(17)