数据库技术基础及应用_第1页
数据库技术基础及应用_第2页
数据库技术基础及应用_第3页
数据库技术基础及应用_第4页
数据库技术基础及应用_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

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

文档简介

1、第十章第十章 数据库技术基础及应用数据库技术基础及应用 二十一世纪是一个信息时代,人类已进入到一个充分利用信息资源的社会。随着计算机技术及数据库技术的不断发展,数据库技术已广泛应用于信息管理的各个领域。因此,掌握好一门数据库技术是非常必要的。 目前,市场上流行的关系型数据库管理系统(dbms)有好多种,如:visual foxpro、access、sql server、oracle、informix、sybase等。microsoft access 2000数据库管理系统是mirrosoft公司office办公软件的一个组件,是一个组织、管理和处理中、小型数据的数据库管理系统。它的界面友好、可

2、视性强,具有易学易懂、使用方便等特点。1.1 数据库管理系统数据库管理系统(dbmsdbms)1数据库管理系统的定义数据库管理系统的定义 数据库管理系统(dbms)是一种组织、储存、管理和处理数据的软件系统,是开发信息管理应用系统的核心和平台,它为实现数据库和数据库管理提供了方法和手段。 数据处理是指利用计算机对各种形式(字符、数值、声音及图形、图像、表格)的数据进行采集、加工、存储、计算、分类、检索和传输等一系列活动的总和。数据处理的目的,就是从大量的原始数据中,提取产生对人们有价值的信息,使得人们能方便而充分地利用信息资源。我们可以将数据处理分为两个层次:一是数据的收集、分类、组织、编码、

3、储存、检索、传输和维护等操作,称为基本的数据管理操作。二是加工、计算和输出等操作。随着管理对象的不同,其操作要求是千差万别的。这些操作称为应用操作,由应用程序来实现。2数据库管理系统的特点数据库管理系统的特点 数据管理技术经历了人工管理阶段、文件管理阶段到数据库管理阶段的发展过程。那么,数据库管理有什么特点呢?(1)数据的结构化)数据的结构化 数据的结构化是指描述实体的数据有一定的结构形式。因此,数据表所描述的数据不仅是一个独立的数据。而且,还可以描述数据与数据之间的联系。数据的结构化,使得数据表与数据表之间可以建立关联。减少了数据的重复,也避免了数据的不一致性。(2)数据的独立性)数据的独立

4、性 数据的独立性是指数据表中的数据组织和存取方法与应用程序之间不存在相互依赖的关系,它们之间是彼此独立的。也就是说,数据表与应用程序之间不会因为一方的改变而需要修改另一方。从而,大大地降低了应用程序的开发成本和维护费用。(3)数据的共享性)数据的共享性 数据的共享性是指不同的应用程序可以使用同一个数据表,可以同时存取同一数据。数据表中的数据不仅可供现有的各应用程序共享,而且,还可以为新开发的应用程序使用。(4)最小的数据冗余度)最小的数据冗余度 数据冗余度最小是指存储在数据表中的重复数据尽可能的少。由于数据表中的数据具有结构化和独立性的特点,从而,实现数据的统一存放和集中控制,减小数据冗余度。

5、 (5)数据的完整性)数据的完整性 保证数据在数据表中正确的特性称为数据的完整性。在建立数据表时候可以通过建立一些约束条件来保证输入数据的正确。当设置了约束条件,就可以自动地拒绝错误的数据。数据的完整性分为实体的完整性、域的完整性和参照完整性。实体的完整性保证数据表中记录的唯一特性,域的完整性保证记录字段取值的正确和有效性。(6)并发使用和数据的一致性)并发使用和数据的一致性 数据库中的数据是共享的,允许多个用户同时使用相同的数据。因此,必须保证各个用户之间对数据的操作不发生矛盾和冲突,保证数据的一致性和正确性。数据库管理系统(dbms)通过数据库中的表、查询、窗体、报表、数据访问页、宏和模块

6、等七个对象来完成数据库管理系统的功能。3数据模型与数据模型与数据库管理系统分类数据库管理系统分类 数据模型是数据库中数据的存储方式,是数据库管理系统的核心和基础。每一种数据库管理系统都是基于某种数据模型的。数据库分类是根据数据模型来划分的,常见的数据模型有层次、网状和关系三类模型。(1)非关系型模型)非关系型模型 第一代数据库管理系统是非关系型,主要包括层次和网状两种模型。1 1)层次模型)层次模型层次模型是一棵倒立的树。在数据库中满足以下条件的数据模型称为层次模型。 有且仅有一个结点无父结点,这个结点称为根结点。 其他结点有且仅有一个父结点。 在层次模型中,数据库应用系统要通过指针链在数据库

7、中查询数据。自关系型数据库管理系统兴起后,目前已被淘汰。2 2)网状模型)网状模型网状模型是一个网络。在数据库中,满足以下两个条件的数据模型称为网状模型。 允许一个以上的结点无父结点。 一个结点可以有多于一个父结点。 非关系型的数据库管理系统的结构复杂,使用难度较高。和层次模型一样要通过指针链在数据库中查询数据。自关系型数据库管理系统兴起后,非关系型数据库管理系统已被淘汰。(2)关系型模型)关系型模型 关系模型(relational model)的所谓“关系”是有特定含义的。广义地说,任何数据模型都可以描述一定事物之间的关系。关系模型的所谓“关系”虽然也适用于这种广义的理解,但同时又特指那种虽

