Access中的查询剖析PPT教学课件_第1页
Access中的查询剖析PPT教学课件_第2页
Access中的查询剖析PPT教学课件_第3页
Access中的查询剖析PPT教学课件_第4页
Access中的查询剖析PPT教学课件_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 41查询概述 存储数据的目的是为了重复使用这些数据。在使用这些数据时,用户根据自己的需求可以从单个数据表中获取所需要的信息,也可从多个相关的数据表中获得信息,所采用的手段就是使用查询技术。 Access提供的查询功能为用户提供了从若干个数据表中获取信息的手段,是分析和处理数据的一种重要工具。 第1页/共102页4.1.1查询的概念 查询是指向数据库提出请求,要求数据库按照特定的需求在指定的数据源中进行查找,提取指定的字段,返回一个新的数据集合,这个集合就是查询结果。 利用不同的查询,可以方便、快捷地浏览数据表中的数据,同时利用查询可以实现数据的统计分析与计算等操作,查询还可以作为窗体和报表的

2、数据源。 查询也可以看做一个“表”,只不过是以表或查询为数据来源的再生表,是动态的数据集合。第2页/共102页 查询主要有以下几方面的功能。(1)选择字段和记录 (2)修改记录(3)统计和计算(4)建立新表(5)为其他数据库对象提供数据源第3页/共102页 根据对数据源的操作方式以及查询结果,Access提供的查询可以分为五种类型,分别是选择查询、交叉表查询、参数查询、操作查询和SQL查询。1选择查询 选择查询是最常用的查询类型,它能够根据用户所指定的查询条件,从一个或多个数据表中获取数据并显示结果,还可以利用查询条件对记录进行分组,并进行求总计、计数、平均值等运算。4.1.2查询的类型第4页

3、/共102页2交叉表查询 交叉表查询将源数据或查询中的数据分组,一组在数据表的左侧,另一组在数据表的上部,数据表内行与列的交叉单元格处显示表中数据的某个统计值。 交叉表查询可以计算并重新组织数据表的结构。这是一种可以将表中的数据看作字段的查询方法。3参数查询 参数查询为用户提供了更加灵活的查询方式,通过参数来设计查询准则,由用户输入查询条件并根据此条件返回查询结果。第5页/共102页4操作查询 操作查询是指在查询中对源数据表进行操作,可以对表中的记录进行追加、修改、删除和更新。操作查询包括删除查询、更新查询、追加查询和生成表查询。5SQL查询 SQL是指使用结构化查询语言SQL创建的查询。用户

4、可以使用查询设计器创建查询,还可以使用SQL语句创建查询,实现对数据的查询和更新操作。第6页/共102页 查询共有五种视图,分别是设计视图、数据表视图、SQL视图、数据透视表视图和数据透视图。(1)设计视图 设计视图就是查询设计器,通过该视图可以创建除SQL之外的各种类型查询。(2)数据表视图 数据表视图是查询的数据浏览器,用于查看查询运行结果。4.1.3 查询视图第7页/共102页(3)SQL视图 SQL视图是查看和编辑SQL语句的窗口,通过该窗口可以查看用查询设计器创建的查询所产生的SQL语句,也可以对SQL语句进行编辑和修改。(4)数据透视表视图和数据透视图 在数据透视表视图和数据透视图

5、中,可以根据需要生成数据透视表和数据透视图,从而对数据进行分析,得到直观的分析结果。第8页/共102页 在Access中,创建查询的方法主要两种,使用查询设计视图创建查询和使用查询向导创建查询。 1使用查询设计视图创建查询 使用查询设计视图创建查询首先要打开查询设计视图窗口,然后根据需要进行查询定义,具体操作步骤如下:(1)打开数据库。4.1.4 创建查询方法第9页/共102页(2)选择“创建”选项卡的“查询”组,单击“查询设计”按钮,打开“查询设计器”窗口,如图4-1所示。 第10页/共102页查询设计器窗口由两部分组成,上半部分是数据源窗口,用于显示查询所涉及的数据源,可以是数据表或查询,

