《计算机基础与Access数据库程序设计4》ppt课件(全).ppt
《《计算机基础与Access数据库程序设计4》ppt课件(全).ppt》由会员分享,可在线阅读,更多相关《《计算机基础与Access数据库程序设计4》ppt课件(全).ppt(97页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机基础与计算机基础与Access数据库程序设计数据库程序设计第第4章章 查询查询计算机基础与Access数据库程序设计4ppt课件(全)目目 录录4.1 关于查询的基础知识关于查询的基础知识4.2用向导建立查询用向导建立查询4.3用查询设计器建立查询用查询设计器建立查询 计算机基础与Access数据库程序设计4ppt课件(全)4.1关于查询的基础知识关于查询的基础知识 4.1.1 查询及其分类查询及其分类 依据查询的特点可以把查询分为多种类型,常见的查询类型有选择查询、交叉表查询、参数查询、操作查询和SQL查询等。1.选择查询选择查询 从一个或多个相互关联的表中查找符合条件的记录的查询称为
2、选择查询。选择查询可以对结果记录直接输出或进行分类汇总统计等处理。利用选择查询可以解决绝大多数的数据检索问题,例如,查询每门课程的课程信息及选课信息的查询就属于选择查询(无选择条件),查询某门课程的课程信息和选课信息则是增加了查询条件的选择查询。计算机基础与Access数据库程序设计4ppt课件(全)选择查询可以用“简单查询向导”、“查找重复项查询向导”、“查找不匹配项查询向导”或查询设计器创建。2.交叉表查询交叉表查询 交叉表查询是指查询结果为对行、列交叉结果进行汇总统计的查询,例如,在“教学管理”数据库中查询每门课程的各民族学生选课人数就属于交叉表查询。交叉表查询可以用“交叉表查询向导”或
3、查询设计器建立。3.参数查询参数查询 查询可以定义查询参数,以便在运行查询(打开查询)时灵活选择查询范围。例如查询学生信息时,如果可以在执行查询时指定具体的出生日期或出生日期范围,查询操作的针对性就会大大提高,这种可以在运行查询时指定查询参数的查询就是计算机基础与Access数据库程序设计4ppt课件(全)参数查询。4.操作查询操作查询 一般而言,查询操作不改变数据库数据。Access可以把对表的插入、删除、更新等操作用查询实现并把这类查询称为操作查询。操作查询包括删除查询、更新查询、追加查询、生成表查询等。删除查询用于删除符合条件的记录;更新查询用于更新符合条件的记录;追加查询用于向表中添加
4、新记录;生成表查询用于建立新的数据库表。5.SQL查询查询 SQL是结构化查询语言(Structured Query Language)的缩写,是关系数据库的标准操作语言,利用SQL语言可以实现关计算机基础与Access数据库程序设计4ppt课件(全)系数据库的所有操作。Access中建立的所有查询都对应于一个SQL命令(语句)。对于一些常见的查询而言,可以用查询向导或查询设计器建立,可以在SQL视图中查看自动生成对应的SQL语句。对于某些复杂的查询,用查询向导或查询设计器可能无法创建,必须用SQL命令直接建立这样的查询,Access的“SQL特定查询”就是这类查询。可以通过直接输入查询所对应
5、的SQL语句来建立查询,这就是SQL查询。4.1.2 查询中的表达式、函数查询中的表达式、函数 一般把实现某种运算的式子叫做表达式。各种类型的运算量都可以通过相应的表达式进行运算处理。Access中常用的表达式有算术表达式、字符表达式、日期表达式、关系表达式、计算机基础与Access数据库程序设计4ppt课件(全)逻辑表达式等。1.算术表达式算术表达式 算术表达式是由算术运算符连接数值型(数字型、货币型)运算量(常量、字段或函数)组成的有运算意义的式子。算术表达式的运算结果是一个数值。Access算术运算符如表4-1所示。需要特别注意:乘方、取模运算,乘方运算符不可以用两个连续的乘号表示,取模
6、运算的运算符是Mod(在表达式中Mod运算符两端必须留空格符)。算术表达式的计算次序是最内层括号优先计算,然后逐级向外层括号展开,在同级括号内,按“先乘方、再乘除之后整除、然后取模、最后加减”的顺序进行计算,如果运算级别相同(乘和除,加和减),则从左到右计算。计算机基础与Access数据库程序设计4ppt课件(全)2.字符表达式字符表达式 字符串只能进行连接运算,运算符为“+”和“&”两种,其作用相同。连接运算是把第二个字符串(常量、字段或函数)接续到第一个字符串(常量、字段或函数)末尾形成一个结果字符串的运算。例如,AAA&Abc的结果是字符串AAAAbc。再比如,民族+族,其运算结果是在民
7、族字段值之后连接一个“族”字(tStudent表民族字段值均省略了“族”字)。“+”运算符只能连接两个字符串,“&”运算符则可以连接不同类型的运算量。&运算时,首先把非字符串类型的运算量转换为字符串,然后再连接相应的字符串。3.日期表达式日期表达式 日期表达式有如下几种类型:u 日期型量(常量、字段或函数)加上一个整型值n,结果计算机基础与Access数据库程序设计4ppt课件(全)为从相应日期起,n天后的日期;u 日期型量(常量、字段或函数)减去一个整型值n,结果为从相应日期起,n天前的日期;u 两个日期(常量、字段或函数)相减,结果是二者之间相差的天数。4.关系表达式关系表达式 关系表达式
8、是由关系运算符连接两个同类型运算量(常量、字段或函数)所形成的有运算意义的式子。关系运算表达式中可以包含圆括号。关系运算符连接的运算量中如果包含算术表达式、字符连接表达式、日期表达式,则这些表达式优先计算。包含括号时,优先计算内层括号内的式子。计算机基础与Access数据库程序设计4ppt课件(全)关系表达式的结果为“真”(用True表示)或“假”(用False表示)。当比较条件成立时,运算结果为True,否则运算结果为False。需要注意的是字符串之间的关系运算,ASCII字符按其字符编码大小进行比较,汉字是按选项设置中设置的“新建数据库排序次序”进行比较的。5.逻辑表达式逻辑表达式 逻辑表
9、达式是由逻辑型运算量(True、False、是/否型字段或函数、关系表达式)和逻辑运算符组成的、有运算意义的式子。逻辑运算符已经在节介绍过,在此不再赘述。为清晰和安全起见,在输入逻辑运算符时,一般在运算符前后需要各留一个空格。计算机基础与Access数据库程序设计4ppt课件(全)6.区间判断区间判断 区间判断适用于任何数据类型的表达式,其语法格式如下:Not Between And 当表达式结果大于或等于区间下界值并且小于或等于区间上界值时,表达式结果为True,否则为False。例如,下列表达式:出生日期出生日期 Between#1992/1/1#And#1994/1/1#当记录的出生日期
10、字段值在1992年1月1日至1994年1月1日之间(含边界值)时,返回结果为True。7.子集合判断子集合判断子集合判断同样适用于任何数据类型的表达式,其语法格式如计算机基础与Access数据库程序设计4ppt课件(全)下:Not IN ()如果表达式结果存在于集合元素列表中则判断结果为True,否则为False。子集合判断特别适合于取值较多且不连续的情况,这时用逻辑表达式表示会很复杂。8.字符串匹配、空值判断字符串匹配、空值判断 字符串匹配运算用于测试指定字符串表达式的值是否与指定匹配字符串匹配,其语法结构如下:Not Like 如果表达式与匹配字符串匹配则运算结果为True,否则运算结果为
11、False。计算机基础与Access数据库程序设计4ppt课件(全)空值判断语法格式如下:Is Not Null 未选择Not选项时,如果表达式的值是空值,则返回True,否则返回False。选择了Not选项时,运算结果正好相反。9.表达式计算次序表达式计算次序 Access中的表达式一般比较简单,如果表达式中包含多种运算,可以使用圆括号指定计算次序。圆括号可以嵌套使用,计算时,优先计算内重括号,逐次扩展计算外层括号。同级括号内先计算函数,然后计算算术表达式、字符表达式、日期表达式,之后进行关系运算、区间判断、集合判断、字符串匹配判断和空值判断,最后进行逻辑运算。计算机基础与Access数据库
12、程序设计4ppt课件(全)10.常用函数常用函数 函数是系统提供的、可以直接在表达式中使用的预定义运算。常用的函数如表4-2、表4-3所示,表中函数需要熟记并能熟练应用。【例【例4-1】tStudent表中保存的是大学生记录,显然,学生入学时有一个合理的年龄范围,怎样控制出生日期的合理性呢?假定学生的年龄在1065岁之间。【解答】【解答】当前的系统时间可以由函数Date()得到,Date()10*365约是10年以前,同样,Date()65*365约是65年以前。定义“出生日期”字段的字段有效性规则如下:=Date()-65*365 And =DateSeral(Year(Date()-65,
13、1,1)And =DateSeral(Year(Date()-10,1,1)本表达式把出生日期控制在65年前的1月1日至10年前1月1日之间,基本上可以把学生入学年龄控制在合理的范围。4.1.3 SQL SELECT语句语句 典型的SQL SELECT语句语法格式如下:SELECT ALL|DISTINCT FROM|WHERE GROUP BY HAVING ORDER BY ASC|DESC ,ASC|DESC 计算机基础与Access数据库程序设计4ppt课件(全)通常,SQL语句的关键字字母全部大写。选择ALL选项输出所有查询结果行,选择DISTINCT选项将过滤掉查询结果中重复出现的
14、行;输出表达式序列是用逗号分隔的字段运算表达式列表,可以指定输出列的列名;查询对象列表中给出每个要查询的表;JOIN选项用于进行多表连接查询;WHERE选项用于指定查询结果行的过滤条件,只有满足条件的结果行才被输出;GROUP BY选项用于对查询结果行进行分组统计处理,分组字段列表值相同的结果行将被作为一个统计分组进行汇总;HAVING选项只能与GROUP BY选项结合使用,其作用是把分组结果中满足筛选条件的分组保留下来,其他不满足条件的分组则不予输出;ORDER BY选项用于结果排序,查询结果可以按指定的排序字段值升序(选ASC)或降序(选DESC)排列,当指定多个排序字段时,依次按第一个字
15、段的指定顺序排序,第一计算机基础与Access数据库程序设计4ppt课件(全)个字段值相同时继续按第二个字段值顺序排序,依此类推。SQL语句(包括SQL SELECT语句)可以在一行内或多行书写,关键字、逻辑运算符等与其他语法内容之间须留有空格。在SQL语句中,字段名可以不加方括号。1.输出表达式输出表达式 输出表达式可以是字段(列)名、字段(列)名表达式、星号。当输出表达式为字段名时,对应输出列的显示标题即为该字段的字段名(或指定的标题)。如果输出表达式是一个字段运算表达式,对应输出列的显示标题由系统指定。可以在命令中指定显示标题,格式如下:AS 【例4-2】用SQL SELECT语句查询每
16、个学生的学号、姓名、计算机基础与Access数据库程序设计4ppt课件(全)性别、年龄、民族。【解答】显然,tStudent表中没有“年龄”字段,因此需要计算求得年龄。实际上,年龄可以通过当前年度减去出生日期年度计算求得,符合要求的SQL SELECT语句为:SELECT 学号学号,姓名姓名,性别性别,Year(Date()-Year(出生日期出生日期)AS 年龄年龄,民民族族FROM tStudent查询结果查询结果计算机基础与Access数据库程序设计4ppt课件(全)在查询设计器中运行SQL语句的方法如下:(1)在数据库操作界面中选择“查询”对象;(2)双击对象显示子窗口中的“在设计视图
17、中创建查询”,系统打开查询设计视图并立即打开“显示表”对话框,用于向查询设计视图中添加表/查询,如下图所示;计算机基础与Access数据库程序设计4ppt课件(全)(3)关闭“显示表”对话框,然后右击查询设计视图窗口上部空白处,在弹出的快捷菜单中选择“SQL视图”命令,或选择“视图”“SQL视图”命令,系统自动打开SQL语句设计器视图,直接在视图中输入上述SQL SELECT语句,如下图所示。语句末尾一般要加一个分号作为语句结束符,不加亦可;计算机基础与Access数据库程序设计4ppt课件(全)(4)单击“运行”按钮,或选择“查询”“运行”命令,均可运行查询,选择“视图”“SQL视图”命令可
18、以切换回SQL语句设计器视图;(5)单击SQL语句设计器视图窗口中的“关闭”按钮,系统显示保存查询提示对话框,可以选择保存设计好的查询。如果查询某个表的所有字段,不必依次列出所有字段,用星号即可,例如,下列语句可以查询输出tStudent表的所有信息:SELECT *FROM tStudent 查询结果中可能有重复的输出结果行,在输出表达式列表之前选择DISTINCT选项可以去掉重复的行,例如,下面计算机基础与Access数据库程序设计4ppt课件(全)的语句将只输出“男”、“女”两种性别,如下图所示。SELECT DISTINCT 性别性别 FROM tStudent2.查询对象列表查询对象
19、列表 如果查询对象只有一个,不需要JOIN选项。有多个查询对象时,可以选择查询对象列表,也可以选择JOIN选项。查询对象列表中有多个查询对象时,先生成这些查询对象的笛计算机基础与Access数据库程序设计4ppt课件(全)卡尔积。例如,下列语句将输出tTeacher表、tCourse表的笛卡尔积,如下图所示。SELECT *FROM tTeacher,tCourse计算机基础与Access数据库程序设计4ppt课件(全)选择查询对象列表时,SQL SELECT语句的执行过程如下:(1)读取查询对象列表中指定的表,执行笛卡尔积操作;(2)选取满足WHERE选项中给出的条件(逻辑表达式)的结果行;
20、(3)按GROUP BY选项中指定的分组字段(或字段组合)对满足WHERE条件的结果行进行分组统计,如果有HAVING选项,就只保留那些满足HAVING选项中筛选条件(逻辑表达式)的统计结果行;(4)按给定的输出表达式列表计算输出结果行并按ORDER选项中的排序字段及排序方式输出结果行。计算机基础与Access数据库程序设计4ppt课件(全)3.JOIN选项选项 JOIN选项用于进行连接操作,其语法格式如下:INNER|LEFT|RIGHT|FULL JOIN ON JOIN选项包括以下几种:(1)内连接(INNER JOIN);(2)左连接(LEFT JOIN);(3)右连接(RIGHT J
21、OIN);(4)全连接(FULL JOIN)。常用的连接是内连接(INNER JOIN),用内连接可以实现前述用WHERE条件实现的多表操作。计算机基础与Access数据库程序设计4ppt课件(全)内连接操作是把查询对象1的表行和查询对象2的表行中,满足连接条件的对应行连接起来作为结果行。【例4-3】用SQL SELECT语句查询每个教师的教师号、教师名及任课信息。【解答】要查询教师号、教师名可以在tTeacher表中查询到,而任课信息可以在tCourse表中获得,把tTeacher和tCourse表的表行按教师号相等进行连接即可,语句如下:SELECT *FROM tTeacher INNE
22、R JOIN tCourse ON tTeacher.教师号=tCourse.任课教师 运行结果如下页图所示。计算机基础与Access数据库程序设计4ppt课件(全)由上图可以看出,结果行中教师的出生日期、性别、联系电话、基本工资和任课教师(教师号)是要求中不需要的,修改一下输出表达式列表(实际上是进行关系投影操作)即可。SELECT tTeacher.教师号教师号,tTeacher.教师名教师名,tCourse.课程号课程号,tCourse.课程名课程名,tCourse.学时学时FROM tTeacher INNER JOIN tCourse ON tTeacher.教师号教师号=tCour
23、se.任课教师任课教师 当有多个查询对象时,输出表达式列表中的字段需要加表名前缀,没有前缀的星号表示输出所有查询对象的全部列,如计算机基础与Access数据库程序设计4ppt课件(全)果输出某一查询对象的全部列,可以用星号加表名前缀表示。4.WHERE选项选项 选择查询对象列表(无JOIN选项)且有多个查询对象的时候,如果没有WHERE选项,则会输出这些查询对象的笛卡尔积结果中的全部结果行,在这些结果行中,有许多是不合理的或不需要的,只有那些tTeacher表的教师号与tCourse表的任课教师相等的行才是合理的行,可以通过WHERE选项选取那些满足指定条件的行。下列SQL SELECT语句可
24、以实现【例4-3】的相同功能。SELECT tTeacher.教师号教师号,tTeacher.教师名教师名,tCourse.课程号课程号,tCourse.课程名课程名,tCourse.学时学时 FROM tTeacher,tCourseWHERE tTeacher.教师号教师号=tCourse.任课教师任课教师;WHERE选项中的条件表达式可以是关系表达式或逻辑表达式、计算机基础与Access数据库程序设计4ppt课件(全)范围判断、集合判断、字符串匹配判断或空值判断等。【例4-4】查询1993年出生的学生信息。【解答】出生日期是一个时间段,逻辑表达式为“出生日期#12/31/1992#And
25、 出生日期=#1/1/1993#And 出生日期#12/31/1992#And 出生日期出生日期85计算机基础与Access数据库程序设计4ppt课件(全)需要注意的是,在Access中,HAVING使用汇总计算列时必须使用原始统计表达式。如HAVING Avg(成绩)85,不能使用HAVING 平均成绩85。7.ORDER BY选项选项 通过 ORDER BY选项可以指定输出结果行的排列次序。例如,使【例4-8】结果行按平均成绩升序排列的语句如下:SELECT 学号学号,Avg(成绩成绩)AS 平均成绩平均成绩FROM tScoreGROUP BY 学号学号 HAVING Avg(成绩成绩)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机基础与Access数据库程序设计4 计算机 基础 Access 数据库 程序设计 ppt 课件
限制150内