8、具有相关性而非从属性的平行的数据之间,按照某种序列排列的集合关系。 关系模型的最大优点就是简单。在关系模型中,数据的逻辑结构实际上就是一个满足一定条件的二维表。每一个关系就是一个二维数据列表,表示一个实体集。用户只需要用简单的sql语句就可以对数据库进行操作。 关系模型具有结构简单、操作方便、数据描述统一等优点。关系模型的主要特点有: 关系中每一数据项不可再分,是最基本的单位。 每一列数据项是同属性的,各列的排列顺序是任意的,关系中不允许有相同的列名。 每一行记录由一个事物的诸多属性项构成一个实体,不允许有相同的记录。也就是说,必须有至少一个关键字段,而列和行的排列顺序可以是任意的。4常见的数

9、据库管理系统常见的数据库管理系统 关系型数据库管理系统有很多,目前较为流行的是microsoft access、sol server、oracle、visual foxpro等。下面对四种数据库管理系统作一个简单的介绍。 microsoft access是microsoft office软件包中的一个重要组件。随着windows操作系统的升级,其功能越来越强大,适用于中、小型数据库应用系统。 sol server是microsoft公司开发的面向高端的数据库管理系统,适用于中、大型数据库应用系统。 oracle是目前功能最强大的数据库管理系统,适用于大型数据库应用系统。 visual foxp

10、ro是一个相对简单的数据库管理系统。它的优点是自带编程工具,visual foxpro提供了面向对象的、结构化的程序设计语言,在visual foxpro中就可以编写应用程序。目前,仍然有许多的用户。1.2 数据库数据库 数据库(data base)是按照一定的组织结构存储在计算机中的相关数据的集合;是一个组织、建立、管理相关数据表、查询、窗体、报表、页、宏和模块的管理工具;是实现数据库功能的操作平台。 当然,不同的数据库管理系统,其数据库管理的相关对象会有所不同,但数据表、查询是最基本的管理对象。例如,在access中,用户就是通过图10-1“数据库”窗口来组织、建立和管理相互关联的数据表、

11、查询、窗体、报表、页、宏和模块。图10-1“数据库”窗口 1.3 数据表数据表1数据表的定义数据表的定义数据表是一组相关数据按行和列排列的二维表格,通常用来描述一个实体集。数据表是关系型数据库管理系统中处理数据的数据源。在access中表是从属于数据库的,是数据库必备的最基本的对象。二维表格要建立为一个数据表,必须保证任意二行的数据不能完全相同,也就是说,必须有至少一个关键字段,而列和行的排列顺序可以是任意的。2数据表的有关概念数据表的有关概念如图10-2“学生档案表”所示,“学生档案表”用来描述一个学生实体集。数据表中的每一列称为字段,通常用字段来描述实体在某一方面的属性。字段用字段名、数据

12、类型、字段宽度来描述。字段的每个值称为数据项,字段的取值范围称为域。数据表的每一行称为一个记录或元组,它是字段的集合,用来描述一个实体。图图10-2 学生档案表学生档案表 1.4 数据库应用系统数据库应用系统 数据库应用系统(dbs)是一个在计算机及数据库管理系统的支持下,由应用程序对数据表中的数据进行处理的应用系统。数据库应用系统(dbs)通常由数据库管理系统、数据库、数据库应用程序以及支持数据库运行的其他软硬件和相关人员组成。数据库是作为后台数据源存放在服务器中,是数据库应用系统的数据源和管理对象。而应用程序是用高级语言开发的,作为用户端的前台界面。 数据库应用系统的开发工具很多,目前常用

13、的有visual basic、visual c+、java、delphi、pwerbuilder等高级语言。各种高级语言都具有与数据库的通信接口,visual basic语言默认的数据库是access数据库。 数据库应用系统的开发人员不仅要掌握一种数据库管理系统与sql命令。而且,还需要熟悉一种计算机高级语言。图10-3是目前常见的数据库应用系统及开发工具,用户用高级语言编写应用程序,通过高级语言的通信接口,用sql命令对数据进行操作。图10-4是目前常见的一种支持数据库查询的web服务器。web服务器上的网页由htm和asp文件组成,用户通过浏览器访问网页,asp文件通过sql命令对数据进行

14、操作。图图10-3 常见的数据库应用系统及开发工具常见的数据库应用系统及开发工具 图图10-4 web服务器沙漠感的数据库服务器沙漠感的数据库 2.1 数据类型数据类型 我们知道,实体是用属性来描述特征的,而属性是具有属性值,属性值是用数据来表示的。在各种数据库管理系统(dbms)中,数据都具有类型。比如,microsoft access 2000所支持的数据类型有:文本、备注、数字、日期/时间、货币、自动编号、是/否、ole对象、超级连接、查阅向导等十种数据类型。数据类型说 明字段宽度(所占字节数)文本char(n)可以是由汉字、ascii编码及数字组成的字符串最多为 255字节,缺省是50

15、字节备注memo当字符串超过255个字节,应定义为备注型最多为 65,535 个字节数字integer用于计算的数值数据。有关类型的详细内容,请参阅 fieldsize 属性主题根据类型的不同有1、2、4、8、16个字节日期/时间datatime从100 到 9999 年的日期与时间值8个字节货币money用于存放1 4 位小数的数据。精确到小数点左边15 位和小数点右边4位8个字节表表10-1 access 200010-1 access 2000数据类型数据类型 数据类型说 明字段宽度(所占字节数)自动编号counter当向表中添加一条新记录时,系统自动指定的一个唯一的顺序号,自动编号字段