6、下半部分是查询定义窗口,也称为QBE网格,主要包括以下内容:字段:查询结果中所显示的字段。表:查询的数据源,即查询结果中字段的来源。排序:查询结果中相应字段的排序方式。显示:当相应字段的复选框被选中时,则在结构中显示,否则不显示。条件:即查询条件,同一行中的多个准则之间是逻辑“与”的关系。或:查询条件,表示多个条件之间的“或”的关系。第11页/共102页(3)在打开查询设计视图窗口的同时打开弹出“显示表”对话框,如图所示。第12页/共102页(4)在“显示表”对话框中,选择作为数据源的表或查询,将其添加到查询设计器窗口的数据源窗口中。在查询设计器窗口的QBE网格中,单击该按钮即可打开下拉列表,

7、通过“字段”列表框选择所需字段,选中的字段将显示在QBE网格中。 第13页/共102页 除此之外,还可以为显示的信息指定标题、调整字段的宽度和改变显示顺序等操作。 调整字段的宽度和改变显示顺序直接用鼠标拖动即可实现。拖动字段的边界可以改变字段的宽度;调整字段显示顺序只需将指定的字段拖曳到指定的位置即可;而为显示的信息指定标题可以在需要指定标题的字段名或表达式的前边输入“标题:”即可。 第14页/共102页(5)在查询设计器窗口的QBE网格中,打开“排序”列表框,可以指定查询的排序关键字和排序方式。排序方式分为升序、降序和不排序三种。(6)使用“显示”复选框可以设置某个字段是否在查询结果中显示,

8、若复选框被选中,则显示该字段,否则不显示。(7)在“条件”文本框中输入查询条件,或者利用表达式生成器输入查询条件。(8)保存查询,创建查询完成 第15页/共102页2使用查询向导创建查询 使用查询向导创建查询,就是使系统提供的查询向导,按照系统的引导,完成查询的创建。 查询向导共有四种类型: 简单查询向导 交叉表查询向导 查找重复项查询向导 查找不匹配项查询向导第16页/共102页操作步骤如下:(1)打开数据库。(2)选择“创建”选项卡的“查询”组,单击“查询向导”按钮,打开“新建查询”对话框,如图4-6所示。图4-6 “新建查询”对话框第17页/共102页(3)在“新建查询”对话框中,选择所

9、需的查询向导,根据系统的引导选择参数或输入相应的信息。(4)保存查询,完成查询创建。第18页/共102页4.1.5 运行查询 查询创建完成后,将保存在数据库中。运行查询后才能看到查询结果。可以通过下面的方法运行查询。(1)在上下文选项卡“查询工具|设计”的“结果”组中单击“运行”按钮。(2)在上下文选项卡“查询工具|设计”的“结果”组中单击“视图”按钮。(3)在导航窗口中选择要运行的查询双击。(4)在导航窗口中选择查询对象右单击,在快捷菜单中选择“打开”命令。(5)在查询设计视图窗口的标题栏右单击,在快捷菜单中选择“数据表视图”。 第19页/共102页42 选择查询 选择查询是最常用的查询类型

10、,它能够根据用户所指定的查询条件,从一个或多个数据表中获取数据并显示结果,还可以利用查询条件对记录进行分组,并进行求总计、计数、平均值等运算。 选择查询产生的结果是一个动态记录集,不会改变源数据表中的数据。 第20页/共102页 设计查询时,要确定查询目标。首先要确定查询的数据源,查询的数据源可以是表和已经建立的查询,然后再确定需要显示的字段或表达式。 【实例4-1】在选课管理数据库中,创建以下查询。(1)查询学生的学号、姓名和性别。(2)查询学生的所有信息。(3)查询学生的学号、姓名及所修课程的课程号。(4)查询学生的学号、姓名、选课名称和成绩。4.2.1 简单查询第21页/共102页【操作

11、步骤】打开数据库“选课管理”。 选择“创建”选项卡中的“查询”组,单击“查询设计”按钮,打开查询设计器窗口,在“显示表”对话框中选择“学生”表双击,将学生表添加到查询设计视图的数据源窗口中,如图4-8所示。 第22页/共102页通过字段下拉列表按钮选择字段“学号”、“姓名”和“性别”,这些字段将显示在查询定义窗口中,如图所示。保存查询“学生信息”,完成查询的创建。第23页/共102页 如果查询的数据源是两个或以上的表或查询,在设计查询需要创建数据源之间的连接关系。 查询连接的类型,共分为三种:内部连接、左连接和右连接。(1)内部连接内部连接是指将两个表中连接字段相等的记录提取出来进行合并,从中

