ACCESS基础教程.ppt
数据库基础,Access 2010教程简介:,Microsoft Office Access是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。最新的计算机二级 Access考试就是用的Access2010版本。,Access的用途体现在两个方面:,一、用来进行数据分析:access有强大的数据处理、统计分析能力,利用access的查询功能,可以方便地进行各类汇总、平均等统计。并可灵活设置统计的条件。比如在统计分析上万条记录、十几万条记录及以上的数据时速度快且操作方便,这一点是Excel无法与之相比的。这一点体现在:会用access,提高了工作效率和工作能力。,Access的用途体现在两个方面:,二、用来开发软件:access用来开发软件,比如生产管理、销售管理、库存管理等各类企业管理软件,其最大的优点是:易学!非计算机专业的人员,也能学会。低成本地满足了那些从事企业管理工作的人员的管理需要,通过软件来规范同事、下属的行为,推行其管理思想。,Access的用途体现在两个方面:,另外,在开发一些小型网站WEB应用程序时,用来存储数据。例如ASP+Access。这些应用程序都利用ASP技术在InternetInformation Services运行比较复杂的WEB应用程序则使用PHP/MySQL或者ASP/Microsoft SQL Server。,Microsoft Access 2010 的特点,,就在于使用简便。Access 2010 让您充分运用信息的力量。您不用是数据库专家,一样可以大显神通。同时,透过新增加的网络数据库功能,您在追踪与共享数据,或是利用数据制作报表时,将可更加轻松无负担,这些数据自然也就更具影响力。,数据模型,数据模型,概念数据模型概念数据模型用来建立信息世界的数据模型,强调语义表达,描述信息结构,是对现实世界的第一层抽象。1)实体:客观存在并且可以相互区别的事物 可以是具体的事物,如一个学生,一本书 也可以是抽象的事物,如一次考试2)实体的属性:用于描述实体的特性。如学生用学号、姓名、性别、年龄等属性描述3)一个实体是若干个属性值的集合。如一个特定的学生用学号、姓名、性别等属性值描述4)实体集:具有相同属性的实体的集合。如若干个学生实体的集合构成学生实体集,数据库概述,实体集之间的联系,概念:两个实体集之间实体的对应关系称为联系(1)一对一联系 如果实体集E1中的每一个实体至多和实体集E2中的一个实体有联系,反之亦然,则称E1和E2是一对一的联系,表示为1:1。例如:实体集校长和实体集学校之间的联系是一对一。,数据库概述,实体集之间的联系,2)一对多联系 如果实体集E1中的每个实体与实体集E2中的任意个实体有联系,而实体集E2中的每一个实体至多和实体集E1中的一个实体有联系,则称E1和E2之间是一对多的联系,表示为1:n,E1称为一方,E2为多方。例如,实体集学校和实体集学生之间是一对多的联系,一方是实体集学校,多方是实体集学生,实体集之间的联系,(3)多对多联系 如果实体集E1中的每个实体与实体集E2中的任意个实体有联系,反之,实体集E2中的每个实体与实体集E1中的任意个实体有联系,则称E1和E2之间是多对多的联系,表示为m:n。例如,实体集学生和实体集课程之间是多对多的关系,E-R图,E-R图:用图形方式表示实体集之间的联系。组成:1)矩形:表示实体集,实体名称写在框内;2)椭圆:表示实体集或联系的属性,框内标明属性的名称;3)菱形:表示实体间的关系,框内注明联系名称;4)连线:连接实体和各个属性、实体和联系,并注明联系种类,即1:1、1:n或n:m。,1:1,1:n,m:n,E-R模型的表示方法实体用矩形表示属性 用椭圆形表示联系 用菱形表示,1:1 1:n m:n,举例:网上成绩查询管理系统的 E-R图,系统功能:学生登陆后,可以查询成绩、给老师留言、下载资源;教师登陆后可以管理任课班级的学生成绩、上传资源、查看学生留言。,学生实体集和课程实体集之间的关系,数据结构,数据结构,规范化的二维表格:任意两行内容不能完全相同 不能有名称相同的列 每一列都是不可分的,即不允许表中还有表 同一列的值取自同一个定义,关系模式:学生(学号,姓名,性别,状态,入学时间,最后登陆时间,登陆次数),关系,关系模式,属性,域,元组,关键字(包括候选键和主键),关系数据库,关系模型的组成-二维表格,关系模型中的常用术语,1元组在二维表中,从第二行起的每一行称为一个元组,在文件中对应一条具体记录。2属性二维表中,每一列称为一个属性,在文件中对应一个字段。3属性名二维表第一行显示的每一列的名称,在文件中对应字段名,例如“姓名”,“性别”等。,关系模型中的常用术语,4属性值行和列的交叉位置表示某个属性的值。5域表示各个属性的取值范围。,关系模型中的常用术语,6表结构表中的第一行,表示组成该表的各个字段名称,各字段取值的类型、宽度等。7关系模式是对关系结构的描述,表示格式:关系名(属性1,属性2,属性3,,属性n)例:student(学号,姓名,性别,年龄),关系模型中的常用术语,6表结构表中的第一行,表示组成该表的各个字段名称,各字段取值的类型、宽度等。7关系模式是对关系结构的描述,表示格式:关系名(属性1,属性2,属性3,,属性n)例:student(学号,姓名,性别,年龄),关系模型中的常用术语,9主键从候选键中指定一个用来标识元组。10外部关键字表中的一个字段不是本表的主关键字或候选关键字,而是另外一个表的主关键字或候选关键字,该字段称为外部关键字,简称外键。例题:在关系score中,“学号”不是score的主键,而是关系student的主键,因此,“学号”称为外键。,关系模型中的常用术语,11主表和从表主表:以外键作为主键的表从表:外键所在的表主表和从表通过外键相关联,关系模型的特点,1)每一列不可再分;2)同一关系中属性(字段)不允许重名3)关系中不允许有完全相同的元组4)关系中交换任意两行的位置不影响数据的实际含义;5)关系中交换任意两列的位置不影响数据的实际含义。,关系的基本运算,1选择从指定的关系中选择满足给定条件的元组组成新的关系。例题:从关系score1中选择数学大于90的元组组成关系S1。S1=数学90(Score1),关系的基本运算,2投影从指定关系的属性集合中选取若干个属性组成新的关系。例题:从关系score1中选择“学号”、“姓名”、“数学”组成新的关系S2。S2=学号,姓名,数学(Score1),关系的基本运算,联接两个关系中的元组按指定条件组合新的关系例题:将score1和score2按相同学号合并,专门的关系运算选择、投影、连接,关系 S1,关系 S2,从指定的关系中选择满足给定条件的元组组成新的关系,从关系的属性集合中选取指定的若干个属性组成新的关系,S2=性别=”男”(S1),S3=学号,姓名,性别(S1),关系 S3,关系 S3,关系S4,S6=学号,课程号,成绩(成绩类型=0(S4),关系S6,S7=S3 S6,关系S7,由E-R图设计关系模型,1)两个实体集 学生(学号,姓名,性别,年龄)课程(课程代码,课程名称,任课教师)2)联系 选修(学号,课程代码,成绩)两个实体集的主键 自身属性,根据概念数据模型设计关系数据模型,网上成绩查询管理系统的 E-R图,一个实体集转换为一个关系模式,实体集的属性就是关系的属性,院系(院系编号,院系名称)班级(班号,班级名,学生数,班主任)学生(学号,登陆密码,姓名,性别,状态,入校时间,毕业时间,退 学时间,注册时间,最后登陆时间,登陆次数)这里“状态”有3种取值:在读、退学、毕业 教师(教师号,登陆密码,姓名,电话,邮箱,QQ号,找回密码问 题,找回密码答案,注册时间,最后登陆时间,登陆次数)课程(课程号,课程名称,学分)课程资源(资源号,资源名,链接地址,更新时间,资源类型,说明)学期(学期号,学期名称,是否当前学期,学期起始时间,学期结束时 间),Access 简介,Access的特点1.具有Office系列的共同功能;2.桌面型的数据库管理系统;3.与其它数据库系统共享数据;4.提供程序设计语言VBA,用于开发应用程序。,Access启动,ACCESS数据库管理系统,Access 2003是Microsoft Office 2003的组件之一,是用户和数据库间的软件接口 使用非常简单 可视化工具提供了大量的向导 快速创建对象及应用程序面向对象的、采用事件驱动,可以与其他数据库相连,使用VBA语言作为其应用程序开发工具可处理多种数据信息Office组件数据、其他DBMS数据,创建数据库和数据表数据完整性控制数据查询,主要内容,Access的启动,1.“开始”-“程序”-Microsoft Access2.在对话框中选“空Access数据库”。3.单击“确定”4.输入数据库名5.单击“创建”,数据库组成,6.4.1 创建数据库和数据表,创建数据库,数据库文件(.mdb)其中包括所有相关数据和管理这些数据的所有对象。,方法:单击【开始】|【所有程序】|【Microsoft Office】|【Microsoft Office Access 2003】启动Access2003 单击【文件】|【新建】建立空数据库 使用模板向导建立各类数据库,创建数据表,每个关系对应建立一个数据表 两方面的工作:设计表结构和输入数据记录。,(1)打开表结构“设计器”,使用设计视图建立数据表的表结构,图6.20 设计视图窗口,(2)依次输入各个字段的名称,指定字段类型,并对每个字段的含义、取值进行注释说明,(1)打开表结构“设计器”,使用设计视图建立数据表的表结构,(2)依次输入各个字段的名称,指定字段类型,并对每个字段的含义、取值进行注释说明,(3)定义表的主键,选中字段后单击工具栏“主键”按钮,(4)保存并命名数据表,(1)双击数据表,打开数据表视图窗口,在数据表视图窗口输入数据记录,(2)依次输入各字段值,完成所有记录的录入,(3)关闭窗口结束,数据完整性控制,通过设置主键,使其取值既不能为空也不能重复,以此保证记录(即实体)的正确性。,通过定义指定字段的“有效性规则”属性,对字段的取值设置约束条件,保证记录的合法性。,是指对存在引用关系的两个关系(数据表)的约束,通过建立引用关系保证数据的一致性。,参照完整性示例,取值参照,只要建立了二者之间的引用关系,就能保证数据的一致性:在选课表中插入一个记录(39078,6,90,0)拒绝修改学生表中的学生学号同步修改选课表中相应学号删除学生表中记录(39001,杨雨潇,男,在读,2007-9-1,2008-7-2,18)提示同步删除选课表中相应记录,关联关系,关联字段,主表,子表,建立student表和sel_course表间的关联关系,(1)打开“关系”窗口,方法?,(2)选择建立关联的表添加到窗口中,(3)将主表的主键拖到子表的外键,建立关联关系,(4)设置参照完整性规则,一对多关系,主键,外键,当主表关联字段被更改时,子表关 联字段也自动随之更改。子表关联字段欲更改的新值若在主表中不存在,则拒绝子表的修改 子表增加一条记录时,若该记录关联字段的取值在主表中不存在,则拒绝子表的操作。,当主表删除某个记录时,子表中与之关联的全部记录一并自动删除。子表删除记录时,不会影响到主表记录。,还有什么用?,(1)利用关联查看多组数据,(2)在子表中输入(插入、修改)数据时保证完整性,(3)据此进行多表查询,school数据库中各表的关联关系,数据查询,【例6.11】创建一个查询,从sel_course(选课)表中查询选修课程成绩不及格的学生的学号、课程号及成绩,查询结果按学号升序排序。查询命名为“查询不及格学生1”。,创建查询?,打开查询设计窗口 选择欲查询的数据表 选择查询字段 输入查询条件。,选择哪些字段显示在查询结果中 查询结果可以指定排序字段 运行查询,查看结果 保存并命名查询,多种查询视图,多种查询类型,从表中检索数据,并对结果排序。还可以对记录分组进行总计、计数、平均 值以及其他类型的计算。,对查询结果按不同的字段逐级分组显示 统计结果 结果显示方式为交叉表方式,即分行标 题、列标题以及统计数据区。,操作查询,指可以重复使用,每次改变查询条件的查询。,【例6.12】查询不及格学生姓名、课程名、成绩,结果按学号升序排序。查询命名为“查询不及格学生2”。,选择查询,依据关联关系建立连接,然后选择需要的字段、记录,【例6.13】查询选修课程中最高分是多少,查询命名为“查询最高分”。,单击工具栏上的,选择查询(汇总),【例6.14】查询选修课程中每位学生各自的最高分、最低分、平均分,查询结果包含学生姓名和最高分数、最低分、平均分。查询命名为“查询每位学生最高分”。,选择查询(分组汇总),【例6.15】统计查询各班不同性别的学生选择各门课程的人数情况。查询命名为“查询选课人数”。显示统计结果时,班级名、性别均作为行标题,课程名称作为列标题。,交叉表查询,需要选择查询类型为“交叉表查询”,【例6.16】查询各班学生在某一范围内的成绩,查询命名为“参数查询学生成绩”。,单击“查询”|“参数”,设置查询参数,参数查询,说明,数据表与查询,查询结果也为二维表形式,但它与数据表对象不同;数据表中存储数据信息,而查询存储查询的规则,即 相应的SQL命令;执行查询即执行SQL命令;可以基于数据表建立查询,也可以基于查询创建其他 查询。,数据库组成,Access数据库:1)Access的文档文件,扩展名为MDB2)由数据表、查询、窗体、报表、宏和模块等对象组成。3)所有对象都保存在的同一个数据库文件中。,数据库组成,1表1)以二维表格保存基本信息,数据库的核心2)为其它对象提供数据3)对具有复杂结构的数据,分别使用多张数据表,这些表之间可以通过相关字段建立关联。,数据库组成,数据库组成,2查询 1)从一个或多个表中查找某些特定的记录2)查询的运行结果以二维表的形式显示3)在数据库中只记录了查询的方式即规则4)可作为窗体、报表等其它组件的数据源,数据库组成,数据库组成,3窗体 1)向用户提供交互界面,更方便地进行数据的输入、输出2)窗体的数据源,可以是一个或多个数据表,也可以是查询。,数据库组成,数据库组成,4报表 1)将数据按指定的格式进行显示或打印2)数据源可以是一张或多张数据表、查询3)建立报表时还可以进行计算,如求和、平均等5页通过Web页将数据存储到指定的文件夹,或将其复制到Web服务器上,以便在网上发布信息。,数据库组成,数据库组成,6.宏宏是由具有宏名的一系列命令组成,用来简化一些需要重复的操作。建好的宏,可以单独使用,或与窗体配合使用。7模块 用Access提供的VBA语言编写的程序,模块通常与窗体、报表结合起来完成完整的应用功能。,数据表结构,数据表的建立和使用,数据表由表结构和记录两部分组成。数据表结构1字段名2数据类型 如文本型、数字型等3字段属性(1)字段大小(2)格式(3)小数位数(4)标题(5)有效性规则4主关键字,建立数据表,建立数据表,1在数据表视图下建立数据表 例题:在数据表视图下建立“成绩”表(p248)2用设计视图建立数据表(p249)例题:在设计视图视图下建立“学生”表 1)设计表结构 2)定义主关键字段 3)命名表及保存 4)输入记录,建立数据表,编辑数据表,1修改表结构在设计视图或数据表视图下进行(1)改字段名、类型、属性(2)插入字段(3)删除字段2编辑记录在数据表视图下进行(1)输入新记录(2)修改原有记录(3)删除记录。,编辑数据表,建立表间关系,目的:实现数据库的参照完整性。例题:在“学生”和“成绩”表间建立关系,“学生”表为主表,“成绩”表为从表:1“工具”-“关系”2选择表或查询3设置完整性4.建立联系后,再打开“学生”表,观察显示的结果,编辑关系对话框,建立表间关系,使用数据表,数据表的使用,在数据表视图下进行1记录排序按某个字段值的升序或降序重新排列记录(1)排序 选择排序关键字。单击工具栏上的“升序”或“降序”按钮(2)恢复排序前的记录顺序“记录”-“取消筛选排序”,筛选,数据表的使用,2.筛选记录筛选记录是指在屏幕上仅仅显示满足条件的记录常用的有按选定内容筛选或内容排除筛选。,查询,查询,查询的类型1设计视图查询在一个或多个基本表中,按照指定的条件进行查找,并指定显示的字段。2简单查询向导按系统的提示设计查询的结果。3交叉表查询用交叉方式的数据表格显示信息。,查询类型,查询的类型,4重复项查询在数据表中查找具有相同字段值的重复记录。5不匹配查询在数据表中查找与指定条件不匹配的记录。建立查询:在设计视图或SQL窗口下显示查询结果:单击工具栏上的“执行”按钮!,设计视图窗口,设计视图窗口的组成,1)字段:查询结果中使用的字段。2)表:该字段所在的表或查询。3)排序:指定是否按此字 段排序4)显示:确定该字段是否 在结果中显示。5)准则:指定对该字段的 查询条件6)或:指定其它查询条件,SQL窗口,课堂训练 实体完整性,例题:“学生”表已将“学号”定义为主键观察以下操作是否允许:1)输入学号为空的记录;2)输入新记录,学号与表中已有记录学号相同结论:实体完整性对表中主键的要求:1)不允许有空值2)不允许出现两条记录的主键值相同,用户定义的完整性,课堂训练 用户定义的完整性,用户定义的完整性是针对具体数据设置约束条件例题:对“学生”表设置约束条件1)“年龄”字段的值设置在16至23之间2)“性别”字段的有效性规则设置为:男 or 女。,参照完整性,课堂训练 参照完整性,参照完整性是两个相关联表之间的操作约束例题:对已建立关联的“学生”表和“成绩”表进行完整性操作,已知:1)主表:学生 主键:学号2)从表:成绩 外键:学号3)已进行的设置:级联更新相关字段 级联删除相关记录,参照完整性,课堂训练 参照完整性,观察以下操作的结果:(1)向“成绩”表输入一条新的记录,其中学号在“学生”表中是不存在的,该操作能否进行?(2)将“学生”表的第三条记录的“学号”字段值改为“990007”,观察“成绩”表的变化;(3)将“学生”表中“学号”字段值为“990004”的记录删除,观察“成绩”表的变化,由两个表建立查询,课堂训练 参照完整性,结论:1)从表中不能引用主表中不存在的实体2)主表学号改变时,从表中的学号自动改变-“级联更新相关字段”。3)主表中删除记录时,从表中与主表学号相同的记录同步删除-“级联删除相关字段”,课堂训练 用两个表的数据建立查询,例题:建立查询,要求:1)数据源来自“学生”表和“成绩”表2)结果中包含四个字段,分别是“学号”,“姓名”,“课程”和“成绩”3)只显示成绩不低于90的记录。,分类汇总,课堂训练 用查询对数据进行分类汇总,例题:用学生表创建查询,分别计算男生和女生的平均年龄在设计视图窗口设置如下的准则:1)单击工具栏上的“汇总”按钮;2)在“性别”对应的总计行中,选择“Group By”,表示按“性别”分组;3)在“年龄”对应的总计行中选择“Avg”表示计算平均值,准则和结果,动手练习:建立一个学生数据库,并向该数据库中添加6个数据表,分别为:课程表、开课计划表、选课成绩表、学生表、教师表、系部表等。这几个表的字段分别如下所示:课程表(课程编号、课程名称、课程类别)说明:主键字段是课程编号,数字类型,整型,必添字段,课程名称,文本性,长度为50,必添字段,不允许空白字符串课程类别:文本性,长度为10,开课计划表(选课代码、课程班级、课程编号、教师编号、时间)说明:主键字段是选课代码,数字类型,整型,不允许空白字符串课程班级,文本型,长度为20,必添字段,不允许空白字符串课程编号,数字类型,长度为4,必添字段,不允许空白字符串教师编号,数字类型,长度为5,必添字段,不允许空白字符串时间,日期/时间型,设置输入掩码使输出格式为08年3月2日星期5,选课成绩表(选课代码、学号、平时成绩、考试成绩、总评成绩、成绩等级)说明:选课代码,数字类型,整型,必填字段学号,数字类型,整型,必填字段平时成绩,数字类型,单精度,小数位数2考试成绩,数字类型,单精度,小数位数2总评成绩,数字类型,单精度,小数位数2成绩等级,文本,长度为2,学生表(学号、姓名、性别、电话)说明:学号,主键,数字类型,长度为5,必填字段姓名,文本类型,长度为20,必填字段,不允许为空性别,文本类型,长度为2,进行有效性规则的设定及有效性文本的设定,默认为男电话,文本型,长度为13,输入掩码属性定义为9000-90000000;0;#,教师表(教师编号、系部编号、姓名、性别、职称)说明:教师编号,数字类型,长度为4,主键,必填字段系部编号,数字类型,整型,不允许为空姓名,文本类型,长度20,不允许为空性别,文本类型,长度2,默认为男,不允许为空职称,文本类型,长度8,系部表(系部编号、系部名称、负责人、联系电话)说明:系部编号,数字类型,整型系部名称,文本类型,50,不允许为空负责人,文本类型,50联系电话,文本类型,长度11,操作要求:立表结构后,立即输入6个记录的数据。分别查看该表的结构和记录。修改开课计划表的时间为,日月均以2位数字显示建立相关表的关连关系建立各种查询查询1:点击工具栏,选择计数查询2:右击“条件”,选“生成器”,“操作符”,“比较”,“between”查询3:,第3章 查 询,【本章主要掌握内容】查询的基本概念查询的功能与分类查询的创建与设计SQL查询,第 一 节查 询 的 概 述,在设计数据库时,常常把数据分类,并分别存放在多个表中,但在使用时需要检索一个或多个表中符合条件的数据。查询实际上就是将这些分散的数据再集中起来。,学生表,成绩表,课程表,查询结果,一、查询的概念查询是根据一定的条件,从一个或多个表中提取数据并进行加工处理,返回一个新的数据集合。利用查询可以实现数据的统计分析与计算等操作。查询结果可以作为其他查询、窗体、报表的数据源。查询是一张“虚表”,是动态的数据集合。,查询主要有以下几个方面的功能1)选择字段和记录选择字段:在查询的结果中可以只含有表中的部分字段。,选择记录:在查询的结果中,只含有符合指定条件的记录。,2)编辑记录 即利用查询添加、修改和删除表中的记录。3)统计和计算 即在查询中进行各种统计计算,也可以建立一个计算字段来保存计算的结果。,4)建立新表利用查询的结果创建一个新表。5)为其他数据库对象提供数据源 即以查询的结果作为查询、窗体或报表的数据源。,二、查询的种类 在Access 2010中,可以创建5种类型的查询:1、选择查询是根据指定的条件,从一个或多个表中获取数据并显示结果。选择查询可以对记录进行分组,并且对分组的记录进行求和、计数、求平均值以及其它类型的计算。选择查询产生的结果是一个动态的记录集,不会改变源数据表中的数据。,2、交叉表查询交叉表查询是对基表或查询中的数据进行计算和重构,以方便分析数据。能够汇总数字型字段的值,将汇总计算的结果显示在行与列交叉的单元格中。,3、参数查询是一种特殊的选择查询,即根据用户输入的参数作为查询的条件。输入不同的参数,将得到不同的结果。执行参数查询时,将会显示一个对话框,以提示输入参数信息。参数查询可作为窗体和报表的基础。,4、操作查询查询除了按指定的条件从数据源中检索记录外,还可以对检索的记录进行编辑操作。操作查询可以分为:删除查询 从一个或多个表中删除一组符合条件的记录。更新查询 对一个或多个表中的一组符合条件的记录进行批量修改某字段的值。,追加查询 将一个或多个表中的一组符合条件的记录添加到另一个表的末尾。生成表查询 将查询的结果转存为新表。,5、SQL查询SQL(Structured Query Language)是一种结构化查询语言,是数据库操作的工业化标准语言,使用SQL语言可以对任何数据库管理系统进行操作。所谓的SQL查询就是通过SQL语言来创建的查询。在查询设计视图中创建任何一个查询时,系统都将在后台构建等效的SQL语句。大多数查询功能也都可以直接使用SQL语句来实现。有一些无法在查询设计视图中创建的SQL查询称为“SQL特定查询”。,SQL特定查询包括:联合查询 联合查询是将多个表或查询中的字段合并到查询结果的一个字段中。使用联合查询可以合并多个表中的数据,并可以根据联合查询生成一个新表。传递查询 传递查询可以直接将命令发送到ODBC数据库服务器中,而不需要事先建立链接。利用传递查询可以直接使用其它数据库管理系统中的表。,P154,数据定义查询 利用数据定义查询可以创建、删除或更改表,或者在数据库表中创建索引。子查询 是包含在另一个查询之内的SQL-SELECT语句,即嵌套在查询中的查询。,几点说明:创建传递查询、数据定义查询和联合查询不能在设计视图中创建,必须直接在SQL视图中输入相应的SQL语句。创建子查询可以直接在SQL视图中输入相应的SQL语句,或在设计视图的【字段】或【条件】行中输入SQL语句,即将子查询作为查询的条件。,选择查询参数查询交叉表查询操作查询 SQL查询,查询类型,删除查询更新查询追加查询生成表查询,联合查询传递查询数据定义查询子查询,三、查询视图 查询有5种视图,分别是:设计视图 数据表视图 SQL视图 数据透视表视图 数据透视图视图,设计视图 即为查询设计器,通过该视图可能创建除SQL之外的各种类型的查询。数据表视图 是查询的数据浏览器,用于查看查询运行的结果。SQL视图 是查看和编辑SQL语句的窗口,用于查看和编辑用查询设计器创建的查询所产生的SQL语句。数据透视表视图和数据图视图 在此两种视图中,可以根据需要生成数据透视表或数据透视图,从而得到直观的数据分析结果。,四、创建查询的方法(界面方法)创建查询(界面方法)有2种方法:使用查询设计视图创建查询 使用查询向导创建查询,1、使用查询设计视图创建查询 使用查询设计视图创建查询首先要打开查询的设计视图窗口,然后根据需要进行查询的定义。操作步骤:打开数据库在【创建】选项卡的【查询】组中单击【查询设计】按钮,打开查询设计器窗口在查询设计器窗口中定义查询保存查询,查询的设计视图分为上下两部分:上半部分 用于显示查询的数据源(包括它们之间的关系)下半部分 是定义查询的表格,表格的列对应查询中的一个字段;行对应字段的属性或要求。字段查询结果中所显示的字段表查询数据源,即字段的来源排序查询结果中相应字段的排序方式显示设置在数据表视图中是否显示该字段条件查询条件(同行之间为“与”关系)或查询条件(不同行之间为“或”关系),【例1】创建一个查询,要求能够显示“教师表”中所有记录的“姓名”、“性别”、“出生日期”、“工作日期”和“毕业学校”;(教师表)在上述查询的基础上,对记录进行排序,要求:按毕业学校降序排序;毕业学校相同的按出生日期的先后顺序排序;只显示上述查询中已退休的女教师(按60岁退休)和毕业学校为南京大学的教师。,在查询的设计视图中,可以为显示的信息指定标题、调整字段的宽度和改变显示顺序的操作,2、使用查询向导创建查询 Access 2010提供了4种类型的查询向导:简单查询向导 交叉表查询向导 查找重复项查询向导 查找不匹配项查询向导,(1)创建基于单个数据源的查询【例2】利用查询向导创建一个查询,要求能够显示“教师”中每个院系教师的工资总额、平均工资、最高工资和最低工资。(教师)操作步骤:在【创建】选项卡的【查询】组中单击【查询向导】按钮,打开【新建查询】窗口在【新建查询】窗口中选择需要创建查询向导根据系统的引导选择参数或输入相应的信息 选择数据源(表或查询)及字段 选择明细查询或汇总查询 明细查询:显示每条记录的每个字段 汇总查询:对数值字段进行汇总统计保存查询,【例3】利用查询向导创建一个查询,要求能够显示教师表中所有记录的“姓名”、“性别”、“出生日期”、“工作日期”和“毕业学校”。(教师表)操作步骤:在【创建】选项卡的【查询】组中单击【查询向导】按钮,打开【新建查询】窗口在【新建查询】窗口中选择需要创建查询向导根据系统的引导选择参数或输入相应的信息 选择数据源(表或查询)及字段保存查询,(2)创建基于多个数据源的查询【例4】查找每名学生的选课成绩,并且显示“学号”、“姓名”、“课程名称”和“成绩”4个字段。(学生表、课程表和成绩表)分析:这是一个涉及多个数据源的查询成绩来自于cj表学号和姓名来自于xs表,且通过xh字段与cj表相关联课程名称来自于kc表,且通过kcdm字段与cj表相关联,使用查询向导创建查询几点说明:不能对记录进行筛选和排序 不能改变查询中字段的顺序 允许对数值字段进行汇总统计 允许按指定日期范围分组汇总,汇总查询必须包含且只能包含汇总统计的数值型字段和用于汇总依据的分组字段。其它字段的添加将无法得到期望的汇总效果,五、运行查询 查询创建完成后,将保存于数据库中。运行查询后,才能看到查询的结果。通过以下方法之一,可以运行查询:在查询的设计视图下,单击【查询工具/设计】选项卡【结果】组中的【运行】按钮 在查询的设计视图下,单击【查询工具/设计】选项卡【结果】组中的【视图】按钮 右击查询的设计视图标题栏,并在快捷菜单中选择【数据表视图】命令 双击导航窗口中要运行的查询 右击导航窗口中要运行的查询,并在快捷菜单中选择【打开】命令,第 二 节选 择 查 询,选择查询是最常用的查询类型,它是根据用户所指定的查询条件,从一个或多个数据源表中获取数据并显示结果。选择查询可以对记录进行分组,并进行各种统计,如:求和、计数、求平均值等。选择查询产生的结果是一个动态的记录集,不会改变数据源中的数据。,一、基于单数据源表的查询 设计单数据源表查询时,主要的操作是:确定查询的数据源(表或已建立的查询)确定查询中要显示的字段或表达式,【例5】查看学生表中所有学生的信息,要求显示表中所有字段。(学生表)操作步骤:打开查询的设计视图在打开窗口的上半部添加数据源表在打开窗口的下半部添加查询中要显示的字段保存已创建 的查询,表中的“*”表示所有字段。可以在下部窗格中添加或删除字段。鼠标拖动下部窗格中的字段,可以改变字段的显示位置。,SELECT 学生表.*FROM 学生表SELECT 学生表.xh,学生表.xm,学生表.xb,学生表.csrq FROM 学生表,【例6】查询全校教师的基本工资情况。要求输出教师的工号、姓名、院系名称和基本工资。按院系名称升序排序,同一个系的教师按基本工资的降序排序。(教师)操作步骤:打开查询设计视图 选择数据源 在设计表格中设置字段、表、排序、条件等,SELECT 教师.工号,教师.姓名,教师.院系名称,教师.基本工资FROM 教师ORDER BY 教师.院系名称,教师.基本工资 DESC;,【例7】查询学生每门课程成绩情况,要求输出姓名、课程名称和成绩。(学生表、成绩表和课程表)【分析】姓名存储于学生表中课程名称储存于课程表中成绩存储于成绩表中因此本查询的数据源涉及三张表:学生表、课程表和成绩表,二、基于多数据源表的查询,SELECT 学生表.XM,课程表.KCMC,成绩表.CJFROM 学生表 INNER JOIN(课程表 INNER JOIN 成绩表 ON 课程表.KCDM=成绩表.KCDM)ON 学生表.XH=成绩表.XH;,如果查询的数据源是两个或两个以上的表(或查询),则在设计查询时需要创建数据源之间的连接关系。如果相关联的表已经按照公共字段创建了索引,则在查询视图中可以看到作为数据源的表(或查询)之间已经通过相关字段建立了连接。如果相关联的表未按照公共字段创建索引,则需要在相关表之间建立连接。,Access有3种连接类型:内连接 左连接 右连接,内连接(INNER JOIN)只包含来自两张表的联接字段相等的记录。,Xs.xh=Cj.xh,左连接(LEFT JOIN)包括左表中所有记录和右表中联接字段相等的记录。,Xs.xh=Cj.xh,右连接 包括右表中所有记录和左表中联接字段相等的记录。,Xs.xh=Cj.xh,注意:如果进行多表查询时,所使用的表或查询之间没有建立连接关系,则查询将以笛卡尔积的形式,即左表中的每一条记录均与右表所有记录合并,形成一条记录。也就是说,会在查询结果中产生大量的数据,而这样的结果是没有任何意义的。,双击表的关系连线可以编辑表之间的联接属性,包括:联接的字段和连接的类型。,内连接,左连接,右连接,只包括两个表中联接字段相等的行(内连接,系统的默认选择)(以学生表和成绩表为例查看不同联接类型的效果)SELECT 学生表.XH,学生表.XM,成绩表.KCDM,成绩表.CJFROM 学生表 INNER JOIN 成绩表 ON 学生表.XH=成绩表.XH;,包括左表中的所有记录和右表中联接字段相等的那些记录(左连接)SELECT 学生表.XH,学生表.XM,成绩表.KCDM,成绩表.CJFROM 学生表 LEFT JOIN 成绩表 ON 学生表.XH=成绩表.XH;,包括右表中的所有记录和左表中联接字段相等的那些记录(右连接)SELECT 学生表.XH,学生表.XM,成绩表.KCDM,成绩表.CJFROM 学生表 RIGHT JOIN 成绩表 ON 学生表.XH=成绩表.XH;,三、条件查询 在实际的查询中,经常需要查询满足某个条件的记录。带条件的查询需要通过设置查询条件来实现。查询条件是运算符、常量、字段值、函数以及字段名和属性等任意组合的关系表达式,其运算结果是一个逻辑值。,(1)运算符算术运算符,【例】125+100/5 2 6*2/(2+1)单价*0.8,关系运算符,关系运算符主要用于数据之间的比较,其运算的结果是一个逻辑值:True或False。各关系运算符的运算级别相同。【例】3 8xb=男 5+2=张 工作日期 出生日期,P117,逻辑运算符,逻辑运算符主要用于多个条件的判断,其运算结果仍然是一个逻辑值。逻辑运算符运算级别依次为:Not、And、Or,逻辑运算符的真值表如下所示:,True True,True False,False True,False False,False True True,False False True,True False True,True False False,特殊运算符 特殊运算符与比较运算相关,也是根据是否符合运算符的限定条件返回逻辑值True或False。,几点说明:所谓的Null是指该字段中没有输入任何值。当在文本字段中输入了空字符串后,表中也无任何显示,但该字段并不是Null值。Access提供的通配符有:?表示任意一个字符*表示任意多个字符#表示任意一个数字位 字符表表示在字符表中的单一字符!字符表表示不在字符表中的单一字符,方括号内字符表中的各个字符间用“,”隔开字符表可以设置一个范围,用连字符“-”分隔范围的下界和上界。如:1-5、!a-d,字符串运算符 字符串运算符具有连接字符串的功能。,【例】ABC+123 ABC&123.4#2011-10-01#&12 123+50.4 ABC+123.4#2011-10-01#+20 100+200 100&200,ABC123,ABC123.4,2011-10-0112,173.4,出错,2011-10-21,300,100200,在各类运算符混合运算的表达式中,各运算符的运算级别有高低之分:,字符串运算符,关系运算符,【例】NOT 5 12/6 AND A+B 2 AND AB AC NOT.T.AND.T.F.AND.T.F.,数值运算符,逻辑运算符,【例】用文字表示使以下条件表达式为“真”的条件:学生表中:性别=-1 And 系名=信息工程学院 信息工程学院中所有的男生 性别=-1 Or 系名=信息工程学院 所有的男生以及信息工程学院中所有的学生教师表中:性别=0 And 职称=教授 Or 民族 汉族 女性教授以及非汉族教师 性别=0 And(职称=教授 Or 民族 汉族)女性教授以及女性非汉族教师,(2)条件