16、不能更新通常固定为4个字节是/否bit只包含yes/no、true/false 或 on/off两者之一1字节ole 对象image用于存放表中的链接或嵌入对象,如 microsoft excel 电子表格、microsoft word 文档、图形、声音或其他二进制数据最多为1g字节,受可用磁盘空间限制。超级链接 以文本形式存储并用作超级链接地址,最多包含三部分由三个部分组成,每一部分最多只能包含2048个字节。查阅向导该字段可以使用列表框或组合框从另一个表或值列表中选择一个值通常为 4 个字节。表表10-1 access 200010-1 access 2000数据类型数据类型 2.2 表达

17、式表达式 表达式是数据之间运算关系的形式。它是由常量、内存变量、字段变量、函数以及运算符组合而得到的一个有物理意义的式子。常量,字段变量,内存变量是表达式的一种特殊形式。所有的数据库管理系统都提供了丰富的运算符和函数,用户可以非常方便的构造各种表达式,用来实现各种特定的操作。当然,在各种数据库管理系统中的用法会有所不同。 表达式按参与运算的数据类型,可划分为算术表达式、字符表达式、关系表达式、逻辑表达式和日期表达式五种。特别强调表达式各个部分的数据类型必须一致,如果不一致就应该用数据类型转换函数强制转换。1运算符运算符 运算符是表示数据之间运算方式的符号。运算符包括算术运算符、字符运算符关系运

18、算符和逻辑运算符四种,表10-2列出了access常用的运算符。需要说明的是:引用字符型数据要用引号“”或“”括起来,如”abcd123”。引用日期型数据要用“#”括起来,如#05/12/2007#。类型运算符算术运算符+、-、*、/、(乘方)、(求整)、mod(取余数)字符运算符&(连接两个字符串)关系运算符、=、=、between、like逻辑运算符not、and、or 例如:53=1;5 mod 3=2;”abcd”&”1234”=”abcd1234” between用来判断是否在和之间,一般使用格式为: between and 例如:12 between 1 and 100=trun

19、like用于模糊查询,例如,在数据表中查询姓张的学生:姓名 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.n

20、ot a=5 &结果为.f.a10 or b5 &结果为.t.a变量b变量 not anot ba and ba or b.t.t.f.f.t.t.t.f.f.t.f.t.f.t.t.f.f.t.f.f.t.t.f.f.表表10-3 逻辑运算的真值表逻辑运算的真值表 2函数函数函数是用来实现某些特定的运算或实现某种特定功能的一段程序,它是数据库管理系统的重要组成部分。各种数据库管理系统都提供了大量的系统函数,用户可以在设计时直接使用。常用的系统函数包括数值型函数、字符型函数、日期与时间函数、数据类型转换函数、字符处理函数、测试函数及宏替换函数。要详细了解access系统函数请参考帮助信息。 数

21、据库和数据表是两个不同的对象。各种数据库管理系统都有相应的创建数据库和数据表的命令和菜单操作方法。我们以access为例,介绍数据库和数据表的创建方法。3.1 创建数据库创建数据库 “数据库”窗口是access操作的基本界面。创建“数据库”是我们学习access的最基本的要求。新建一个数据库有两种途径,其一是启动microsoft access 时创建,其二是利用主菜单创建。这里,我们仅介绍如何创建一个“空数据库”。1启动启动microsoft access时创建时创建 当用户启动microsoft access 时,会自动弹出图10-5“新建数据库”对话框,窗口中有“新建数据库”和“打开已有

22、文件”的两个选项。 在“新建数据库”选项中有“空access数据库(b)”和“access数据库向导、数据页和项目(a)”两个选项,一般选择“空access数据库(b)”)来创建数据库。然后,单击“确定”按钮,弹出“文件新建数据库”对话框。在“文件新建数据库”对话框的“保存位置”中选择盘符、目录;在“文件名”框中输入数据库文件名,如“学生信息管理”;在“保存类型”中选择“microsoft access数据库”,单击“创建”。“学生信息管理”数据库文件被建立并弹出图10-6“学生信息库:数据库”窗口。图图10-5 新建数据库对话框新建数据库对话框 图图10-6 数据库窗口数据库窗口 2利用菜单

23、创建利用菜单创建在已经进入了access系统后,单击“文件”、“新建”,在弹出出“新建”对话框中选择“数据库”图标,单击“确定”。在弹出“文件新建数据库”对话框的“文件名”框中输入数据库文件名,单击“创建”。数据库建立以后,在“数据库”窗口中可以新建数据表、查询、窗体和报表以及对已建立的数据表、查询、窗体和报表进行修改设计和浏览。3.2 创建数据表创建数据表 在microsoft access 2000中数据表是从属于数据库的,表是数据库最基本的对象。因此,创建数据表,首先要打开相应的数据库。创建表的方法有五种:数据表视图、设计视图、表向导、引入表和链接表,我们重点介绍使用设计视图创建表。在创

24、建表之前,必须对表的字段名、数据类型等属性进行设计,做到全面、准确、科学地描述实体。1使用设计视图创建表使用设计视图创建表(1)打开相应的数据库)打开相应的数据库1)启动)启动 microsoft access 时打开数据库时打开数据库当用户启动 microsoft access 时,在“新建数据库”对话框中,选择“打开已有文件”选项,并在“打开已有文件”列表框中选择要打开的数据库,如:学生信息库。单击“确定”,弹出图10-6所示的“数据库”窗口。2)利用主菜单打开数据库)利用主菜单打开数据库如果已进入microsoft access环境,单击“文件”、“打开”,弹出“打开”对话框。在“打开”