12、选取所需要的字段形成一条记录,显示在查询结果中。内部连接是系统默认的连接类型。4.2.2 查询中的连接类型第24页/共102页(2)左连接左连接是指取左表中的所有记录和右表中连接字段相等的记录作为查询的结果。(3)右连接右连接是指取右表中的所有记录和左表中连接字段相等的记录作为查询的结果。 如果查询中使用的表或查询之间没有建立连接关系,那么查询将以笛卡尔积的形式产生查询结果。也就是说,一个表的每一条记录和另一个表的所有记录连接构成新的记录,这样就会在查询结果中产生大量的数据。第25页/共102页 在实际应用中,经常查询满足某个条件的记录,这需要在查询时进行查询条件的设置。例如,查询所有“女同学

13、”的记录,查询职称为“教授”的教师的信息等等。 通过在查询设计视图中设置条件可以实现条件查询。 查询中的条件通常使用关系运算符、逻辑运算符和一些特殊运算符来表示。 4.2.3 查询中条件的设置第26页/共102页1条件的表示(1)关系运算 关系运算符由、=、=、=和等符号构成,主要用于数据之间的比较,其运算结果为逻辑值,即“真”和“假”。如表所示。 关系运算符关系运算符含义含义大于大于=大于等于大于等于小于小于=小于等于小于等于=等于等于不等于不等于第27页/共102页(2)逻辑运算 逻辑运算符由Not、And和Or构成,主要用于多个条件的判定,其运算结果是逻辑值。如表4-2所示。关系运算符关

14、系运算符含义含义Not逻辑非逻辑非And逻辑与逻辑与Or逻辑或逻辑或第28页/共102页(3)其他运算 Access提供了一些特殊运算符用于对记录进行过滤,常用的特殊运算符如表4-3所示。关系运算符关系运算符含义含义In指定值属于列表中所列出的值指定值属于列表中所列出的值Betweenand 指定值的范围在指定值的范围在到到之间之间Is 与与null一起使用确定字段值是否为空值一起使用确定字段值是否为空值Like用通配符查找文本型字段是否与其匹配用通配符查找文本型字段是否与其匹配通配符通配符“?”匹配任意单个字符;匹配任意单个字符;“*”匹配任意多个字匹配任意多个字符;符;“#”匹配任意单个数

15、字;匹配任意单个数字;“!”不匹配指定的字符;不匹配指定的字符;字符列表字符列表匹配任何在列表中的单个字符匹配任何在列表中的单个字符第29页/共102页2查询条件的设置 在查询设计视图中,设置查询条件应使用QBE网格中的条件选项来设置。首先选择需设置条件的字段,然后在“条件”文本框中输入条件。条件的输入格式与表达式的格式略有不同,通常省略字段名。 如果有多个条件,且涉及到不同的字段,则分别设置相应字段的条件。如果两个条件之间and运算符连接,则输入的信息放在同一行中;如果两个条件之间or 运算符连接,则输入的信息放在不同行中。 第30页/共102页3 查询举例【实例4-2】在教学管理数据库中,

16、创建以下查询。(1)查询1985年以后出生的学生的学号、姓名和出生日期。(2)查询家庭住址在“海淀区”的同学的姓名和家庭住址。(3)查询学号前2位是“05”或“06”的同学的姓名和专业。 (4)查询职称是“教授”或“副教授”的教师的姓名、性别和职称。 第31页/共102页(5)查询职称为“中级以上”职称的教师的姓名、性别和职称。(6)查询选修“C程序设计”课程的学生的学号、姓名和成绩。(7)查询“高等数学”大于90分或“计算机基础”大于85的同学的姓名、课程和成绩。(8)查询未参加考试的同学的学号、姓名和课程名称。第32页/共102页【操作步骤】以(3)和(6)为例。(3)查询学号前2位是“0

