《ACCESS数据查询》由会员分享,可在线阅读,更多相关《ACCESS数据查询(68页珍藏版)》请在金锄头文库上搜索。
1、ACCESSACCESS数据查询数据查询4.1查询简查询简述述1.什么是查询什么是查询查询是按照一定的条件或要求对数查询是按照一定的条件或要求对数据库中特定数据信息的查找。据库中特定数据信息的查找。查询可以对一个数据库中的一个表查询可以对一个数据库中的一个表或多个表中存储的数据信息进行查找、或多个表中存储的数据信息进行查找、统计、计算、排序等。统计、计算、排序等。查询的结果可以作为窗体、报表、查询的结果可以作为窗体、报表、数据访问页或另一个查询的数据源。数据访问页或另一个查询的数据源。24.1查询简查询简述述Access的查询有三种视图模式的查询有三种视图模式:设计视图数据表视图SQL视图34
2、.1查询简查询简述述2.Access的查询类型的查询类型Access支持以下支持以下5种类型的查询种类型的查询:选择查询选择查询参数查询参数查询交叉表查询交叉表查询操作查询操作查询SQL查询。查询。44.2使用向使用向导导建立建立查询查询Access提供了多种向导以方便查询的提供了多种向导以方便查询的创建。对于初学者来说,选择使用向导创建。对于初学者来说,选择使用向导的帮助可以快捷地建立所需要的查询。的帮助可以快捷地建立所需要的查询。54.2使用向使用向导导建立建立查询查询1.使用简单查询向导使用简单查询向导例例:在在“教学管理教学管理”数据库中新建教师基本情数据库中新建教师基本情况的查询况的
3、查询双击选择表或查询选择单一字段选择所有字段64.2使用向使用向导导建立建立查询查询2使用交叉表查询向导使用交叉表查询向导交叉表查询以水平方式和垂直方式对记录进行交叉表查询以水平方式和垂直方式对记录进行分组,并计算和重构数据,可以简化数据分析。分组,并计算和重构数据,可以简化数据分析。交叉表查询计算数据总和、计数、平均值以及交叉表查询计算数据总和、计数、平均值以及其他类型的综合计算。其他类型的综合计算。通过交叉表查询可以在一个数据表中以行通过交叉表查询可以在一个数据表中以行标题将数据组成群组,按列标题来分别求得所标题将数据组成群组,按列标题来分别求得所需汇总的数据(如总和或平均值),然后在数需
4、汇总的数据(如总和或平均值),然后在数据表中以表格的形式显示出来。据表中以表格的形式显示出来。74.2使用向使用向导导建立建立查询查询例:在例:在“教学管理教学管理”数据库中迅速建立这样一数据库中迅速建立这样一个查询:个查询:“学生中各民族的男女生的人数学生中各民族的男女生的人数”84.2使用向使用向导导建立建立查询查询3使用查找重复项查询向导使用查找重复项查询向导查找重复项查询向导可以对数据表中某些查找重复项查询向导可以对数据表中某些具有相同的字段值的记录进行检索、分类具有相同的字段值的记录进行检索、分类例:查找例:查找“教师中各种职称的人数教师中各种职称的人数”94.2使用向使用向导导建立
5、建立查询查询4查找不匹配项查询向导查找不匹配项查询向导查找不匹配项查询向导可以在一个表中查查找不匹配项查询向导可以在一个表中查找与另一个表中没有相关记录的记录。找与另一个表中没有相关记录的记录。例:完成例:完成“没有选课的学生没有选课的学生”的查询的查询104.3自己自己设计查询设计查询1查询的设计视图查询的设计视图“字段字段” 查询中所使用的字段的名称查询中所使用的字段的名称 “表表” 该字段所来自的数据对象(表或查询)该字段所来自的数据对象(表或查询) “排序排序” 确定是否按该字段排序以及按何种方式排序确定是否按该字段排序以及按何种方式排序 “显示显示” 确定该字段是否在查询结果集中可见
6、确定该字段是否在查询结果集中可见 “条件条件” 用来指定该字段的查询条件用来指定该字段的查询条件 “或或” 用来提供多个查询条件用来提供多个查询条件114.3自己自己设计查询设计查询查询目标的确定查询目标的确定在查询中显示的字段值可以是原表在查询中显示的字段值可以是原表的字段值,也可以是经过字段表达式计的字段值,也可以是经过字段表达式计算的结果算的结果年薪:工资*12 课程安排:第 & 开课学期 & 学期 124.3自己自己设计查询设计查询3.查询条件表达式的设置查询条件表达式的设置设计查询时,如果需要查找满足某一条件的记录,设计查询时,如果需要查找满足某一条件的记录,需要在查询设计视图中的需
7、要在查询设计视图中的“条件条件”行输入查询的条件表行输入查询的条件表达式。除了直接输入常量外,还可以使用比较运算符、达式。除了直接输入常量外,还可以使用比较运算符、逻辑运算符、特殊运算符、数学运算符和逻辑运算符、特殊运算符、数学运算符和Access的内的内部函数等来构成表达式。部函数等来构成表达式。在查询设计区的在查询设计区的“条件条件”行中输入表达式时,如果各行中输入表达式时,如果各个表达式处于同一行,则各个表达式之间应该是逻辑个表达式处于同一行,则各个表达式之间应该是逻辑与的关系;如果各个表达式处于不同行,则各个表达与的关系;如果各个表达式处于不同行,则各个表达式之间应该是逻辑或的关系。式
8、之间应该是逻辑或的关系。134.3自己自己设计查询设计查询比较运算符含义大于=大于等于小于=小于等于=等于不等于逻辑运算符含义Not 逻辑非And 逻辑与Or逻辑或例如,下列表达式:(1)考试成绩在85到70之间表达式在 “条件”行对应的“成绩”字段名的单元格中输入: =70 (2)籍贯是“北京”或“南京”的表达式在 “条件”行对应的“籍贯”字段名的单元格中输入: 北京 Or 天津“(3)民族是少数民族的表达式在 “条件”行对应的“民族”字段名下单元格中输入:Not “汉”144.3自己自己设计查询设计查询查找少数民族的女学生信息查询和查找少数民族学生或是女学生信息查询154.3自己自己设计查
9、询设计查询其他运算符含义BetweeAnd 指定值的范围在到之间In 指定值属于列表中所列出的值Is与Null一起使用确定字段值是否为空值Like用通配符查找文本型字段值是否与其匹配通配符是 ?匹配任意单个字符; *匹配任意多个字符; # 匹配任意单个数字; !不匹配指定的字符;字符列表匹配任何在列表中的单个字符。例如,下列表达式:例如,下列表达式:(1)出生日期在)出生日期在1985年年1月月1日到日到1989年年12月月31日的表达式日的表达式.Between#1985/1/1#And#1989/12/31#在条件表达式中输入日期值时在条件表达式中输入日期值时,需要在日期值两需要在日期值两
10、边加上边加上”#”符号。符号。(2)职称为教授或副教授的表达式)职称为教授或副教授的表达式In(“教授教授”,“副教授副教授”)在条件表达式中输入字符串时在条件表达式中输入字符串时,需要在字符串两需要在字符串两边用双引号引起来。边用双引号引起来。(3)没有参加考试(即成绩为空值)的件表达)没有参加考试(即成绩为空值)的件表达式式IsNull(4)姓名是姓)姓名是姓“张张”的表达式的表达式Like“张张*”(5)学号第一位是)学号第一位是0,第二位是,第二位是0、1(即(即00级、级、01级学生)的表达式级学生)的表达式Like“001*”16函数函数1.常用数值函数常用数值函数函数函数功能功能
11、示例示例结果结果Abs(数值表达式数值表达式)返回数值表达式值的绝对值返回数值表达式值的绝对值Abs(-30)30Int(数值表达式数值表达式)返回数值表达式值的整数部分值,如果数值返回数值表达式值的整数部分值,如果数值表达式的值是负数,返回小于或等于数值表表达式的值是负数,返回小于或等于数值表达式值的第一负整数达式值的第一负整数int(5.5)int(-5.5)5-6Fix(数值表达式数值表达式)返回数值表达式值的整数部分值,如果数值返回数值表达式值的整数部分值,如果数值表达式的值是负数,返回大于或等于数值表表达式的值是负数,返回大于或等于数值表达式值的第一负整数达式值的第一负整数Fix(5
12、.5)Fix(-5.5)5-5Sqr(数值表达式数值表达式)返回数值表达式值的平方根值返回数值表达式值的平方根值Sqr(9)3Sgn(数值表达式数值表达式)返回数值表达式值的符号对应值,数值表达返回数值表达式值的符号对应值,数值表达式的值大于式的值大于0,等于,等于0,小于,小于0,返回值分别,返回值分别为为1,0,-1Sgn(5.3)Sgn(0)Sgn(-6.5)10-1Round(数值表达式数值表达式1,数值表达式数值表达式2)对数值表达式对数值表达式1的值按数值表达式的值按数值表达式2指定的位指定的位数四舍五入数四舍五入Round(35.57,1)Round(35.52,0)35.636
13、172.常用字符函数常用字符函数函数函数功能功能示例示例结果结果Space(数值表达式数值表达式)返回数值表达式值指定的空格个数组返回数值表达式值指定的空格个数组成的空字符串成的空字符串教学教学&Space(2)&管理管理教学教学管理管理String(数值表达式数值表达式,字字符表达式符表达式)返回一个由字符表达值的第一个字符返回一个由字符表达值的第一个字符重复组成的由数值表达式值指定长度重复组成的由数值表达式值指定长度的字符串的字符串string(4,abcdabcdabcd)aaaaLen(字符表达式字符表达式)返回字符表达式的字符个数返回字符表达式的字符个数Len(教学教学&管理管理)4
14、Left(字符表达式字符表达式,数值数值表达式表达式)按数值表达式值取字符表达式值的左按数值表达式值取字符表达式值的左边子字符串边子字符串left(数据库管理系统数据库管理系统,3)数据库数据库Right(字符表达式字符表达式,数数值表达式值表达式)按数值表达式值取字符表达式值的右按数值表达式值取字符表达式值的右边子字符串边子字符串right(数据库管理系统数据库管理系统,2)系统系统Mid(字符表达式字符表达式,数值数值表达式表达式1,数值表达式数值表达式2)从字符表达式值中从字符表达式值中返回以数值表达式返回以数值表达式1规定起点,以数值表达式规定起点,以数值表达式2指定长度的指定长度的字
15、符串字符串Mid(“abcd”&”efg”,3,3)cdeLtrim(字符表达式字符表达式)返回去掉字符表达式前导空格的字符返回去掉字符表达式前导空格的字符串串教学教学&(ltrim(管理管理)教学管理教学管理Rtrim(字符表达式字符表达式)返回去掉字符表达式返回去掉字符表达式尾部尾部空格的字符空格的字符串串Rtrim(教学教学)&管理管理教学管理教学管理Trim(字符表达式字符表达式)返回去掉字符表达式前导和尾部空格返回去掉字符表达式前导和尾部空格的字符串的字符串trim(教学教学)&管理管理教学管理教学管理183.常用日期函数常用日期函数函数函数功能功能示例示例结果结果Date()返回当
16、前系统日期返回当前系统日期Month(日期表达式日期表达式)返回日期表达式对应的月份值返回日期表达式对应的月份值month(#2010-03-02#)3Year(日期表达式日期表达式)返回日期表达式对应的年份值返回日期表达式对应的年份值Year(#2010-03-02#)2010Day(日期表达式日期表达式)返回日期表达式对应的日期值返回日期表达式对应的日期值day(#2010-03-02#)2Weekday(日期表达式日期表达式)返回日期表达式对应的星期值返回日期表达式对应的星期值Weekday(#2010-04-02#)6194.常用统计函数常用统计函数函数函数功能功能示例示例结果结果Su
17、m(字符表达式字符表达式)返回表达式所对应的数字型字段的列值的总和返回表达式所对应的数字型字段的列值的总和Sum(成绩成绩)计算成绩字段列计算成绩字段列的总和的总和Avg(字符表达式字符表达式)返回表达式所对应的数字型字段的返回表达式所对应的数字型字段的列中所有值的平均值。列中所有值的平均值。Null值将被忽略值将被忽略Avg(成绩成绩)计算成绩字段列计算成绩字段列的平均值的平均值Count(字符表达式字符表达式)Count(*)返回含字段的表达式列中值的数目或者表或组中所有行返回含字段的表达式列中值的数目或者表或组中所有行的数目(如果指定为的数目(如果指定为COUNT(*))。该字段中的值为
18、)。该字段中的值为Null(空值)时,(空值)时,COUNT(数值表达式数值表达式)将不把空值计算将不把空值计算在内,但是在内,但是COUNT(*)在计数时包括空值在计数时包括空值Count(成绩成绩)统计有成绩的学统计有成绩的学生人数生人数Max(字符表达式字符表达式)返回含字段表达式列中的最大值返回含字段表达式列中的最大值(对于文本数据类型对于文本数据类型,按按字母排序的最后一个值字母排序的最后一个值)。忽略空值。忽略空值Max(成绩成绩)返回成绩字段列返回成绩字段列的最大值的最大值Min(字符表达式字符表达式)返回含字段表达式列中最小的值返回含字段表达式列中最小的值(对于文本数据类型对于
19、文本数据类型,按按字母排序的第一个值字母排序的第一个值)。忽略空值。忽略空值Min(成绩成绩)返回成绩字段列返回成绩字段列的最小值的最小值205.常用域聚合函数常用域聚合函数函数函数功能功能示例示例结果结果DSum(字符表达式字符表达式1,字符表达式字符表达式2,字符表达式字符表达式3)返回指定记录集返回指定记录集的一组值的总和的一组值的总和DSum(成绩成绩,选课选课,学号学号=10150226)求求“选课选课”表中学号为表中学号为“10150226”的学生选修的学生选修课程的总分课程的总分DAvg(字符表达式字符表达式1,字符表达式字符表达式2,字符表达式字符表达式3)返回指定记录集返回指
20、定记录集的一组值的平均的一组值的平均值值DAvg(成绩成绩,选课选课,课程号课程号=TC01)求求“选课选课”表中课程号为表中课程号为“TC01”的课程的平均分的课程的平均分DCount(字符表达式字符表达式1,字符表达字符表达式式2,字符表达式字符表达式3)返回指定记录集返回指定记录集的记录数的记录数DCount(学号学号,学生学生,性别性别=男男)统计统计“学生学生”表中男同学表中男同学人数人数DMax(字符表达式字符表达式1,字符表达式字符表达式2,字符表达式字符表达式3)返回一列数据的返回一列数据的最大值最大值DMax(成绩成绩,选课选课,课程号课程号=TC01)求求“选课选课”表中课
21、程号为表中课程号为“TC01”的课程的最高分的课程的最高分DMin(字符表达式字符表达式1,字符表达式字符表达式2,字符表达式字符表达式3)返回一列数据的返回一列数据的最小值最小值DMi(成绩成绩,选课选课,课程号课程号=TC01)求求“选课选课”表中课程号为表中课程号为“TC01”的课程的平低分的课程的平低分DLookup(字符表达式字符表达式1,字符表达字符表达式式2,字符表达式字符表达式3)查找指定记录集查找指定记录集中特定字段的值中特定字段的值DLookup(姓名姓名,教师教师,教师编号教师编号=13001)查找查找“教师教师”表中教师编表中教师编号为号为“13001”的教师的的教师的
22、姓名姓名214.3自己自己设计查询设计查询例:查找参加工作在例:查找参加工作在1980年到年到2000年之前的年之前的学历为硕士或博士,工资在学历为硕士或博士,工资在3000元以下少数元以下少数民族的教师的信息民族的教师的信息224.3自己自己设计查询设计查询4.联接类型对查询结果的影响联接类型对查询结果的影响234.3自己自己设计查询设计查询 例:课程的选修情况的查询 244.4查询实查询实例例1选择查询选择查询查询查询“计算机系学生的选课成绩为及格的计算机系学生的选课成绩为及格的”的记录,要求查询结果中包含的记录,要求查询结果中包含学生号、学生名、课程号、课程名、成绩。每门课程的成绩按从高
23、到学生号、学生名、课程号、课程名、成绩。每门课程的成绩按从高到底排列底排列254.4查询实查询实例例2参数查询参数查询例:根据输入的例:根据输入的“系名系名”的内容,查找该系教师的情况的内容,查找该系教师的情况264.4查询实查询实例例3汇总查询汇总查询例:查询每个学生学习课程的成绩的总分、平均分、最高分和例:查询每个学生学习课程的成绩的总分、平均分、最高分和最低分。最低分。274.4查询实查询实例例Group By默认值,用于定义要执行计算的组。这个字段中的记录将按值进行分组。Sum计算每一分组中字段值的总和。适用于数字、日期/时间、货币和自动编号型字段。Avg计算每一分组中字段的平均值。适
24、用于数字、日期/时间、货币和自动编号型字段。Min计算每一分组中字段的最小值。适用于文本、数字、日期/时间、货币和自动编号型字段。对于文本型字段,将按照字符的ASCII码顺序进行比较。Max计算每一分组中字段的最大值。适用范围与Min相同Count计算每一分组中字段值的计数,该字段中的值为Null(空值)时,将不计算在内。Where与“条件”行内容配合可以在分组前先筛选记录,并且查询结果中的这个字段将不能被显示出来。StDev计算每一分组中的字段值的标准偏差值。只适用于数字、日期/时间、货币和自动编号型字段。Var计算每一分组中的字段值的方差值。只适用于数字、日期/时间、货币和自动编号型字段。
25、First返回每一分组中该字段的第一个值。Last返回每一分组中该字段的最后一个值。Expression在字段中自定义计算公式,可以套用多个总计函数。284.4查询实查询实例例4交叉表查询交叉表查询例:利用交叉表查询来完成每个学生的第一个学期的选课信例:利用交叉表查询来完成每个学生的第一个学期的选课信息的查询,查询包括学生姓名、所学课程名、成绩和平均分等信息的查询,查询包括学生姓名、所学课程名、成绩和平均分等信息息294.5利用利用查询实现对查询实现对表数据的更改表数据的更改查询不仅可以实现对数据的查找,还能很查询不仅可以实现对数据的查找,还能很有效地对表中的记录作删除、更新、追加的操有效地对
26、表中的记录作删除、更新、追加的操作,并且通过查询可以生成新表。作,并且通过查询可以生成新表。304.5利用利用查询实现对查询实现对表数据的更改表数据的更改1生成表查询生成表查询生成表查询是将对一个或多个表的查询得到的全部或生成表查询是将对一个或多个表的查询得到的全部或部分数据来创建新表,这样可以对一些特定的数据进行备份。部分数据来创建新表,这样可以对一些特定的数据进行备份。例:将计算机系的学生记录生成一个新表例:将计算机系的学生记录生成一个新表314.5利用利用查询实现对查询实现对表数据的更改表数据的更改2更新查询更新查询更新查询可以对一个或多个表中符合查询条件的数据更新查询可以对一个或多个表
27、中符合查询条件的数据作批量的更改。作批量的更改。例如:将教师中职称为讲师的工资提高例如:将教师中职称为讲师的工资提高5%324.5利用利用查询实现对查询实现对表数据的更改表数据的更改3追加查询追加查询追加查询可以是向一个表的尾部添加记录。追加查询追加查询可以是向一个表的尾部添加记录。追加查询可以将从另一个数据表中读取数据记录添加到当前数据库的可以将从另一个数据表中读取数据记录添加到当前数据库的表中。表中。例如:将电子工程系的学生的记录合并到计算例如:将电子工程系的学生的记录合并到计算机系学生表中。机系学生表中。334.5利用利用查询实现对查询实现对表数据的更改表数据的更改4删除查询删除查询利用
28、删除查询可以从一个或多个表中删除符合查询条件利用删除查询可以从一个或多个表中删除符合查询条件的一组记录。的一组记录。例如:删除例如:删除“计算机系学生表计算机系学生表”中年龄大于等于中年龄大于等于21岁的记录。岁的记录。344.6SQL查询查询SQL查询是使用查询是使用SQL语句创建的一种查语句创建的一种查询。询。SQL(StructuredQueryLanguage)结构化查询语言是标准的关系型数据库语言,结构化查询语言是标准的关系型数据库语言,使用使用SQL语言可以对数据库实施数据定义、语言可以对数据库实施数据定义、数据操作和数据控制及管理。数据操作和数据控制及管理。354.6SQL查询查
29、询.1SQL视图视图364.6SQL查询查询SQL语句功能语句功能(1)数据定义功能)数据定义功能定义、删除、修改关系模式(基本表)定义、删除、修改关系模式(基本表)定义、删除视图(视图)定义、删除视图(视图)定义、删除索引(索引)定义、删除索引(索引)(2)数据操纵功能)数据操纵功能数据查询数据查询数据插入、删除、修改数据插入、删除、修改(3)数据控制功能)数据控制功能用户访问权限的授予、收回用户访问权限的授予、收回374.6SQL查询查询SQL语句功能语句功能SQL语句功能语句功能操作符操作符数据定义数据定义(表、索引表、索引)CREATE,ALTER,DROP数据查询数据查询SELECT
30、数据更新数据更新INSERT,UPDATE,DELETE384.6SQL查询查询3SQL的数据定义功能的数据定义功能()定义基本表语句格式为:create table 表名 (列名 数据类型 default 缺省值 not null ,列名 数据类型 default 缺省值 not null ,primary key(列名 ,列名 ) ,foreign key (列名 ,列名 ) references 表名 (列名 ,列名 ) ,check(条件)) ;例: 定义“学生”表,它包括学号、姓名、出生日期、性别等列(字段),学号为主键,对性别有值的约束条件。CREATE TABLE 学生( 学号
31、CHAR(4), 姓名 CHAR(8) NOT NULL, 出生日期 DATE, 性别 CHAR(2), PRIMARY KEY (学号), CHECK (性别=男 OR 性别=女) );394.6SQL查询查询()().修改基本表定义语句格式:修改基本表定义语句格式:ALTERTABLE表名表名ADD子句子句增加列或完整性约束条件增加列或完整性约束条件DROP子句子句删除完整性约束条件删除完整性约束条件MODIFY子句子句修改列定义修改列定义例:例:在在“学生学生”表中增加一个表中增加一个“系号系号”列列ALTER TABLE ALTER TABLE 学生学生 ADD (ADD (系号系号
32、CHAR(6) ; CHAR(6) ;例:将例:将“学生学生“表中的表中的”姓名姓名”列增加到列增加到12个字符的宽个字符的宽度度ALTER TABLE ALTER TABLE 学生学生 MODIFY ( MODIFY (姓名姓名 CHAR(12); CHAR(12);404.6SQL查询查询(3)删除基本表语句格式:)删除基本表语句格式:DROPTABLE表名;表名;注意注意:删除基本表后,基本表的定义、表中数据、索引都被删除。删除基本表后,基本表的定义、表中数据、索引都被删除。例:删除例:删除“学生学生”表表DROPTABLE学生;学生;414.6SQL查询查询(4)建立索引语句格式建立索
33、引语句格式:CREATEUNIQUE/DISTINCTINDEX索引名索引名ON表名表名(列名列名ASC/DESC,列名列名ASC/DESC)说明:说明:UNIQUE(DISTINCT):惟一性索引,不允许表中不同的行在):惟一性索引,不允许表中不同的行在索引列上取相同值。若已有相同值存在,则系统给出相关信息,不建索引列上取相同值。若已有相同值存在,则系统给出相关信息,不建此索引。系统并拒绝违背惟一性的插入、更新。此索引。系统并拒绝违背惟一性的插入、更新。ASC/DESC选项指定选项指定索引排序升序或降序,不指定顺序,索引按升序排列。索引排序升序或降序,不指定顺序,索引按升序排列。例:例:在在
34、“学生学生”表的表的“学号学号”列上建立名为列上建立名为“学号学号INX”的惟一索的惟一索引。引。CREATEUNIQUEINDEX学号学号INXON学生(学号);学生(学号);424.6SQL查询查询(5)删除索引删除索引语句格式:语句格式:DROPINDEX索引名索引名例:例:删除建立在学号的索引删除建立在学号的索引DROPINDEX学号学号INX434.6SQL查询查询4SQL的数据查询功能的数据查询功能数据库查询是数据库的核心操作,数据库查询是数据库的核心操作,SQL语言提供了语言提供了SELECT语句进行语句进行数据查询。该语句的功能强,变化形式较多。数据查询。该语句的功能强,变化形
35、式较多。SELECT查询语句格式如下:查询语句格式如下:SELECTDISTINCT,(查询的结果的目标列名表)(查询的结果的目标列名表)FROM,(要操作的关系表或查询名)(要操作的关系表或查询名)WHERE(查询结果应满足选择或联接条件)(查询结果应满足选择或联接条件)GROUPBY,HAVING(对查询结果分组及(对查询结果分组及分组的条件)分组的条件)ORDERBYASC|DESC(对查询结果排序)(对查询结果排序)444.6SQL查询查询()简单查询()简单查询例:例:查找成绩在查找成绩在70到到80分之间的学生选课分之间的学生选课情况情况SELECT*FROM选课选课WHERE成绩
36、成绩BETWEEN70AND80;454.6SQL查询查询例:查找出所有姓李的学生的情况例:查找出所有姓李的学生的情况SELECT*FROMSWHERESNAMELIKE李李%;注意:在注意:在SQL语言中字符语言中字符“%”代表任意一串字符,代表任意一串字符,“_”代代表任意一个字符。在表任意一个字符。在Access2003中用中用“*”代表任意一串代表任意一串字符,字符,“?”代表任意一个字符。代表任意一个字符。464.6SQL查询查询(2)连接查询)连接查询一个查询同时涉及两个以上的表时,一个查询同时涉及两个以上的表时,称其为连接查询。称其为连接查询。例:例:查询数学系、计算机系、电子工
37、程系的学生查询数学系、计算机系、电子工程系的学生的姓名、系名称的姓名、系名称SELECT姓名,系名称姓名,系名称FROM学生,系科学生,系科WHERE学生学生.系号系号=系科系科.系号系号And系名称系名称IN(数学系,计算机系,电子工程系);(数学系,计算机系,电子工程系);注意:用注意:用“学生学生.系号系号=系科系科.系号系号”指明两个表的联接条件;指明两个表的联接条件;“系名称系名称IN(数学系,(数学系,计算机系,电子工程)计算机系,电子工程)”为选择条件。为选择条件。474.6SQL查询查询例例9检索计算机系的学生的学号检索计算机系的学生的学号,姓名姓名,年龄年龄SELECT学号学
38、号,姓名姓名,(Date()-出生日期)出生日期)/365As年龄年龄FROM学生,系科学生,系科WHERE学生学生.系号系号=系科系科.系号系号And系名称系名称=计算机系计算机系;注意:注意:”(Date()-出生日期)出生日期)/365”为年龄的字段表达式。为年龄的字段表达式。484.6SQL查询查询(3)嵌套查询)嵌套查询一个查询语句的一个查询语句的WHERE子句中包含一个由比较符号或谓词子句中包含一个由比较符号或谓词引导查询语句时,称查询为嵌套查询,被嵌入的查询称为引导查询语句时,称查询为嵌套查询,被嵌入的查询称为子查询。子查询。可以引导子查询的谓词有:可以引导子查询的谓词有:IN、
39、ANY、ALL、EXISTS。例:例:找出年龄小于李芳的学生姓名找出年龄小于李芳的学生姓名SELECT姓名姓名FROM学生学生WHERE出生日期出生日期(SELECT出生日期出生日期FROM学生学生WHERE姓名姓名=李芳李芳);注意:使用比较符引导的子查询,查询的结果必须为惟一值。注意:使用比较符引导的子查询,查询的结果必须为惟一值。494.6SQL查询查询例:求选修了例:求选修了C程序设计课程的所有学生的学号程序设计课程的所有学生的学号SELECT学号学号FROM选课选课WHERE课程号课程号IN(SELECT课程号课程号FROM课程课程WHERE课程名称课程名称=C程序设计程序设计);注
40、意:本例为嵌套查询注意:本例为嵌套查询-带有子查询的带有子查询的SELEC语句。语句。504.6SQL查询查询例:例:找出学习找出学习TC02课程的学生姓名课程的学生姓名.SELECT姓名姓名FROM学生学生WHEREEXISTS(SELECT*FROM选课选课WHERE学号学号=学生学生.学号学号AND课程号课程号=TC02);注意:本例使用注意:本例使用EXISTS(量词)的嵌套查询(量词)的嵌套查询514.6SQL查询查询(4)使用聚集函数的查询)使用聚集函数的查询在查询中使用聚集函数,可以对查询的结果进在查询中使用聚集函数,可以对查询的结果进行统计计算。行统计计算。常用五个的聚集函数:
41、常用五个的聚集函数:平均值:平均值:Avg总和:总和:Sum最小值:最小值:Min最大值:最大值:Max计数:计数:Count524.6SQL查询查询例:求学号为例:求学号为011534的学生的总分和平均分的学生的总分和平均分SELECTSum(成绩成绩)AS总分总分,Avg(成绩成绩)AS平均分平均分FROM选课选课WHERE学号学号=011534;注意:本例使用了统计函数注意:本例使用了统计函数Sum(总和)和(总和)和Avg(平均)(平均)例:例:求至少选修三门以上课程的学生的学号及选课门数求至少选修三门以上课程的学生的学号及选课门数SELECT学号学号,COUNT(*)as选课门数选课
42、门数FROM选课选课GROUPBY学号学号HAVINGCOUNT(*)3;注意:分组带有附加条件。每个组的记录条数大于注意:分组带有附加条件。每个组的记录条数大于3。534.6SQL查询查询(5)集合查询)集合查询集合查询是将多个集合查询是将多个Select语句的结果进行集合操作语句的结果进行集合操作构成一个查询构成一个查询例:查询女学生及选课成绩大于例:查询女学生及选课成绩大于80的学生的学号的学生的学号Select学号学号From学生学生Where性别性别=女女UnionSelect学号学号From选课选课Where成绩成绩80544.6SQL查询查询5SQL的数据更新功能的数据更新功能S
43、QL中数据更新包括插入数据、修改数据和删中数据更新包括插入数据、修改数据和删除数据三条语句除数据三条语句(1)插入数据语句格式1:INSERT INTO ( ,) VALUES (常量 ,常量.); 说明:该语句一次完成一个记录的插入。语句格式2: INSERT INTO ( ,) 子查询; 说明:子查询嵌入INSERT语句,查询的结果插入到表中。即一次完成批量记录数据的插入。554.6SQL查询查询例:例:向学生表插入数据向学生表插入数据INSERTINTO学生学生(学号学号,姓名姓名,系号系号)VALUES(031510,李新李新,15);例:将系号为例:将系号为15的全体学生选修的全体学
44、生选修C程序设计课程的信息添程序设计课程的信息添入选课表入选课表.INSERTINTO选课选课(学号学号,课程号课程号,成绩成绩)SELECT学号学号,课程号课程号,NullFROM学生学生,课程课程WHERE系号系号=15And课程名称课程名称=C程序设计程序设计;564.6SQL查询查询(2)删除数据)删除数据语句格式语句格式:DELETEFROMWHERE说明说明:无无WHERE子句时子句时,表示删除表中的全部数据表示删除表中的全部数据.WHERE子句中可以带子查询子句中可以带子查询.例:删除学号为例:删除学号为001155的学生记录的学生记录DELETEFROM学生学生WHERE学号学
45、号=001155;例:删除系号为例:删除系号为1的所有学生的选课记录的所有学生的选课记录DELETEFROM选课选课WHERE1=(SELECT系号系号FROM学生学生WHERE学生学生.学号学号=选课选课.学号学号);574.6SQL查询查询(3)修改数据修改数据语句格式语句格式:UPDATESET=|,=|.WHERE;说明说明:修改时修改时,对满足条件表达式的行对满足条件表达式的行,将用表达式的值或子查询的结果将用表达式的值或子查询的结果(唯一唯一值值)替换相应列的值。替换相应列的值。例:例:将选课表中的所有选修将选课表中的所有选修TC04课程的学生成绩提高课程的学生成绩提高5分分UPD
46、ATE选课选课SET成绩成绩=成绩成绩+5WHERE课程号课程号=TC04;例:例:将系号为将系号为1的全体学生的的全体学生的TC02课程成绩置课程成绩置0.UPDATE选课选课SET成绩成绩=0WHERE课程号课程号=TC02And学号学号IN(SELECT学号学号FROM学生学生WHERE系号系号=1And学生学生.学号学号=选课选课.学号学号);584.6SQL查询查询6SQL特定查询特定查询在在Access中将通过中将通过SQL语句才能实语句才能实现查询称为现查询称为SQL特定查询。特定查询。SQL特定查特定查询可以分为四类:联合查询、传递查询、询可以分为四类:联合查询、传递查询、数据
47、定义查询和子查询。数据定义查询和子查询。594.6SQL查询查询(1)联合查询联合查询联合查询是将两个查询的结果集合并在一起,对两个查询要求联合查询是将两个查询的结果集合并在一起,对两个查询要求是:查询结果的字段名、类型相同,字段排列的顺序一致。是:查询结果的字段名、类型相同,字段排列的顺序一致。例:查找选修课程号为例:查找选修课程号为TC02或其他选课成绩高于或其他选课成绩高于85分的学号,课程号,成绩。分的学号,课程号,成绩。604.6SQL查询查询(2)数据定义查询数据定义查询数据定义查询是直接使用数据定义查询是直接使用SQL语句来创建、删除语句来创建、删除或更改表的定义,或者为数据库的
48、表建立索引。或更改表的定义,或者为数据库的表建立索引。每个数据定义查询只能由一个数据定义语句组每个数据定义查询只能由一个数据定义语句组成。成。CREATETABLE语句创建表,语句创建表,ALTERTABLE语句在已有的表中添加新的字段。语句在已有的表中添加新的字段。DROPTABLE语句删除表,语句删除表,CREATEINDEX语句为表创建索引,语句为表创建索引,DROPINDEX语句删除索语句删除索引,引,614.6SQL查询查询(3)传递查询传递查询传递查询将传递查询将SQL命令直接送到命令直接送到SQL数据库数据库服务器(如:服务器(如:SQLServer、Oracle等)。等)。这些
49、数据库服务器通常被称作系统的后这些数据库服务器通常被称作系统的后端,而端,而Access作为前端或客户工具。传递作为前端或客户工具。传递的的SQL命令要使用特殊服务器要求的语命令要使用特殊服务器要求的语法,可以参考相关的法,可以参考相关的SQL数据库服务器数据库服务器文档。文档。624.6SQL查询查询(4)子查询)子查询子查询是指在设计的一个查询中可以在查询的字子查询是指在设计的一个查询中可以在查询的字段行或条件行的单元格中创建一条段行或条件行的单元格中创建一条SQLSELECT语句。语句。SELECT子查询语句放在字段子查询语句放在字段行单元格里的创建一个新的字段,行单元格里的创建一个新的
50、字段,SELECT子子查询语句放在条件行单元格的作为限制记录的查询语句放在条件行单元格的作为限制记录的条件。条件。例:查找学习课程成绩分数高于平均分的学生的例:查找学习课程成绩分数高于平均分的学生的学号和姓名及课程名称。学号和姓名及课程名称。634.6SQL查询查询644.7对查询结对查询结果的果的处处理理1打印查询结果打印查询结果创建了查询后,可以将查询的结果(动态集)以创建了查询后,可以将查询的结果(动态集)以数据表的形式打印出来。操作步骤如下:数据表的形式打印出来。操作步骤如下:(1)选择要打印结果的查询,单击数据库窗口上的)选择要打印结果的查询,单击数据库窗口上的“打打开开”按钮,使查
51、询显示为查询的数据表视图状态。按钮,使查询显示为查询的数据表视图状态。(2)单击)单击“文件文件”菜单上的菜单上的“打印打印”命令,在命令,在“打印打印”对话框对话框中指定所要的打印选项。中指定所要的打印选项。(3)确定打印机已经连接好并已经开机后,单击)确定打印机已经连接好并已经开机后,单击“打印打印”对话框中的对话框中的“确定确定”按钮即可打印出结果。按钮即可打印出结果。654.7对查询结对查询结果的果的处处理理2将对表的筛选操作存为查询将对表的筛选操作存为查询前面已经介绍了有关表的筛选的内前面已经介绍了有关表的筛选的内容,表的筛选结果也可以存为查询。操容,表的筛选结果也可以存为查询。操作
52、步骤如下:作步骤如下:(1)打开一个表并作好一个筛选设置。)打开一个表并作好一个筛选设置。(2)单击工具栏上的)单击工具栏上的“另存为查询另存为查询”按钮。按钮。(3)在弹出的对话框中输入查询的名字,)在弹出的对话框中输入查询的名字,单击单击“确定确定”,筛选就被存为一个查询了。,筛选就被存为一个查询了。66本章小本章小结结在本章中内容分为以下内容:在本章中内容分为以下内容:第一部分介绍了如何使用向导创建选择查询、交叉表查询、第一部分介绍了如何使用向导创建选择查询、交叉表查询、查找重复记录和不匹配记录的查询,并介绍了自己根据实查找重复记录和不匹配记录的查询,并介绍了自己根据实际要求来设计查询,
53、通过实例来设计选择查询、参数查询、际要求来设计查询,通过实例来设计选择查询、参数查询、汇总查询、交叉表查询。这些查询能够满足一般对数据的汇总查询、交叉表查询。这些查询能够满足一般对数据的查找、统计的要求。查找、统计的要求。第二部分介绍了维护数据库的基本方法,它包括生成表查询、第二部分介绍了维护数据库的基本方法,它包括生成表查询、追加查询、更新查询和删除查询。掌握这些内容的能有效追加查询、更新查询和删除查询。掌握这些内容的能有效地对数据库数据进行操作和维护,提高工作效率。地对数据库数据进行操作和维护,提高工作效率。第三部分针对一些复杂的查询任务介绍了第三部分针对一些复杂的查询任务介绍了SQL查询语句和带查询语句和带有查询的数据操作(增、删、改)语句及有查询的数据操作(增、删、改)语句及SQL特殊查询特殊查询。掌握掌握Access的查询操作可以完成用户对数据的需求的操作。的查询操作可以完成用户对数据的需求的操作。67