25、对话框中选择磁盘、目录,双击要打开的数据库文件。弹出10-6“数据库”窗口。 (2)定义表的结构)定义表的结构 在“数据库”窗口中用户可以选择“使用设计器创建表”。然后,单击“新建”按钮,在“新建表”对话框中选择“设计视图”,弹出图10-7创建“表”窗口。 在创建数据表窗口中用户定义表的结构,依次输入字段名、选择数据类型,其中“说明”行可对字段名进行详细文字说明。比如:字段名称“xh”,可在“说明”行输入“学号”来说明。在“字段属性”框中根据需要设置字段的大小、格式、输入掩码、标题、默认值、有效性规则、索引等属性。结束后,单击主菜单的“文件”、“保存”。在图10-8“另存为”对话框中选择盘符、

26、路径,输入表文件名,单击“确定”。这时,系统会提示用户是否建立主健?如果回答“是”,系统将设置一个“自动编号(id)”字段作为该表的主健。 如图10-9所示“学生档案表”表文件被建立。如果要在“学生信息库”数据库中创建第二个表,按上述方法继续创建。图图10-7创建数据表窗口创建数据表窗口 图图10-8 另存为对话框另存为对话框 图图10.9 学生档案表建立学生档案表建立 关于几个“字段属性”的说明 : 输入掩码是用于指定字段输入值的格式,使用输入掩码可屏蔽非法输入,减少人为的数据输入错误。比如:指定“学生档案表”的“学号” 字段的输入掩码为“9999999”,则“学号”字段只能接受数字输入而不

27、能接受空格字符、字母的输入。有效性规则是用于指定对一个字段的约束条件,用来检查字段中输入的数据是否有效。从而,控制输入数据的合法性。比如:对性别字段设置有效性规则:”男”.or.”女”。当表建立了有效性规则后,用户在向表字段输入、修改数据时,系统会自动检查数据是否符合该规则,不符合规则的数据会被拒绝接收。(3 3)数据表记录的录入)数据表记录的录入数据表的结构定义完成后,接下来的任务便是录入记录。数据表记录的录入方法有两种:其一是在“数据表视图”中输入;其二是利用“自动窗体”输入。1 1)在)在“ “数据表视图数据表视图” ”窗口中输入数据窗口中输入数据在“数据表视图”中输入数据是最基本、最常

28、用的方法。以“教师代码表”为例,在“学生信息库:数据库”窗口中选择对象栏中的“表”选项,在对象列表中选择要输入数据的“教师代码表”数据表,单击“打开”,在弹出的如图10-10“表视图”界面,依次录入数据。但要注意“输入掩码”、“有效性规则”等对字段数据的约束。图图10-10“表视图表视图”录入界面录入界面 输入数据时的有关约定: “自动编号(id)”字段不用输入,access系统会自动为该字段填上一个数据。 “必填字段”必须输入数据。否则,access系统不会让光标移到下一条记录上。 按ctrl+;输入当前系统日期,按ctrl+:输入当前的系统时间。 在向“备注”字段输入大量的文本,应按shi

29、ft+f2健,打开一个文本编辑框输入。在文本编辑框中,如要换行应按ctrl+enter,若按回车健会关闭文本编辑框窗口而结束输入。 对ole 对象、超级链接两种类型数据,应通过单击access主菜单中的“插入(i)”、“对象(o)”或“超级链接”的方式来输入。 记录录入后,access系统会自动存盘。但输入的数据如违反了有效性规则或数据完整性时,access系统将给出错误提示并不能存盘。 2 2)利用)利用“ “自动窗体自动窗体” ”输入数据输入数据利用“自动窗体”输入数据是一种快速录入数据的方法,以“课程代码表”为例来说明“自动窗体”输入数据的方法。在“学生信息库:数据库”窗口中选择对象栏中

30、的“表”选项,在对象列表中选择要输入数据的“课程代码表”数据表。单击系统“菜单”、“自动窗体”或工具栏中的“自动窗体”按钮,弹出如图10-11所示“自动窗体”窗口。 图图10-11“自动窗体自动窗体”窗窗口口 请注意,窗体中的数据是表中原有的第一条记录的内容。而且,由于“课程代码表”与“学生成绩表”存在一多关系。因此,在窗体窗口的下半部分还有一个小窗口,显示了“课程代码表”当前记录所对应的“学生成绩表”子表记录,即该门课程的所有学生的成绩。如果表中原不存在记录,则弹出如图10-12所示“自动窗体”窗口。在图10-9“自动窗体”窗口中单击最下端最右边的追加记录“ ”按钮,这时就可以在如图10-1

31、0所示录入数据自动窗体的各个栏目中输入数据。当一条记录输入完成后,可单击单击窗口最下端的下一条记录“ ”按钮,在图10-10所示“自动窗体”中继续录入记录。 图图10-12 录入数据录入数据“自动窗体自动窗体” 4.1 4.1 表结构的修改表结构的修改 对表的结构进行修改,包括增、删字段,修改字段名、字段数据类型等。其操作方法: 打开相应的数据库文件,选择要修改结构的表。单击“设计”,弹出“设计视图”窗口。如要修改某字段,可单击该字段直接进行字段名、数据类型和字段属性的修改;如要增加字段,可在“设计视图”窗口中直接定义输入;如要在某字段前插入字段,可选择该字段,单击系统菜单上的“插入”、“行”