17、5”或“06”的同学的姓名和专业。 打开数据库“选课管理”,选择“创建”选项卡的“查询”组,单击“查询设计”按钮,打开查询设计器窗口,将“学生”表添加到查询设计视图的数据源窗口中。 将字段“学号”、“姓名”和“专业”添加到查询定义窗口中,同时将学号字段的“显示”复选按钮取消;对应“系号”字段,在“条件”行输入“like 056* ”,如图所示。第33页/共102页保存查询,运行结果如图所示。第34页/共102页(6)查询选修“C程序设计”课程的学生的学号、姓名和成绩。 打开查询设计器窗口,将“学生”、“课程”和“选课”表添加到查询设计视图的数据源窗口中。 将学生表中的字段“学号”、“姓名”、课

18、程表中的字段“课程名称”和“选课”表中的字段“成绩”依次添加到查询定义窗口中,同时将“课程名称”字段的“显示”复选按钮取消;对应“课程名称”字段,在“条件”行输入“=C程序设计”,如图所示。第35页/共102页第36页/共102页保存查询。运行结果如图所示。 第37页/共102页4.2.4 在查询中进行计算和统计 在设计选择查询时,除了进行条件设置外,还可以进行计算和分类汇总。 例如,计算学生的年龄、计算教师的工龄、统计教师的工资、按性别统计学生数、按系别统计教师的任务工作量等,这需要在查询设计时使用表达式及查询统计功能。第38页/共102页1表达式 用运算符将常量、变量、函数连接起来的式子称

19、为表达式,表达式计算将产生一个结果。可以利用表达式在查询中设置条件或定义计算字段。 Access系统提供了算术运算、关系运算、字符运算和逻辑运算等4种基本运算表达式第39页/共102页2系统函数 函数是一个预先定义的程序模块函数。包括标准函数和用户自定义函数。 标准函数可分为数学函数、字符串处理函数、日期/时间函数、聚合函数等,其中聚合函数可直接用于查询中。函数及功能列表如表4-5所示。第40页/共102页函数名称函数名称功能功能Sum计算指定字段值的总和。适用于数字、日期计算指定字段值的总和。适用于数字、日期/时间、货币型字段时间、货币型字段Avg计算指定字段值的平均值。适用于数字、日期计算

20、指定字段值的平均值。适用于数字、日期/时间、货币型字段时间、货币型字段Min计算指定字段值的最大值。适用于文本、数字、日期计算指定字段值的最大值。适用于文本、数字、日期/时间、货币时间、货币型字段型字段Max计算指定字段值的最小值。适用于文本、数字、日期计算指定字段值的最小值。适用于文本、数字、日期/时间、货币时间、货币型字段型字段Count计算指定字段值的计数。当字段中的值为空(计算指定字段值的计数。当字段中的值为空(null)时,将不计算)时,将不计算在内在内Var计算指定字段值方差值。适用于文本、数字、日期计算指定字段值方差值。适用于文本、数字、日期/时间、货币型时间、货币型字段字段St

21、Dev计算指定字段值标准差值。适用于文本、数字、日期计算指定字段值标准差值。适用于文本、数字、日期/时间、货币时间、货币型字段型字段First返回指定字段的第一个值。返回指定字段的第一个值。Last返回指定字段的最后一个值。返回指定字段的最后一个值。Expression在字段中自定义计算公式,可以套用多个总计函数在字段中自定义计算公式,可以套用多个总计函数第41页/共102页3查询举例【实例4-3】在选课管理数据库中,创建以下查询。(1)查询学生的学号、姓名、出生日期并计算年龄。(2)统计各系学生的平均年龄。(3)统计各年份出生的学生人数。 (4)统计每位教师的所教课程的总学时。(5)统计“计

