数据库技术基础及应用.ppt
第十章 数据库技术基础及应用,二十一世纪是一个信息时代,人类已进入到一个充分利用信息资源的社会。随着计算机技术及数据库技术的不断发展,数据库技术已广泛应用于信息管理的各个领域。因此,掌握好一门数据库技术是非常必要的。目前,市场上流行的关系型数据库管理系统(DBMS)有好多种,如:Visual Foxpro、Access、SQL Server、Oracle、Informix、Sybase等。Microsoft Access 2000数据库管理系统是Mirrosoft公司Office办公软件的一个组件,是一个组织、管理和处理中、小型数据的数据库管理系统。它的界面友好、可视性强,具有易学易懂、使用方便等特点。,1.1 数据库管理系统(DBMS)1数据库管理系统的定义数据库管理系统(DBMS)是一种组织、储存、管理和处理数据的软件系统,是开发信息管理应用系统的核心和平台,它为实现数据库和数据库管理提供了方法和手段。数据处理是指利用计算机对各种形式(字符、数值、声音及图形、图像、表格)的数据进行采集、加工、存储、计算、分类、检索和传输等一系列活动的总和。数据处理的目的,就是从大量的原始数据中,提取产生对人们有价值的信息,使得人们能方便而充分地利用信息资源。我们可以将数据处理分为两个层次:一是数据的收集、分类、组织、编码、储存、检索、传输和维护等操作,称为基本的数据管理操作。二是加工、计算和输出等操作。随着管理对象的不同,其操作要求是千差万别的。这些操作称为应用操作,由应用程序来实现。,一、数据库的基础理论,2数据库管理系统的特点 数据管理技术经历了人工管理阶段、文件管理阶段到数据库管理阶段的发展过程。那么,数据库管理有什么特点呢?(1)数据的结构化 数据的结构化是指描述实体的数据有一定的结构形式。因此,数据表所描述的数据不仅是一个独立的数据。而且,还可以描述数据与数据之间的联系。数据的结构化,使得数据表与数据表之间可以建立关联。减少了数据的重复,也避免了数据的不一致性。(2)数据的独立性 数据的独立性是指数据表中的数据组织和存取方法与应用程序之间不存在相互依赖的关系,它们之间是彼此独立的。也就是说,数据表与应用程序之间不会因为一方的改变而需要修改另一方。从而,大大地降低了应用程序的开发成本和维护费用。,(3)数据的共享性 数据的共享性是指不同的应用程序可以使用同一个数据表,可以同时存取同一数据。数据表中的数据不仅可供现有的各应用程序共享,而且,还可以为新开发的应用程序使用。(4)最小的数据冗余度 数据冗余度最小是指存储在数据表中的重复数据尽可能的少。由于数据表中的数据具有结构化和独立性的特点,从而,实现数据的统一存放和集中控制,减小数据冗余度。,(5)数据的完整性 保证数据在数据表中正确的特性称为数据的完整性。在建立数据表时候可以通过建立一些约束条件来保证输入数据的正确。当设置了约束条件,就可以自动地拒绝错误的数据。数据的完整性分为实体的完整性、域的完整性和参照完整性。实体的完整性保证数据表中记录的唯一特性,域的完整性保证记录字段取值的正确和有效性。(6)并发使用和数据的一致性 数据库中的数据是共享的,允许多个用户同时使用相同的数据。因此,必须保证各个用户之间对数据的操作不发生矛盾和冲突,保证数据的一致性和正确性。数据库管理系统(DBMS)通过数据库中的表、查询、窗体、报表、数据访问页、宏和模块等七个对象来完成数据库管理系统的功能。,3数据模型与数据库管理系统分类 数据模型是数据库中数据的存储方式,是数据库管理系统的核心和基础。每一种数据库管理系统都是基于某种数据模型的。数据库分类是根据数据模型来划分的,常见的数据模型有层次、网状和关系三类模型。(1)非关系型模型 第一代数据库管理系统是非关系型,主要包括层次和网状两种模型。1)层次模型层次模型是一棵倒立的树。在数据库中满足以下条件的数据模型称为层次模型。有且仅有一个结点无父结点,这个结点称为根结点。其他结点有且仅有一个父结点。在层次模型中,数据库应用系统要通过指针链在数据库中查询数据。自关系型数据库管理系统兴起后,目前已被淘汰。,2)网状模型网状模型是一个网络。在数据库中,满足以下两个条件的数据模型称为网状模型。允许一个以上的结点无父结点。一个结点可以有多于一个父结点。非关系型的数据库管理系统的结构复杂,使用难度较高。和层次模型一样要通过指针链在数据库中查询数据。自关系型数据库管理系统兴起后,非关系型数据库管理系统已被淘汰。,(2)关系型模型 关系模型(Relational Model)的所谓“关系”是有特定含义的。广义地说,任何数据模型都可以描述一定事物之间的关系。关系模型的所谓“关系”虽然也适用于这种广义的理解,但同时又特指那种虽具有相关性而非从属性的平行的数据之间,按照某种序列排列的集合关系。关系模型的最大优点就是简单。在关系模型中,数据的逻辑结构实际上就是一个满足一定条件的二维表。每一个关系就是一个二维数据列表,表示一个实体集。用户只需要用简单的SQL语句就可以对数据库进行操作。关系模型具有结构简单、操作方便、数据描述统一等优点。关系模型的主要特点有:关系中每一数据项不可再分,是最基本的单位。每一列数据项是同属性的,各列的排列顺序是任意的,关系中不允许有相同的列名。每一行记录由一个事物的诸多属性项构成一个实体,不允许有相同的记录。也就是说,必须有至少一个关键字段,而列和行的排列顺序可以是任意的。,4常见的数据库管理系统 关系型数据库管理系统有很多,目前较为流行的是Microsoft Access、SOL Server、Oracle、Visual Foxpro等。下面对四种数据库管理系统作一个简单的介绍。Microsoft Access是Microsoft Office软件包中的一个重要组件。随着Windows操作系统的升级,其功能越来越强大,适用于中、小型数据库应用系统。SOL Server是Microsoft公司开发的面向高端的数据库管理系统,适用于中、大型数据库应用系统。Oracle是目前功能最强大的数据库管理系统,适用于大型数据库应用系统。Visual Foxpro是一个相对简单的数据库管理系统。它的优点是自带编程工具,Visual Foxpro提供了面向对象的、结构化的程序设计语言,在Visual Foxpro中就可以编写应用程序。目前,仍然有许多的用户。,1.2 数据库 数据库(Data Base)是按照一定的组织结构存储在计算机中的相关数据的集合;是一个组织、建立、管理相关数据表、查询、窗体、报表、页、宏和模块的管理工具;是实现数据库功能的操作平台。当然,不同的数据库管理系统,其数据库管理的相关对象会有所不同,但数据表、查询是最基本的管理对象。例如,在Access中,用户就是通过图10-1“数据库”窗口来组织、建立和管理相互关联的数据表、查询、窗体、报表、页、宏和模块。,图10-1“数据库”窗口,1.3 数据表1数据表的定义数据表是一组相关数据按行和列排列的二维表格,通常用来描述一个实体集。数据表是关系型数据库管理系统中处理数据的数据源。在Access中表是从属于数据库的,是数据库必备的最基本的对象。二维表格要建立为一个数据表,必须保证任意二行的数据不能完全相同,也就是说,必须有至少一个关键字段,而列和行的排列顺序可以是任意的。2数据表的有关概念如图10-2“学生档案表”所示,“学生档案表”用来描述一个学生实体集。数据表中的每一列称为字段,通常用字段来描述实体在某一方面的属性。字段用字段名、数据类型、字段宽度来描述。字段的每个值称为数据项,字段的取值范围称为域。数据表的每一行称为一个记录或元组,它是字段的集合,用来描述一个实体。,图10-2 学生档案表,1.4 数据库应用系统数据库应用系统(DBS)是一个在计算机及数据库管理系统的支持下,由应用程序对数据表中的数据进行处理的应用系统。数据库应用系统(DBS)通常由数据库管理系统、数据库、数据库应用程序以及支持数据库运行的其他软硬件和相关人员组成。数据库是作为后台数据源存放在服务器中,是数据库应用系统的数据源和管理对象。而应用程序是用高级语言开发的,作为用户端的前台界面。数据库应用系统的开发工具很多,目前常用的有Visual Basic、Visual C+、Java、Delphi、PwerBuilder等高级语言。各种高级语言都具有与数据库的通信接口,Visual Basic语言默认的数据库是Access数据库。数据库应用系统的开发人员不仅要掌握一种数据库管理系统与SQL命令。而且,还需要熟悉一种计算机高级语言。图10-3是目前常见的数据库应用系统及开发工具,用户用高级语言编写应用程序,通过高级语言的通信接口,用SQL命令对数据进行操作。图10-4是目前常见的一种支持数据库查询的Web服务器。Web服务器上的网页由HTM和ASP文件组成,用户通过浏览器访问网页,ASP文件通过SQL命令对数据进行操作。,图10-3 常见的数据库应用系统及开发工具,图10-4 Web服务器沙漠感的数据库,二、数据类型及表达式,2.1 数据类型 我们知道,实体是用属性来描述特征的,而属性是具有属性值,属性值是用数据来表示的。在各种数据库管理系统(DBMS)中,数据都具有类型。比如,Microsoft Access 2000所支持的数据类型有:文本、备注、数字、日期/时间、货币、自动编号、是/否、OLE对象、超级连接、查阅向导等十种数据类型。,表10-1 Access 2000数据类型,表10-1 Access 2000数据类型,2.2 表达式表达式是数据之间运算关系的形式。它是由常量、内存变量、字段变量、函数以及运算符组合而得到的一个有物理意义的式子。常量,字段变量,内存变量是表达式的一种特殊形式。所有的数据库管理系统都提供了丰富的运算符和函数,用户可以非常方便的构造各种表达式,用来实现各种特定的操作。当然,在各种数据库管理系统中的用法会有所不同。表达式按参与运算的数据类型,可划分为算术表达式、字符表达式、关系表达式、逻辑表达式和日期表达式五种。特别强调表达式各个部分的数据类型必须一致,如果不一致就应该用数据类型转换函数强制转换。,1运算符 运算符是表示数据之间运算方式的符号。运算符包括算术运算符、字符运算符关系运算符和逻辑运算符四种,表10-2列出了Access常用的运算符。需要说明的是:引用字符型数据要用引号“”或“”括起来,如”abcd123”。引用日期型数据要用“#”括起来,如#05/12/2007#。,例如:53=1;5 MOD 3=2;”abcd”&”1234”=”abcd1234”Between用来判断是否在和之间,一般使用格式为:Between AND 例如:12 Between 1 AND 100=TrunLike用于模糊查询,例如,在数据表中查询姓张的学生:姓名 Like“张*”Not逻辑非运算,是一种单目运算。当参与运算的表达式的值为.F.时,运算的结果就为.T.。反之,为.F.。And逻辑与运算,是一种双目运算。当参与运算的两个表达式的值同时为.T.时,运算的结果才为.T.,其它情况均为.F.。Or逻辑或运算,也是一种双目运算。当参与运算的两个表达式的值只要有一个为.T.时,运算的结果就为.T.,只有两个表达式的值同时为.F.,运算的结果才为.F.。逻辑运算的真值表见表10-3。,请参看下述逻辑表达式运算示例:A=5B=10 C=”ABCD”A10 And B=5&结果为.F.Not A=5&结果为.F.A10 Or B5&结果为.T.,表10-3 逻辑运算的真值表,2函数函数是用来实现某些特定的运算或实现某种特定功能的一段程序,它是数据库管理系统的重要组成部分。各种数据库管理系统都提供了大量的系统函数,用户可以在设计时直接使用。常用的系统函数包括数值型函数、字符型函数、日期与时间函数、数据类型转换函数、字符处理函数、测试函数及宏替换函数。要详细了解Access系统函数请参考帮助信息。,三、创建数据库和数据表,数据库和数据表是两个不同的对象。各种数据库管理系统都有相应的创建数据库和数据表的命令和菜单操作方法。我们以Access为例,介绍数据库和数据表的创建方法。3.1 创建数据库“数据库”窗口是Access操作的基本界面。创建“数据库”是我们学习Access的最基本的要求。新建一个数据库有两种途径,其一是启动Microsoft Access 时创建,其二是利用主菜单创建。这里,我们仅介绍如何创建一个“空数据库”。,1启动Microsoft Access时创建当用户启动Microsoft Access 时,会自动弹出图10-5“新建数据库”对话框,窗口中有“新建数据库”和“打开已有文件”的两个选项。在“新建数据库”选项中有“空Access数据库(B)”和“Access数据库向导、数据页和项目(A)”两个选项,一般选择“空Access数据库(B)”)来创建数据库。然后,单击“确定”按钮,弹出“文件新建数据库”对话框。在“文件新建数据库”对话框的“保存位置”中选择盘符、目录;在“文件名”框中输入数据库文件名,如“学生信息管理”;在“保存类型”中选择“Microsoft Access数据库”,单击“创建”。“学生信息管理”数据库文件被建立并弹出图10-6“学生信息库:数据库”窗口。,图10-5 新建数据库对话框,图10-6 数据库窗口,2利用菜单创建在已经进入了Access系统后,单击“文件”、“新建”,在弹出出“新建”对话框中选择“数据库”图标,单击“确定”。在弹出“文件新建数据库”对话框的“文件名”框中输入数据库文件名,单击“创建”。数据库建立以后,在“数据库”窗口中可以新建数据表、查询、窗体和报表以及对已建立的数据表、查询、窗体和报表进行修改设计和浏览。,3.2 创建数据表 在Microsoft Access 2000中数据表是从属于数据库的,表是数据库最基本的对象。因此,创建数据表,首先要打开相应的数据库。创建表的方法有五种:数据表视图、设计视图、表向导、引入表和链接表,我们重点介绍使用设计视图创建表。在创建表之前,必须对表的字段名、数据类型等属性进行设计,做到全面、准确、科学地描述实体。1使用设计视图创建表(1)打开相应的数据库1)启动 Microsoft Access 时打开数据库当用户启动 Microsoft Access 时,在“新建数据库”对话框中,选择“打开已有文件”选项,并在“打开已有文件”列表框中选择要打开的数据库,如:学生信息库。单击“确定”,弹出图10-6所示的“数据库”窗口。2)利用主菜单打开数据库如果已进入Microsoft Access环境,单击“文件”、“打开”,弹出“打开”对话框。在“打开”对话框中选择磁盘、目录,双击要打开的数据库文件。弹出10-6“数据库”窗口。,(2)定义表的结构在“数据库”窗口中用户可以选择“使用设计器创建表”。然后,单击“新建”按钮,在“新建表”对话框中选择“设计视图”,弹出图10-7创建“表”窗口。在创建数据表窗口中用户定义表的结构,依次输入字段名、选择数据类型,其中“说明”行可对字段名进行详细文字说明。比如:字段名称“XH”,可在“说明”行输入“学号”来说明。在“字段属性”框中根据需要设置字段的大小、格式、输入掩码、标题、默认值、有效性规则、索引等属性。结束后,单击主菜单的“文件”、“保存”。在图10-8“另存为”对话框中选择盘符、路径,输入表文件名,单击“确定”。这时,系统会提示用户是否建立主健?如果回答“是”,系统将设置一个“自动编号(ID)”字段作为该表的主健。如图10-9所示“学生档案表”表文件被建立。如果要在“学生信息库”数据库中创建第二个表,按上述方法继续创建。,图10-7创建数据表窗口,图10-8 另存为对话框,图10.9 学生档案表建立,关于几个“字段属性”的说明:输入掩码是用于指定字段输入值的格式,使用输入掩码可屏蔽非法输入,减少人为的数据输入错误。比如:指定“学生档案表”的“学号”字段的输入掩码为“9999999”,则“学号”字段只能接受数字输入而不能接受空格字符、字母的输入。有效性规则是用于指定对一个字段的约束条件,用来检查字段中输入的数据是否有效。从而,控制输入数据的合法性。比如:对性别字段设置有效性规则:”男”.OR.”女”。当表建立了有效性规则后,用户在向表字段输入、修改数据时,系统会自动检查数据是否符合该规则,不符合规则的数据会被拒绝接收。,(3)数据表记录的录入数据表的结构定义完成后,接下来的任务便是录入记录。数据表记录的录入方法有两种:其一是在“数据表视图”中输入;其二是利用“自动窗体”输入。1)在“数据表视图”窗口中输入数据在“数据表视图”中输入数据是最基本、最常用的方法。以“教师代码表”为例,在“学生信息库:数据库”窗口中选择对象栏中的“表”选项,在对象列表中选择要输入数据的“教师代码表”数据表,单击“打开”,在弹出的如图10-10“表视图”界面,依次录入数据。但要注意“输入掩码”、“有效性规则”等对字段数据的约束。,图10-10“表视图”录入界面,输入数据时的有关约定:“自动编号(ID)”字段不用输入,Access系统会自动为该字段填上一个数据。“必填字段”必须输入数据。否则,Access系统不会让光标移到下一条记录上。按Ctrl+;输入当前系统日期,按Ctrl+:输入当前的系统时间。在向“备注”字段输入大量的文本,应按Shift+F2健,打开一个文本编辑框输入。在文本编辑框中,如要换行应按Ctrl+Enter,若按回车健会关闭文本编辑框窗口而结束输入。对OLE 对象、超级链接两种类型数据,应通过单击Access主菜单中的“插入(I)”、“对象(O)”或“超级链接”的方式来输入。记录录入后,Access系统会自动存盘。但输入的数据如违反了有效性规则或数据完整性时,Access系统将给出错误提示并不能存盘。,2)利用“自动窗体”输入数据利用“自动窗体”输入数据是一种快速录入数据的方法,以“课程代码表”为例来说明“自动窗体”输入数据的方法。在“学生信息库:数据库”窗口中选择对象栏中的“表”选项,在对象列表中选择要输入数据的“课程代码表”数据表。单击系统“菜单”、“自动窗体”或工具栏中的“自动窗体”按钮,弹出如图10-11所示“自动窗体”窗口。,图10-11“自动窗体”窗口,请注意,窗体中的数据是表中原有的第一条记录的内容。而且,由于“课程代码表”与“学生成绩表”存在一多关系。因此,在窗体窗口的下半部分还有一个小窗口,显示了“课程代码表”当前记录所对应的“学生成绩表”子表记录,即该门课程的所有学生的成绩。如果表中原不存在记录,则弹出如图10-12所示“自动窗体”窗口。在图10-9“自动窗体”窗口中单击最下端最右边的追加记录“”按钮,这时就可以在如图10-10所示录入数据自动窗体的各个栏目中输入数据。当一条记录输入完成后,可单击单击窗口最下端的下一条记录“”按钮,在图10-10所示“自动窗体”中继续录入记录。,图10-12 录入数据“自动窗体”,四、表的基本操作,4.1 表结构的修改 对表的结构进行修改,包括增、删字段,修改字段名、字段数据类型等。其操作方法:打开相应的数据库文件,选择要修改结构的表。单击“设计”,弹出“设计视图”窗口。如要修改某字段,可单击该字段直接进行字段名、数据类型和字段属性的修改;如要增加字段,可在“设计视图”窗口中直接定义输入;如要在某字段前插入字段,可选择该字段,单击系统菜单上的“插入”、“行”便可定义输入,插入一字段;如要删除某字段,可选择该字段,单击系统菜单上的“编辑”、“删除行”便可删除。,4.2 表的主健和索引的设置1表主健的设置主健是唯一标识表中一条记录的关键字,这个关键字可以是表中的一个字段,也可以是表中多个字段组成的表达式。虽然在一个表中并不一定是必须的,但当在表之间需要建立关系时,就必须为表指定主健。主健的值在表中不允许重复,因此,在表中只能建立一个主健。当表的主健被建立,系统将以主健的次序显示表记录。并且,当输入新记录到数据表时,系统将检查主健字段的值是否有重复。如重复会拒绝接受。主健还能够加快在表中的查询速度。下面以“学生成绩表”为例,来说明建立主健的操作步骤。,在“学生信息库”数据库窗口中选择对象栏中的“表”选项,在对象列表中选择相应的“学生成绩表”。单击“数据库”窗口工具栏上的“设计”按钮弹出“设计视图”窗口。单击“学号”字段,按住Ctrl或Shift健,同时选择“课程代码”字段,使两个字段所在的行都被黑色覆盖。在“学生成绩表”中必须选择“学号”和“课程代码”两个字段的组合作为主健。单击系统工具栏上的“主健”按钮,这时,如图10-13所示“学号”、“课程代码”字段的行选择器上各出现一个钥匙形状的图标。表示“学号”、“课程代码”两字段已成为“学生成绩表”的主健。,图10-13“学生成绩表”的主健,2索引 索引就是按照某个字段或某几个字段值的升序或降序排列表中的记录,用于加快在表中查询的速度。表的主健会自动建立索引,索引与主健的区别是,索引允许索引字段有重复值,而主健字段不允许有重复值。下面以“教师代码表”为例来说明建立索引的操作步骤。在“学生信息库”数据库窗口中选择对象栏中的“表”选项,在对象列表中选择相应的“教师代码表”。单击“数据库”窗口工具栏上的“设计”按钮弹出“设计视图”窗口。单击系统工具栏中的“索引”图标按钮 或系统菜单中的“视图(V)”、“索引(I)”命令,弹出图10-14“索引”对话框。在“索引”对话框的“索引名称”列中选择索引字段,在“排序次序”列中选择排序方式。请注意,有重复值的索引字段不能设置为主索引或唯一索引。,图10-14“索引”对话框,4.3 表之间关系的建立 在数据模型表示客观世界的过程中,一般要用多个实体集来描述。在多个实体集(数据表)之间就可能存在着相互的联系,这种联系有三种:一对一联系、一对多的联系、多对多的联系。数据表之间要建立关联必要条件是:必须存在公共字段。所谓公共字段,就是两表都具有的字段,我们把这个字段称为关键字段。1表之间的关系类型(1)一对一关系(1:1)一对一联系是指在两个实体集间存在一一对应的联系,即A实体集中的每个实体,在B实体集中最多只能找到一个可以和它相联系的实体,反过来同样。那么这两个实体集之间就存在一对一的联系,记为1:1关系。例如:在“学生档案表”中一个学生只有一条记录,且对应在“高考成绩表”中该学生也只有一条记录,反过来也一样。所以,“学生档案表”和“高考成绩表”两个实体集之间是一对一的关系。,(2)一对多关系(1:N)或多对一(M:1)一对多联系是指在两个实体集间存在一对多的联系,即A实体集的每个实体在B实体集中可以找到对应的多个实体;反过来说,在B实体集中的每个实体,却只能在A实体集中找到一个能够相联系的实体。那么,这两个实体集之间就存在着一对多的联系,记为1:N联系。例如,“学生档案表”与“学生成绩表”的关系就是一对多的关系。一个学生在“学生档案表”中只有一个记录,而在“学生成绩表”中一个学生有多门课程的成绩,也就是说,一个学生在“学生成绩表”中存在多条记录。(3)多对多关系(M:N)多对多联系是指在两个实体集间存在多对多的联系,即A实体集表的一个实体与B实体集的多个实体相对应,反过来同样。那么这两个实体集之间就存在多对多的联系,记为M:N联系。例如:学生与课程的联系就是M:N联系,一个学生可选多个课程,一个课程可被多个学生选修。在数据库中不能处理多对多关系。因此,必须增加一个“选课”实体集,将所有学生选课的实体存放在此实体集中。这样,学生与选课实体集间存在一对多的联系,课程和选课实体集间也存在一对多的联系。从而,将学生与课程之间的多对多联系,分解成了两个一对多的联系。在这个转换过程中,“选课”实体集起到了桥梁的作用。,2表之间的关系的建立在数据库中凡是涉及到多表的操作,就必须首先建立表之间的关联,比如,多表的查询。两表之间要建立关联,其必要条件是必须创建主健且两表必须存在至少一个公共字段。所谓公共字段,就是两表都具有的字段,我们称之为关键字段。我们以“学生信息库”中的“学生档案”、“课程代码”、“学生成绩”三个表为例来分析。从图10-16可以看出,“学生成绩表”通过“学号”字段可以和“学生档案”表建立多对一的关系,“学生成绩”表通过“课程代码”字段可以和“课程代码”表建立多对一的关系。但“课程代码”表和“学生档案”表是不能建立关系的,因为,两表之间没有公共字段。现在,我们以“学生信息库”中的“学生档案”、“课程代码”、“学生成绩”三个表为例来说明建立关系的方法。,打开相应的数据库“学生信息库”。单击菜单“工具”、“关系”,弹出如图10-15所示的“显示表”对话框。,图10-15“显示表”对话框,在“显示表”对话框中选择将要建立关系的表,比如:“学生档案”、“课程代码”、“学生成绩”三个表“添加”到如图10-16所示的“关系”窗口。注意:多个连续文件的选择用Shift+单击,多个不连续文件的选择用Ctrl+单击。,图10-16“关系”窗口,将“学生成绩”表中的“学号”字段拖曳到“学生档案”表的“学号”字段上,弹出如图10-17所示“编辑关系”对话框,单击“创建”按钮。如图10-18所示,可以看到这二个表之间有一条连线,表示关系已建立。如要改变系统默认的联接类型,可在“创建”之前,单击“联接类型(J)”,在“联接属性”对话框中选择联接属性,Access系统为关系提供了三种不同的联接属。,图10-17“编辑关系”对话框,将“学生成绩”表中的“课程代码”字段拖曳到“课程代码”表的“课程代码”字段上,弹出“编辑关系”对话框,单击“创建”按钮。如图10-18所示,可以看到这二个表之间又有一条连线,表示关系已建立。如果需要编辑、删除关系,单击鼠标右健,在弹出的快捷菜单中可选择“编辑关系”或“删除关系”来进行关系编辑、关系删除的操作。,图10-18关系已建立窗口,4-4 表记录的浏览、追加、修改与删除打开相应的数据库文件,在“数据库”窗口中选择对象栏中的“表”选项,在对象列表中选择要操作的数据表。单击“打开”,弹出“数据表视图”窗口。用户可以在“数据表视图”窗口中浏览表记录。同时,在“数据表视图”窗口中可直接进行记录的修改、添加。如要删除记录,可选择要删除的记录,单击系统主菜单“编辑”、“删除记录”。然后,在提示框中加以确认。请注意,如图10-19所示,如果打开的表和其它有关表建立了一多关系,则在“数据表视图”窗口的最左端的列中会显示有一个“+”符号,单击该“+”号将打开与之有关联的子数据表。这时,用户也可以同时对子数据表进行浏览、添加、修改与删除记录的操作。,图10-19 数据表视图窗口,4.5 表记录的排序 在实际应用中经常要求表记录按照某个字段值的大小次序来重排记录,“主健”和“索引”都可以改变数据表记录的排列次序。现在,我们学习另一种改变表记录排列次序的方法;排序。排序是按照某个字段值的大小,以升序或降序方式重排记录。值的大小原则是,日期和时间后为大,字母不区分大、小写后为大,中文以其对应的拼音字母次序排序。我们以“学生档案表”的“出生日期”字段的升序为例来说明建立排序的方法。打开“学生信息库”数据库文件,在“数据库”窗口中选择对象栏中的“表”选项,在对象列表中选择“学生档案表”数据表。单击“打开”,在弹出“数据表视图”窗口,单击“出生日期”字段标题单元格,这时“出生日期”字段所在的列反白显示,表示该字段已被选中。单击系统工具栏中的升序“”或降序“”按钮或者选择系统菜单栏中的“记录”、“排序”、在“升序/降序”中选择“升序”。表记录会按照选定的字段的升序/降序重排记录。结果如图10-20所示。,图10-20 以出生日期升序排序结果,4.6 表记录的查找与筛选1查找 查找就是按照某种条件,对表或查询文件中的记录进行数据检索,并把光标定位到满足条件的某个记录。我们以“学生档案表”为例,查找学号为“9921201”的学生来说明查找的操作步骤。在“学生信息库”窗口中打开“学生档案表”,弹出“学生档案表_数据表视图”。单击系统工具栏中的查找按钮“”,在图10-21“查找和替换”对话框的“查找内容(N)”文本框内输入要查找的内容,如“9921201”。,图10-21“查找和替换”对话框,在“查找范围(L)”列表框中选择“学生档案表”。如果打开表之后,已经把光标定位在“学号”字段上,则可以不用选择“查找范围”。在“匹配(H)”列表框中选择匹配方式:字段的任何部分(查找的内容只要是字段数据中的一个子集)、字段开头(查找的内容只是字段数据的一个左子串)、整个字段(查找的内容与字段数据完全相等)。本例要查找的是学号,应选择“整个字段”。单击“高级(M)”按钮,在弹出的图10-22窗口中可进行“区分大小写(C)”的选择或“搜索(S)”范围的选择。,图10-22 高级窗口,单击“查找下一个”按钮,开始查找。如果找到,如图10-23所示光标将定位在该记录上。这时,用户可以对该记录进行编辑、修改等操作。,图10-23 查找结果,2筛选 查找只能把光标定位到满足条件的一个记录上,而筛选能够以数据表的形式返回一组满足条件记录集。筛选的数据源可以是表或查询文件,筛选是把符合条件的记录全部挑选出来,而把不符合条件的记录过滤掉。Access提供了如图10-24所示的四种筛选方式:按选定内容筛选、内容排除筛选、按窗体筛选或高级筛选/排序。,图10-24 四种筛选方式,我们以“学生选课成绩”查询文件为例,用高级筛选/排序的方式筛选“99212”班、“数据库技术”课程、“成绩”大于等于80分的学生。打开“学生信息库”数据库文件,在“数据库”窗口中选择对象栏中的“查询”选项。在对象列表中选择“学生选课成绩”查询文件。单击“打开”,弹出“学生选课成绩:选择查询”窗口。单击系统主菜单上的“记录”、“筛选”、“高级筛选/排序”选项,弹出如图10-25“高级筛选/排序”窗口。在“高级筛选/排序”窗口中选择输入筛选条件,其中“字段”是用来选择需要设定条件的字段,“排序”是用来对选定的字段设置排序方式,准则是用来设置筛选条件的,列之间是“逻辑与”的关系,行之间是“逻辑或”的关系。,图10-25“高级筛选/排序”窗口,单击系统菜单上的“筛选(R)”、“应用筛选/排序(Y)”,筛选的结果如图10-26所示。如果不要保存筛选的结果,则单击系统菜单上的“记录(R)”、“取消筛选/排序(R)”,“学生选课成绩”查询文件的数据不被改变。如果需要保存筛选结果,则可单击“保存”或“另存为”命令。,图10-26 筛选结果,五、查询,5.1 创建查询查询与筛选有些相似,也是按照用户的要求输出符合条件的记录。查询与筛选不同的是,查询的数据源可以来自多个相关联的表。而且,可以将多个表中的字段数据组合在一起,生成计算字段、总计和组合数据。查询的结果是按照设置的条件和选择的字段产生一个数据表视图,数据表视图与表一样可以作为窗体和报表的数据源,其操作与表也基本相同。需要说明的是,基表和数据表视图中的数据是相互影响的。在查询的“数据表视图”窗口中对数据进行的修改、追加、删除等操作都将影响其基表中的数据。而基表中的数据发生改变时,视图中的数据也会发生改变。查询分为单表查询和多表查询二种,单表查询是指查询的数据来自一个表,多表查询是指数据来自多个相互之间已经建立了“关系”的表。就是说,多表查询必须将多表建立关联。在Access中建立查询有多种方法,一是“在设计视图中创建查询”,另一种是“使用向导创建查询”。同时,Access也支持Sql(Structured Query Language)结构化查询语言。,1在设计视图中创建查询(1)创建选择查询 以查询课程名称为“数据库技术”或“VB程序设计”且成绩=80的记录为例,来说明在设计视图中创建查询的方法。打开“学生信息库”数据库,在“数据库”窗口右侧“对象”框中单击“查询”,选择“在设计视图中创建查询”,单击“新建”,弹出图10-27“新建查询”对话框。,图10-27“新建查询”对话框,在“新建查询”对话框中选择“设计视图”方式,单击“确定”,弹出图10-28“设计查询”窗口。,在“显示表”对话框中按照查询的要求,选择一个表或多个表(多表的选择可以用Shift键或Ctrl健配合)。然后,单击“添加”、“关闭”,关闭“显示表”对话框。如图10-29所示参与查询的表被添加到“选择查询”窗口。请注意,如果多表之间没有建立关系,可用拖曳方法临时建立。在“选择查询”窗口下部选择字段、确定排序的方式、输入选择条件。本例选择了班级、学号、姓名、课程名称、成绩四个字段并且以成绩的降序排列。准则是用来设置筛选条件的,列之间是“逻辑与”的关系,行之间是“逻辑或”的关系。输入选择条件为班级=”99212”,课程名称=”数据库技术”且成绩=80或者班级=”99212”,课程名称=”VB程序设计”且成绩=80。这时,单击系统工具栏中的运行按钮“”,结果如图10-30所示。,图10-29“选择查询”窗口,图10-30 查询运行结果,然后,单击主菜单的“文件”、“保存”,如图10-31所示在“另存为”对话框输入文件名。最后,关闭“选择查询”窗口,如图10-32所示在“数据库”窗口中“成绩大于80的学生”查询被建立。,图10-31 保存文件,图10-32“数据库”窗口,(2)创建带参数的查询 带参数的查询是Access查询的一个最重要的特征。参数也是准则,不同的是准则是在创建查询时设置的,而参数是在运行或打开查询时输入的。创建带参数的查询与选择查询的创建方法基本相同,只是准则的设置方式不同。我们以按“学号”和“课程名称”查询为例来说明准则的设置。,图10-33带参数的查询准则的设置,从图10-33中可以看到,“学号”准则的设置为请输入要查询成绩的学号:,“课程名称”准则的设置为请输入要查询成绩的课程名称:,在设置带参数的准则时,提示信息一定要用方括号“”括起来。当运行或打开查询时会给出图10-34提示,请用户输入“学号”和“课程名称”参数,运行结果如图10-35所示。,图10-34输入参数值提示窗口,图10-35 运行结果,(3)创建统计查询 统计查询与“选择查询”和“带参数的查询 的创建方法也基本相同,只是在打开“设计查询”窗口后,要单击系统工具栏中的“合计”按钮,这时在“设计视图”窗口的设计区会增加一行“总计”栏。我们以按“班级”和“课程名称”作为分组项统计课程的平均成绩、最高成绩、最低成绩、标准偏差为例来说明统计查询的设计方法。首先在“班级”和“课程名称”的总计框中选择Group By。然后,分别在其它的四个字段的总计框中选择Avg、Max、Min、Stdev函数求平均成绩、最高成绩、最低成绩、标准偏差。在准则中输入请输入课程名称:。其设计界面如图10-36,运行结果如图10-37所示。,图10-36 统计查询设计界面,图10-37 统计查询运行结果,2使用向导创建查询 打开相应的数据库,在“数据库”窗口右侧“对象”框中单击“查询”,选择“使用向导创建查询”,单击“新建”,弹出“新建查询”对话框。在“新建查询”对话框中选择新建“简单查询向导”方式,单击“确定”,弹出图10-38“简单查询向导”窗口。,图10-38“简单查询向导”窗口,在“简单查询向导”窗口的“表/查询”列框中选择表,在“可用字段(A)”中双击需要的字段到“选定的字段(S)”框中,单击“下一步”,弹出图10-39“简单查询向导”窗口。,图10-39“简单查询向导”窗口,在“简单查询向导”窗口中选择“明细”或“汇总”,本例选择“汇总”,单击“汇总选项”,弹出图10-40“汇总选项”窗口。,图10-40“汇总选项”窗口,选择汇总类型,如本例选择“平均”、“最小值”、“最大值”。单击“确定”,返回图10-37“简单查询向导”窗口,单击“下一步”,弹出图10-41“简单查询向导”窗口。单击“完成”,显示如图10-42所示的汇总结果。,图10-41“简单查询向导”窗口,图10-42 汇总结果,5.2 查询的运行 在“查