32、便可定义输入,插入一字段;如要删除某字段,可选择该字段,单击系统菜单上的“编辑”、“删除行”便可删除。4.2 4.2 表的主健和索引的设置表的主健和索引的设置1表主健的设置表主健的设置主健是唯一标识表中一条记录的关键字,这个关键字可以是表中的一个字段,也可以是表中多个字段组成的表达式。虽然在一个表中并不一定是必须的,但当在表之间需要建立关系时,就必须为表指定主健。主健的值在表中不允许重复,因此,在表中只能建立一个主健。当表的主健被建立,系统将以主健的次序显示表记录。并且,当输入新记录到数据表时,系统将检查主健字段的值是否有重复。如重复会拒绝接受。主健还能够加快在表中的查询速度。下面以“学生成绩

33、表”为例,来说明建立主健的操作步骤。 在“学生信息库”数据库窗口中选择对象栏中的“表”选项,在对象列表中选择相应的“学生成绩表”。单击“数据库”窗口工具栏上的“设计”按钮弹出“设计视图”窗口。 单击“学号”字段,按住ctrl或shift健,同时选择“课程代码”字段,使两个字段所在的行都被黑色覆盖。在“学生成绩表”中必须选择“学号”和“课程代码”两个字段的组合作为主健。 单击系统工具栏上的“主健”按钮,这时,如图10-13所示“学号”、“课程代码”字段的行选择器上各出现一个钥匙形状的图标。表示“学号”、“课程代码”两字段已成为“学生成绩表”的主健。图图10-13“学生成绩表学生成绩表”的主的主健

34、健 2索引索引 索引就是按照某个字段或某几个字段值的升序或降序排列表中的记录,用于加快在表中查询的速度。表的主健会自动建立索引,索引与主健的区别是,索引允许索引字段有重复值,而主健字段不允许有重复值。下面以“教师代码表”为例来说明建立索引的操作步骤。 在“学生信息库”数据库窗口中选择对象栏中的“表”选项,在对象列表中选择相应的“教师代码表”。单击“数据库”窗口工具栏上的“设计”按钮弹出“设计视图”窗口。 单击系统工具栏中的“索引”图标按钮 或系统菜单中的“视图(v)”、“索引(i)”命令,弹出图10-14“索引”对话框。 在“索引”对话框的“索引名称”列中选择索引字段,在“排序次序”列中选择排

35、序方式。请注意,有重复值的索引字段不能设置为主索引或唯一索引。 图图10-14“索引索引”对话对话框框 4.3 表之间关系的建立表之间关系的建立 在数据模型表示客观世界的过程中,一般要用多个实体集来描述。在多个实体集(数据表)之间就可能存在着相互的联系,这种联系有三种:一对一联系、一对多的联系、多对多的联系。数据表之间要建立关联必要条件是:必须存在公共字段。所谓公共字段,就是两表都具有的字段,我们把这个字段称为关键字段。1 1表之间的关系类型表之间的关系类型(1 1)一对一关系)一对一关系(1:1)(1:1) 一对一联系是指在两个实体集间存在一一对应的联系,即a实体集中的每个实体,在b实体集中

36、最多只能找到一个可以和它相联系的实体,反过来同样。那么这两个实体集之间就存在一对一的联系,记为1:1关系。例如:在“学生档案表”中一个学生只有一条记录,且对应在“高考成绩表”中该学生也只有一条记录,反过来也一样。所以,“学生档案表”和“高考成绩表”两个实体集之间是一对一的关系。(2 2)一对多关系)一对多关系(1:n)(1:n)或多对一(或多对一(m:1m:1) 一对多联系是指在两个实体集间存在一对多的联系,即a实体集的每个实体在b实体集中可以找到对应的多个实体;反过来说,在b实体集中的每个实体,却只能在a实体集中找到一个能够相联系的实体。那么,这两个实体集之间就存在着一对多的联系,记为1:n

37、联系。例如,“学生档案表”与“学生成绩表”的关系就是一对多的关系。一个学生在“学生档案表”中只有一个记录,而在“学生成绩表”中一个学生有多门课程的成绩,也就是说,一个学生在“学生成绩表”中存在多条记录。(3)多对多关系)多对多关系(m:n) 多对多联系是指在两个实体集间存在多对多的联系,即a实体集表的一个实体与b实体集的多个实体相对应,反过来同样。那么这两个实体集之间就存在多对多的联系,记为m:n联系。例如:学生与课程的联系就是m:n联系,一个学生可选多个课程,一个课程可被多个学生选修。在数据库中不能处理多对多关系。因此,必须增加一个“选课”实体集,将所有学生选课的实体存放在此实体集中。这样,

38、学生与选课实体集间存在一对多的联系,课程和选课实体集间也存在一对多的联系。从而,将学生与课程之间的多对多联系,分解成了两个一对多的联系。在这个转换过程中,“选课”实体集起到了桥梁的作用。 2表之间的关系的建立表之间的关系的建立 在数据库中凡是涉及到多表的操作,就必须首先建立表之间的关联,比如,多表的查询。两表之间要建立关联,其必要条件是必须创建主健且两表必须存在至少一个公共字段。所谓公共字段,就是两表都具有的字段,我们称之为关键字段。我们以“学生信息库”中的“学生档案”、“课程代码”、“学生成绩”三个表为例来分析。从图10-16可以看出,“学生成绩表”通过“学号”字段可以和“学生档案”表建立多