22、算机系”教师的课程总学时数。(6)统计学生的课程总成绩和平均成绩。第42页/共102页【操作步骤】 打开数据库“选课管理”,在数据库中选择查询为操作对象,单击“在设计视图中创建查询”选项,打开查询设计器窗口,将查询所需要的表添加到查询设计视图的数据源窗口中。第43页/共102页(1)查询学生的学号、姓名、出生日期并计算年龄 将学生表的字段“学号”、“姓名”、“出生日期”添加到QBE网格中,然后在空白列中输入“年龄: Year(Date()-Year(出生日期)”,其中,Year(Date()-Year(出生日期)是计算年龄的表达式,而“年龄:”用于设置年龄的显示标题,如图所示,保存查询。第44

23、页/共102页(6)统计学生的课程总成绩和平均成绩 将学生表的字段“学号”、“姓名”、选课表的字段“成绩”添加到查询定义窗口中,注意,将成绩字段添加2次。然后在“总计”行中,对应“学号”和“姓名”字段,选择“分组”;对应第1个“成绩”字段,选择“合计”并添加标题“总成绩”,对应第2个“成绩”字段,选择“平均值”并添加标题“平均成绩”,如图所示。第45页/共102页43 交叉表查询 交叉表查询通常以一个字段作为表的行标题,以另一个字段的取值作为列标题,在行和列的交叉点单元格处获得数据的汇总信息,以达到数据统计的目的。 交叉表查询既可以通过交叉表查询向导来创建,也可以在设计视图中创建。第46页/共

24、102页【实例4-4】在选课管理数据库中,创建以下交叉表查询。(1)查询学生的各门课成绩。(2)查询教师的所授课程及学时。(3)查询各系男、女教师的人数。(4)查询学生单科成绩、平均成绩及总成绩。第47页/共102页【操作步骤】以(1) 为例 打开数据库“选课管理”,选择“创建”选项卡的“查询”组,单击“查询设计”按钮,打开“查询设计器”窗口。 将学生表、课程表和选课表添加到查询设计视图的数据源窗口中,同时将学生表的字段“学号”、“姓名”、课程表中的“课程名称”以及选课表的字段“成绩”添加到查询定义窗口中。第48页/共102页 选择“查询工具”选项卡的“查询类型”组,单击“交叉表”按钮,查询定

25、义窗口中将出现“总计”和“交叉表”行,首先,在“交叉表”行,对应“学号”和“姓名”字段选择“行标题”、对应“课程名称”选择“列标题”,对应“成绩”字段,选择“值”,然后,在“总计”行,对应“学号”、“姓名”和“课程名称”字段选择“group by”,对应“成绩”字段,选择“First”,如图所示。第49页/共102页第50页/共102页保存查询并运行,运行结果如图所示。图4-43 查询(1)运行结果 第51页/共102页说明(1)在交叉表查询设计时,如果在“交叉表”行中,设置某个字段的选项为“值”,则在“总计”行中可以有多种选择,每个选项都与表4-5的系统函数相对应。如果获取的数据是单一数据,

26、则可以选择“第一条记录”或“最后一条记录”。(2)本案例的(4)是利用交叉查询的结果创建的查询,数据源是已经创建的查询。 第52页/共102页44 参数查询 参数查询是一种动态查询,可以在每次运行查询时输入不同的条件值,系统根据给定的参数值确定查询结果,而参数值在创建查询时不需定义。这种查询完全由用户控制,能一定程度上适应应用的变化需要,提高查询效率。参数查询一般创建在选择查询基础上,在运行查询时会出现一个或多个对话框,要求输入查询条件。 根据查询中参数个数的不同,参数查询可以分为单参数查询和多参数查询。第53页/共102页【实例4-5】在教学管理数据库中,创建以下参数查询。(1)按学号查询学

27、生的所有信息。(2)按系名查询学生的选课成绩。(3)按年级查询学生的姓名、性别和所在系。(4)在最低分和最高分之间查询学生的学号、姓名、以及“高等数学”课程成绩。 第54页/共102页【操作步骤】(2)按系名查询学生的选课成绩 将学生表、选课表、课程表和系部表添加到查询设计视图的数据源窗口中,将学生表的“学号”、“姓名”字段、课程表的“课程名称”、选课表的“成绩”和系部表的“系名称”添加到查询定义窗口中,对应“系名称”字段,在“条件”行输入“输入学生系名:”,如图所示。 第55页/共102页第56页/共102页(4)在最低分和最高分之间查询学生的学号、姓名、以及“高等数学”课程成绩。将学生表、

28、选课表、课程表添加到查询设计视图的数据源窗口中,将学生表的“学号”、“姓名”字段、课程表的“课程名称”、选课表的“成绩”添加到查询定义窗口中,对应“课程名称”字段,在“条件”行输入“高等数学”,对应“成绩”字段,在“条件”行输入“Between 最低分And 最高分”,如图所示。 第57页/共102页第58页/共102页 保存查询并运行,显示第一个“输入参数值”对话框,输入最低分“70”,单击“确定”按钮打开第二个“输入参数值”对话框,输入最高分“90”,单击“确定”按钮,如图4-54所示。系统会显示高等数学成绩介于70 和90之间的学生信息。第59页/共102页说明:(1)在参数查询中,在“

29、条件”行中输入的参数条件实际上是一个变量,运行查询时用户输入的参数将存储在该变量中,执行查询时系统自动将字段或表达式的值与该变量的值进行比较,根据比较的结果显示相应的结果。(2)在查询(4)中,表达式“Mid(学号,1,2)”调用了字符串处理函数Mid(),它的功能是取学号字段的前2位。 第60页/共102页45 操作查询 前面介绍的查询是按照用户的需求,根据一定的条件从已有的数据源中选择满足特定准则的数据形成一个动态集,将已有的数据源再组织或增加新的统计结果,这种查询方式不改变数据源中原有的数据状态。 操作查询是在选择查询的基础上创建的,可以对表中的记录进行追加、修改、删除和更新。操作查询包

30、括删除查询、更新查询、追加查询和生成表查询。 第61页/共102页 删除查询又称为删除记录的查询,可以从一个或多个数据表中删除记录。 使用删除查询,将删除整条记录,而非只删除记录中的字段值。记录一经删除将不能恢复,因此在删除记录前要做好数据备份。删除查询设计完成后,需要运行查询才能将需要删除的记录删除。4.5.1删除查询第62页/共102页【实例4-6】在选课管理数据库中,创建以下删除查询。(1)删除成绩不及格的学生的选课记录。 (2)删除04级学生的记录。 说明: 由于表间存在着关系,在进行删除查询时要注意到表间的关系,若关系完整性设置了级联,当删除一对多关系中“一”方的表中的记录时,那么“

31、多”方表中与之相关联的记录也会被删除。 第63页/共102页 在数据库操作中,如果只对表中少量数据进行修改,可以直接在表操作环境下,通过手工进行修改。 如果需要成批修改数据,可以使用系统提供的更新查询功能来实现。 更新查询可以对一个或多个表中符合查询条件的数据进行批量的修改。4.5.2 更新查询第64页/共102页【实例4-7】在教学管理数据库中,创建以下更新查询。(1)将不及格学生的课程成绩置0。(2)将所有必修课程的学时增加8学时,学分增加0.5学分(假设必修课程的课程编号以字母B开头)。第65页/共102页【操作步骤】 打开数据库“选课管理”,选择“创建”选项卡的“查询”组,单击“查询设

32、计”按钮,打开“查询设计器”窗口。(1)将不及格学生的课程成绩置0 将选课表添加到查询设计视图的数据源窗口中,同时将“成绩”字段添加到查询定义窗口中。选择上下文选项卡“查询工具”的“查询类型”组,单击“更新查询”按钮,则在查询定义窗口中出现“更新到”行。在“条件”行输入“60”,然后在“更新到”行输入0,如图所示。第66页/共102页第67页/共102页保存查询,输入查询名“将不及格学生的课程成绩置0”,查询设置完成。运行查询,系统自动显示更新数据对话框,如图所示。 单击“确定”按钮,满足条件的记录将被自动更新。第68页/共102页(2)将所有必修课程的学时增加8学时,学分增加0.5学分 将课

33、程表添加到查询设计视图的数据源窗口中,同时将“课程号”、“学时”、“学分”字段添加到QBE网格中,然后将“课程号”修改为表达式“Mid(课程号,1,1)”。右单击数据源窗口,在快捷菜单中选择“查询类型|更新查询”,则在QBE网格中出现“更新到”行。对应表达式“Mid(课程号,1,1)”在“条件”行输入“B”,对应“学时”和“学分”字段,在“更新到”行分别输入“学时+8”和“学分+.5”,如图所示。 第69页/共102页保存查询,输入查询名“将所有必修课程的学时学分增加”,查询设置完成。第70页/共102页4.5.3 追加查询 追加查询可以从一个或多个表将一组记录追加到一个或多个表的尾部,可以大

34、大提高数据输入的效率。【实例4-8】在教学管理数据库中,新增加一个新生档案表,其结构与学生表相似,创建追加查询,将新生档案表中的数据追加到学生表中。 第71页/共102页4.5.4生成表查询 生成表查询可以使查询的运行结果以表的形式存储,生成一个新表,这样就可以利用一个或多个表或已知的查询再创建表,从而使数据库中的表可以创建新表,实现数据资源的多次利用及重组数据集合。 【实例4-9】在选课管理数据库中,创建以下生成表查询。(1)查询计算机系学生的学号、姓名和性别并生成学生名单表。(2)查询学生的各门课成绩并生成成绩表。第72页/共102页46 使用向导创建查询 利用查询设计视图可以按照用户的需

35、求设置查询条件,选择需要的字段和表达式,还可以利用查询对源数据表进行操作,这种方法对使用者的要求较高。 如果使用查询向导创建查询,就可以按照Access系统提供的查询向导,按照系统的引导,完成查询的创建。这种方法容易学习和掌握。 查询向导有四种类型:简单查询向导、交叉表查询向导、查找重复项查询向导和查找不匹配项查询向导。第73页/共102页4.6.1简单查询向导 简单查询向导用于创建最简单的选择查询,这种方法操作过程简单易用。【实例4-10】在选课管理数据库中,使用简单查询向导查询课程的基本信息。第74页/共102页4.6.2交叉表查询向导 交叉表查询向导用于创建交叉表查询查询,它的显示数据来

36、源于某个字段的值或统计值。【实例4-11】在选课管理数据库中,使用交叉表查询向导创建查询按系别统计教师各职称的人数。第75页/共102页4.6.3查找重复项查询向导 利用查找重复项查询向导可以查询表中是否出现重复的记录,或者确定记录在表中是否共享相同的值,或对表中具有相同字段的值的记录进行统计等等。例如,学生表中是否有相同的记录,统计职称相同的人数等。【实例4-12】在选课管理数据库中,使用查找重复项查询向导查询是否有同一个学生选课成绩相同的记录。第76页/共102页4.6.4 查找不匹配项查询向导 具有“一对多”的表中,在“一”方的表中的每一条记录,在“多”方可以有多条记录与之对应,但也可以

37、没有任何记录与之对应,使用查找不匹配项查询向导可以查询在一个表中查找与另一个表没有相关记录的记录。【实例4-13】在选课管理数据库中,使用查找不匹配项查询向导创建查询没有选课的学生记录。第77页/共102页 47 SQL查询 SQL查询是使用SQL语言创建的一种查询。SQL(Structured Query Language)结构化查询语言是标准的关系型数据库语言。SQL语言的功能包括数据定义、数据查询、数据操纵和数据控制4个部分。 每个查询都对应着一个SQL查询命令。当用户使用查询向导或查询设计器创建查询时,系统会自动生成对应的SQL命令,可以在SQL视图中查看,除此之外,用户还可以直接通过

38、SQL视图窗口输入SQL命令来创建查询。 第78页/共102页 4.7.1 SQL语言的特点 SQL语言具有以下特点:(1)高度的综合(2)高度非过程化(3)交互式与嵌入式相结合(4)语言简洁,易学易用第79页/共102页 4.7.2 SQL语言的数据定义功能 SQL语言的数据定义功能包括定义表、定义视图和定义索引,具体地说,是指表、视图和索引等对象的创建、修改和删除,在Access中没有视图,这里只介绍定义表和定义索引。1定义基本表 定义基本表使用CREATE TABLE命令,其语法格式为:CREATE TABLE ( ,),第80页/共102页 该语句的功能是,创建一个以为名的,以指定的列

39、属性定义的表结构。其中,是所定义的基本表的名称,它可以由一个或多个属性(列)组成,和用来定义与该表有关的完整性约束条件,这些完整性约束条件将被保存在数据库中,当用户对表中数据进行操作时,系统将自动检查该操作是否违背这些完整性约束条件。第81页/共102页2修改基本表 修改基本表使用ALTER TABLE命令,其语法格式为:ALTER TABLE ADD ,DROP ALTER 该语句的功能是,修改以为名的表结构。其中,ADD子句用于增加新列和新的完整性约束条件。DROP子句用于删除指定的列和完整性。ALTER子句用于修改原有的列的定义,包括列名、列宽和列的数据类型。第82页/共102页3删除表

40、 删除表使用DROP TABLE命令,其语法格式为:DROP TABLE 该语句的功能是,删除以为名的表。4创建索引创建索引使用CREATE INDEX命令,其语法格式为: CREATE UNIQUE INDEX ON (ASC|DESC),ASC|DESC,该语句的功能是,为指定的表创建索引。其中,ASC|DESC是指索引值的排列顺序,UNIQUE表示唯一索引。第83页/共102页5删除索引创建索引使用DROP INDEX命令,其语法格式为:DROP INDEX 该语句的功能是,删除指定的索引。6SQL数据定义实例【实例4-14】使用SQL语言完成下列操作(1)创建一个表:student,它

41、由学号、姓名、性别、年龄和专业5个属性列组成,其中学号和姓名属性不能为空,并且唯一。(2)在student表中增加一个“入学时间”列,其数据类型为日期型。第84页/共102页(3)删除student表中姓名唯一的约束。(4)分别按照姓名字段为student表创建索引,索引名为xmsy。(5)删除姓名索引。【SQL命令】(1)CREATE TABLE student (学号 char(10)NOT NULL UNIQUE,姓名 char(12)NOT NULL UNIQUE,性别 char(2),年龄 int,专业 char(15)(2)ALTER TABLE student ADD入学时间 d

42、ate(3)ALTER TABLE student DROP UNIQUE(姓名)(4)CREATE INDEX xmsy ON student(学号)(5)DROP INDEX xmsy 第85页/共102页 4.7.3 SQL语言的数据操纵功能 SQL的数据操纵包括表中数据更新、数据插入和数据删除等相关操作。1数据更新 数据更新使用UPDATE命令,其语法格式为:UPDATE SET=,= WHERE该语句的功能是,用表达式的值更新指定表中指定列的值。其中,=用表达式的值更新指定列的值。where子句用于设置筛选条件,选择满足指定条件的记录进行数据更新。第86页/共102页2数据插入 数据

43、插入使用INSERT命令,其语法格式为:INSERT INTO (列名1 ,列名2, )VALUES (常量1 ,常量2, )该语句的功能是,将一个新记录插入到指定的表中。其中,INTO子句中的(列名1 ,列名2, )指表中插入新值的列,如果省略该选项,则新插入记录的每一列必须在VALUES子句中有值对应。VALUES子句中的(常量1 ,常量2, )指表中插入新列的值,各常量的数据类型必须与INTO子句中所对应列的数据类型相同,且个数也要匹配。第87页/共102页3数据删除 数据删除使用DELETE命令,其语法格式为:DELETE FROM WHERE 该语句的功能是,删除指定表中满足条件的记

44、录。如果省略where子句,则删除表中的所有数据。 第88页/共102页4SQL数据操纵实例【实例4-15】使用SQL语言完成下列操作(1)在student表中插入一条新记录(08010001,赵丹,男,26,计算机应用)(2)将所有学生的年龄增加1。(3)删除学号为04010001的记录。【SQL命令】(1)INSERT INTO student(学号,姓名,性别,年龄,专业)VALUES (08010001,赵丹,男,26,计算机应用)(2)UPDATE student SET年龄=年龄+1(3)DELETE FROM student WHERE 学号=04010001第89页/共102页

45、4.7.4 SQL语言的数据查询功能 数据查询是SQL的核心功能,SQL语言提供了SELECT语句用于检索和显示数据库中表的信息,该语句功能强大,使用方式灵活,可用一个语句实现多种方式的查询。SELECT语句的格式为:SELECT ALL| DISTINCT , FROM INNER JOINON WHERE GROUP BY HAVING ORDER BY ASC|DESC第90页/共102页该语句的功能是,从指定的表或查询中找出符合条件的记录,按目标列表达式的设定,选出记录中的字段值形成查询结果。其中,ALL| DISTINCT表示记录的范围,ALL表示所有记录,DISTINCT表示不包括重复行的记录。表示查询结果中显示的数据,一般为列名或表达式。FROM子句表示数据源,即查询所涉及的相关表或已有的查询。WHERE子

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论