39、对一的关系,“学生成绩”表通过“课程代码”字段可以和“课程代码”表建立多对一的关系。但“课程代码”表和“学生档案”表是不能建立关系的,因为,两表之间没有公共字段。 现在,我们以“学生信息库”中的“学生档案”、“课程代码”、“学生成绩”三个表为例来说明建立关系的方法。 打开相应的数据库“学生信息库”。单击菜单“工具”、“关系”,弹出如图10-15所示的“显示表”对话框。图图10-15“显示表显示表”对话对话框框 在“显示表”对话框中选择将要建立关系的表,比如:“学生档案”、“课程代码”、“学生成绩”三个表“添加”到如图10-16所示的“关系”窗口。注意:多个连续文件的选择用shift+单击,多个

40、不连续文件的选择用ctrl+单击。 图图10-16“关系关系”窗口窗口 将“学生成绩”表中的“学号”字段拖曳到“学生档案”表的“学号”字段上,弹出如图10-17所示“编辑关系”对话框,单击“创建”按钮。如图10-18所示,可以看到这二个表之间有一条连线,表示关系已建立。如要改变系统默认的联接类型,可在“创建”之前,单击“联接类型(j)”,在“联接属性”对话框中选择联接属性,access系统为关系提供了三种不同的联接属。图图10-17“编辑关系编辑关系”对话框对话框 将“学生成绩”表中的“课程代码”字段拖曳到“课程代码”表的“课程代码”字段上,弹出“编辑关系”对话框,单击“创建”按钮。如图10-

41、18所示,可以看到这二个表之间又有一条连线,表示关系已建立。如果需要编辑、删除关系,单击鼠标右健,在弹出的快捷菜单中可选择“编辑关系”或“删除关系”来进行关系编辑、关系删除的操作。图图10-18关系已建立窗口关系已建立窗口 4-4 表记录的浏览、追加、修改与删除表记录的浏览、追加、修改与删除 打开相应的数据库文件,在“数据库”窗口中选择对象栏中的“表”选项,在对象列表中选择要操作的数据表。单击“打开”,弹出“数据表视图”窗口。用户可以在“数据表视图”窗口中浏览表记录。同时,在“数据表视图”窗口中可直接进行记录的修改、添加。如要删除记录,可选择要删除的记录,单击系统主菜单“编辑”、“删除记录”。

42、然后,在提示框中加以确认。 请注意,如图10-19所示,如果打开的表和其它有关表建立了一多关系,则在“数据表视图”窗口的最左端的列中会显示有一个“+”符号,单击该“+”号将打开与之有关联的子数据表。这时,用户也可以同时对子数据表进行浏览、添加、修改与删除记录的操作。图图10-19 数据表视图窗口数据表视图窗口 4.5 表记录的排序表记录的排序 在实际应用中经常要求表记录按照某个字段值的大小次序来重排记录,“主健”和“索引”都可以改变数据表记录的排列次序。现在,我们学习另一种改变表记录排列次序的方法;排序。排序是按照某个字段值的大小,以升序或降序方式重排记录。值的大小原则是,日期和时间后为大,字

43、母不区分大、小写后为大,中文以其对应的拼音字母次序排序。 我们以“学生档案表”的“出生日期”字段的升序为例来说明建立排序的方法。 打开“学生信息库”数据库文件,在“数据库”窗口中选择对象栏中的“表”选项,在对象列表中选择“学生档案表”数据表。单击“打开”,在弹出“数据表视图”窗口,单击“出生日期”字段标题单元格,这时“出生日期”字段所在的列反白显示,表示该字段已被选中。 单击系统工具栏中的升序“ ”或降序“ ”按钮或者选择系统菜单栏中的“记录”、“排序”、在“升序/降序”中选择“升序”。表记录会按照选定的字段的升序/降序重排记录。结果如图10-20所示。图图10-20 以出生日期以出生日期升序

44、排序结果升序排序结果 4.6 表记录的查找与筛选表记录的查找与筛选1查找查找 查找就是按照某种条件,对表或查询文件中的记录进行数据检索,并把光标定位到满足条件的某个记录。我们以“学生档案表”为例,查找学号为“9921201”的学生来说明查找的操作步骤。 在“学生信息库”窗口中打开“学生档案表”,弹出“学生档案表_数据表视图”。 单击系统工具栏中的查找按钮“”,在图10-21“查找和替换”对话框的“查找内容(n)”文本框内输入要查找的内容,如“9921201”。图10-21“查找和替换”对话框 在“查找范围(l)”列表框中选择“学生档案表”。如果打开表之后,已经把光标定位在“学号”字段上,则可以

45、不用选择“查找范围”。 在“匹配(h)”列表框中选择匹配方式:字段的任何部分(查找的内容只要是字段数据中的一个子集)、字段开头(查找的内容只是字段数据的一个左子串)、整个字段(查找的内容与字段数据完全相等)。本例要查找的是学号,应选择“整个字段”。 单击“高级(m)”按钮,在弹出的图10-22窗口中可进行“区分大小写(c)”的选择或“搜索(s)”范围的选择。图10-22 高级窗口 单击“查找下一个”按钮,开始查找。如果找到,如图10-23所示光标将定位在该记录上。这时,用户可以对该记录进行编辑、修改等操作。图图10-23 查找结果查找结果 2筛选筛选 查找只能把光标定位到满足条件的一个记录上,

46、而筛选能够以数据表的形式返回一组满足条件记录集。筛选的数据源可以是表或查询文件,筛选是把符合条件的记录全部挑选出来,而把不符合条件的记录过滤掉。 access提供了如图10-24所示的四种筛选方式:按选定内容筛选、内容排除筛选、按窗体筛选或高级筛选/排序。图图10-24 四种筛选方式四种筛选方式 我们以“学生选课成绩”查询文件为例,用高级筛选/排序的方式筛选“99212”班、“数据库技术”课程、“成绩”大于等于80分的学生。 打开“学生信息库”数据库文件,在“数据库”窗口中选择对象栏中的“查询”选项。在对象列表中选择“学生选课成绩”查询文件。单击“打开”,弹出“学生选课成绩:选择查询”窗口。

47、单击系统主菜单上的“记录”、“筛选”、“高级筛选/排序”选项,弹出如图10-25“高级筛选/排序”窗口。在“高级筛选/排序”窗口中选择输入筛选条件,其中“字段”是用来选择需要设定条件的字段,“排序”是用来对选定的字段设置排序方式,准则是用来设置筛选条件的,列之间是“逻辑与”的关系,行之间是“逻辑或”的关系。图10-25 “高级筛选/排序”窗口 单击系统菜单上的“筛选(r)”、“应用筛选/排序(y)”,筛选的结果如图10-26所示。 如果不要保存筛选的结果,则单击系统菜单上的“记录(r)”、“取消筛选/排序(r)”,“学生选课成绩”查询文件的数据不被改变。如果需要保存筛选结果,则可单击“保存”或

48、“另存为”命令。图图10-26 筛选结果筛选结果 5.1 创建查询创建查询 查询与筛选有些相似,也是按照用户的要求输出符合条件的记录。查询与筛选不同的是,查询的数据源可以来自多个相关联的表。而且,可以将多个表中的字段数据组合在一起,生成计算字段、总计和组合数据。 查询的结果是按照设置的条件和选择的字段产生一个数据表视图,数据表视图与表一样可以作为窗体和报表的数据源,其操作与表也基本相同。需要说明的是,基表和数据表视图中的数据是相互影响的。在查询的“数据表视图”窗口中对数据进行的修改、追加、删除等操作都将影响其基表中的数据。而基表中的数据发生改变时,视图中的数据也会发生改变。 查询分为单表查询和

49、多表查询二种,单表查询是指查询的数据来自一个表,多表查询是指数据来自多个相互之间已经建立了“关系”的表。就是说,多表查询必须将多表建立关联。 在access中建立查询有多种方法,一是“在设计视图中创建查询”,另一种是“使用向导创建查询”。同时,access也支持sql(structured query language)结构化查询语言。1 1在设计视图中创建查询在设计视图中创建查询(1 1)创建选择查询)创建选择查询 以查询课程名称为“数据库技术”或“vb程序设计”且成绩=80的记录为例,来说明在设计视图中创建查询的方法。 打开“学生信息库”数据库,在“数据库”窗口右侧“对象”框中单击“查询”

50、,选择“在设计视图中创建查询”,单击“新建”,弹出图10-27“新建查询”对话框。图图10-27“新建查询新建查询”对话框对话框 在“新建查询”对话框中选择“设计视图”方式,单击“确定”,弹出图10-28“设计查询”窗口。 在“显示表”对话框中按照查询的要求,选择一个表或多个表(多表的选择可以用shift键或ctrl健配合)。然后,单击“添加”、“关闭”,关闭“显示表”对话框。 如图10-29所示参与查询的表被添加到“选择查询”窗口。请注意,如果多表之间没有建立关系,可用拖曳方法临时建立。 在“选择查询”窗口下部选择字段、确定排序的方式、输入选择条件。本例选择了班级、学号、姓名、课程名称、成绩

51、四个字段并且以成绩的降序排列。准则是用来设置筛选条件的,列之间是“逻辑与”的关系,行之间是“逻辑或”的关系。输入选择条件为班级=”99212”,课程名称=”数据库技术”且成绩=80或者班级=”99212”,课程名称=”vb程序设计”且成绩=80。这时,单击系统工具栏中的运行按钮“ ”,结果如图10-30所示。图10-29“选择查询”窗口 图10-30 查询运行结果 然后,单击主菜单的“文件”、“保存”,如图10-31所示在“另存为”对话框输入文件名。最后,关闭“选择查询”窗口,如图10-32所示在“数据库”窗口中“成绩大于80的学生”查询被建立。图10-31 保存文件 图10-32“数据库”窗

52、口 (2)创建带参数的查询)创建带参数的查询 带参数的查询是access查询的一个最重要的特征。参数也是准则,不同的是准则是在创建查询时设置的,而参数是在运行或打开查询时输入的。 创建带参数的查询与选择查询的创建方法基本相同,只是准则的设置方式不同。我们以按“学号”和“课程名称”查询为例来说明准则的设置。图10-33带参数的查询准则的设置 从图10-33中可以看到,“学号”准则的设置为请输入要查询成绩的学号:,“课程名称” 准则的设置为请输入要查询成绩的课程名称:,在设置带参数的准则时,提示信息一定要用方括号“”括起来。 当运行或打开查询时会给出图10-34提示,请用户输入“学号”和“课程名称

53、”参数,运行结果如图10-35所示。图图10-34输入参数值提示窗口输入参数值提示窗口 图图10-35 运行结果运行结果 (3 3)创建统计查询)创建统计查询 统计查询与“选择查询”和“带参数的查询 的创建方法也基本相同,只是在打开“设计查询”窗口后,要单击系统工具栏中的“合计” 按钮,这时在“设计视图”窗口的设计区会增加一行“总计”栏。我们以按“班级”和“课程名称”作为分组项统计课程的平均成绩、最高成绩、最低成绩、标准偏差为例来说明统计查询的设计方法。 首先在“班级”和“课程名称”的总计框中选择group by。然后,分别在其它的四个字段的总计框中选择avg、max、min、stdev函数求

54、平均成绩、最高成绩、最低成绩、标准偏差。在准则中输入请输入课程名称:。其设计界面如图10-36,运行结果如图10-37所示。 图图10-36 统计查询设计界面统计查询设计界面 图图10-37 统计查询运行结果统计查询运行结果 2 2使用向导创建查询使用向导创建查询 打开相应的数据库,在“数据库”窗口右侧“对象”框中单击“查询”,选择“使用向导创建查询”,单击“新建”,弹出“新建查询”对话框。 在“新建查询”对话框中选择新建“简单查询向导”方式,单击“确定”,弹出图10-38“简单查询向导”窗口。图10-38“简单查询向导”窗口 在“简单查询向导”窗口的“表/查询”列框中选择表,在“可用字段(a

55、)”中双击需要的字段到“选定的字段(s)”框中,单击“下一步”,弹出图10-39“简单查询向导”窗口。图10-39“简单查询向导”窗口 在“简单查询向导”窗口中选择“明细”或“汇总”,本例选择“汇总”,单击“汇总选项”,弹出图10-40“汇总选项”窗口。 图10-40“汇总选项”窗口 选择汇总类型,如本例选择“平均”、“最小值”、“最大值”。单击“确定”,返回图10-37“简单查询向导”窗口,单击“下一步”,弹出图10-41“简单查询向导”窗口。单击“完成”,显示如图10-42所示的汇总结果。图10-41“简单查询向导”窗口 图10-42 汇总结果 5.2 5.2 查询的运行查询的运行 在“查

56、询设计”界面可单击系统菜单的“查询”、“运行”,也可单击工具栏的运行按钮。我们知道,查询产生一个数据表视图,数据表视图的操作与表是基本相同。在“数据库”界面可单击“对象”列表中的“查询”,再选择相应的查询文件,单击菜单栏中的“打开”。 sql(structured query language)结构化查询语言是1994年由boyce和chamberlin研制的。由于它功能丰富、使用方法灵活、语音简洁易学、适用语言广,在1987年成为一种操作关系数据库的国际化工业标准语言。采用sql作为共同的数据存取语言和标准接口,使得不同的数据库管理系统之间的相互操作成为可能。结构化查询语言sql常用的语句有

57、两类:一是数据查询命令select;二是数据更新命令;三是建立、修改和删除数据表的命令。这些命令是各种高级语言应用程序操作数据库的重要命令。我们以access为例来介绍结构化查询语言sql。 6.1 数据更新命令数据更新命令数据更新命令包括insert(追加),delete(删除)和update(更新)命令。1追加记录追加记录用于在数据表的末尾追加一条记录。格式一insert into (字段名1,字段名2,) values (表达式1,表达式2)格式二insert into 表名 (字段名1,字段名2,) from array 数组名参数说明: insert总是在数据表的末尾追加一条记录,即

58、使在insert命令之前执行go命令也不能定位插入。 如果选择字段参数表(字段名1,字段名2,),则将数组各元素的值依次赋给指定的字段。否则,将数组各元素的值依次赋给表结构定义的字段。例如:insert into 用户表 (用户名,密码) values(“汪成功”,”2006123”)2逻辑删除表记录逻辑删除表记录给表中满足过滤条件的记录作删除标记。delete from where 过滤条件1 .and./.or. 过滤条件1参数说明: 过滤条件之间可以用and或or来进行条件选择。例如:delete from 学生档案表 where 学号=9832102 &对学号为9832102的记录作删

59、除标记。3更新表记录更新表记录用表达式的值替换满足过滤条件的表记录的有关字段的值。update set 字段名1=表达式1,字段名2=表达式2where过滤条件1 .and./.or. 过滤条件1参数说明: 表达式的数据类型与对应字段的数据类型一致。例如:update 学生成绩 set 成绩=100 where 学号=9832103 and 课程代码=0180016.2 select-sql查询语句查询语句利用select-sql查询语句,可以从一个表或多个相关联的表中进行查询。在多表中进行数据查询,首要的条件是多表之间要有公共字段,并通过公共字段建立表之间的关联。建立sql查询,首先要通过打

60、开sql查询编写窗口。其步骤是:打开相应的数据库、选择对象列表框中的“查询”、选择“在设计视图中创建查询”或“使用向导创建查询”、单击“新建”、在“新建查询”窗口中选择“设计视图”、关闭“显示表”、单击accees工具栏右端的“ ”按钮并选择“sql视图”,打开了如图10-43所示的sql查询编写窗口。 图10-43 sql查询编写窗口 select-sql查询语句有两种命令形式:1命令形式一命令形式一select 数据表名.选项1 as ,数据表名.选项2 as , 数据表名.选项n as;from 数据表名1 , 数据表名2. , 数据表名n;where 连接条件1 and 连接条件2.

温馨提示

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

最新文档

评论

0/150

提交评论