数据库基础理论与基本操作_第1页
数据库基础理论与基本操作_第2页
数据库基础理论与基本操作_第3页
数据库基础理论与基本操作_第4页
数据库基础理论与基本操作_第5页
已阅读5页,还剩293页未读 继续免费阅读

下载本文档

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

文档简介

1、本资料来源,目录,第1章Visual FoxPro基础 第2章数据与数据运算 第3章数据库操作 第4章查询与视图 第5章程序设计基础,第6章面向对象程序设计 第7章表单 第8章报表 第9章菜单 第10章项目与项目管理器 第11章小型系统开发实例,第一章,数据库基础理论,返回目录,本章要点,信息、数据和数据处理 数据模型 数据库系统 关系数据库及其设计,返回目录,1.1 信息、数据和数据处理,1.1.1 信息与数据 信息:是对客观世界的抽象描述。 数据:数据是用于记录客观事物属性的 物理符号,数据:包括文本形式数据和多媒体数据 如:声音和视频、图片等,1、从信息处理角度看,任何事物的属性都是通过

2、数据来表示,数据经过加工处理后,从而形成信息。 2、从计算机的角度看,数据泛指那些可以被计算机接受并能够被计算机识别处理的符号。 3、总之,信息是有用的数据,数据是信息的表现形式,信息是通过数据符号来传播的,数据与信息的区别,数据处理是指利用计算机将数据转换成信息的过程,包括对数据的收集、存储、加工、分类、排序、检索、传播等一系列活动。 其目的是从大量的原始数据中抽取和推导出有价值的信息,作为决策的依据,1.1.2 数据处理,信息、数据与数据处理的关系可用下式简单表示: 信息 = 数据 + 数据处理 数据是原料(输输入),信息是产出(输出),“信 息处理” 则是为了产生信息而处理数据,1.1.

3、3 数据管理技术(可分为3个阶段,1人工管理阶段(20世纪50年代中期以前) 特点:数据不长期保存,没有对数据进行管理的软 件,一组数据对应于一个程序,2文件系统阶段,时间:20世纪50年代后期至60年代。 特点 :数据以文件形式长期保存;数据与程序有一定的独立性。 缺点 :数据冗余度大 ;数据独立性差;缺乏对数据的统一控制管理,图示,3数据库系统管理阶段,时间:20世纪60年代后期开始 特点:(1)有了数据库管理系统(DBMS) (Database Management System)。 (2)面向全局。 (3)具有较高的数据独立性 (4)有统一的数据控制功能,图示,数据库系统管理阶段即对所

4、有的数据实行统一规划管理,形成一个数据中心,构成一个数据“仓库,1.2 数据模型,数据模型是对客观事物及其联系的数据描述,反映实体内部和实体之间的联系。 1.2.1 实体及其联系 1、实体 从数据处理的角度看,现实世界中的客观事物称为实体,2. 实体间的联系 实体之间的对应关系称为联系,它反映了现实世界事物之间的相互关联。 1)一对一联系(1:1) 2)一对多联系(1:n) 3)多对多联系(m:n,1.2.2 具体数据模型,在数据库系统中,常用的数据模型有: 层次模型 网络模型 关系模型,1.2.1 层次模型,1层次模型:层次模型用树形结构来表示实体及其之间的联系。特点: 1)有一个结点没有父

5、亲,称为根结点。 2)其它结点有且仅有一个父亲。 实体之间的联系是1:M联系(包括1:1联系,层次结构图示,实例,层次模型优点:层次清晰、构造简单、易于实现1:1和1:M的实体联系。 采用层次模型来设计的数据库称为层次数据库,2、网状模型,是用以实体型为结点的有向图来表示各 实体及其之间的联系。特点: 1) 可以有一个以上的结点无父亲。 2) 至少有一个结点有多于一个的父亲。 能表示 M:N 联系。 缺点:编写应用程序复杂,模型结构复杂,图示,图示,关系模型 是用二维表格来表示实体及其相互之间的联系。在关系模型中,把实体集看成一个二维表,每一个二维表称为一个关系。每个关系均有一个名字,称为关系

6、名,3.关系模型,关系模型图例,元组 (记录值,属性(数据项,表头,学生成绩关系,后退,(1) 关系中每一分量不可再分,是最基本的数据单位; (2) 每一竖列的分量是同属性的,列数根据需要而设,且各列的顺序是任意的; (3) 每一横行由一个个体事物的诸多属性构成,且各行的顺序可以是任意的; (4) 一个关系是一张二维表,不允许有相同的属性名,也不允许有相同的元组,关系模型的主要特点,1.3 数据库系统,1.3.1 数据库 数据库(Data Base)是数据库系统的核心和管理对象,所谓数据库,就是以一定的组织方式将相关的数据组织在一起,存放在计算机外存储器上形成的,能为多个用户共享的,与应用程序

7、彼此独立的一组相关数据的集合,1、 数据库系统的组成 数据库系统DBS(Database System)是由计算机硬件、软件、 数据库、数据库系统有关人员组成。是具有高度组织性的总体,1.3.2 数据库管理系统,硬件及软件构成,1. 硬件 除要求CPU的处理速度高、内存容量大以外,还要求有足够的外存空间以存储数据库中的数据,2. 软件 数据库系统中的软件包括操作系统、数据库管理系统及数据库应用系统等,数据库管理系统DBMS,DBMS(DataBase Management System)是数据库系统的核心软件之一。 主要目标是使数据成为方便用户使用的资源,易于为各种用户所共享,并增进数据的安全

8、性、完整性和可用性。它提供数据定义、数据操作、数据库管理、数据库建立和维护以及通信等功能,现今流行的DBMS,目前较流行的数据库管理系统有:Oracle、Sybase、SQLServer、Access、Visual Foxpro等,数据库中的数据由DBMS进行统一管理和控制,用户对数据库进行的各种数据操作都是通过DBMS实现的,数据库系统的组成示意图,1.4 关系数据库及其设计,1.4.1 关系数据库 关系数据库(Relational Data Base)是若干个关系的集合。也可以说,关系数据库是由若干张二维表组成的。 在关系数据库中,将一个关系视为是一张二维表,又称其为数据表。 一个关系数据

9、库由若干个数据表组成,数据表又由若干个记录组成,而每一个记录是由若干个以字段属性加以分类的数据项组成的,关系 模型理论与关系数据库中术语的对照关系,在数据表中,若某一字段或几个字段的组合值能够标识一个记录,则称其为关键字(或键),当一个数据表有多个关键字时,可从中选出一个作为主关键字(或主键)。见表,关键字及主键,在关系数据库中,数据表之间是具有相关性的。数据表之间的这种相关性是依靠每一个独立的数据表内部具有相同属性的字段建立的。一般地,两个数据表之间建立关联关系,是将一个数据表视为父表,另外一个数据表视为子表,其中子表中与父表主关键字段相对应的字段作为外键,数据表之间的关联就是通过主键与外键

10、作为纽带实现关联的。见表,数据表之间的关联,在关系数据库中,数据表为基本文件,每个数据表之间具有独立性,而且若干个数据表间又具有相关性,使得数据操纵方式简单,这一特点使其具有极大的优越性,并能得以迅速普及,表1-4 信息中心专门人才基本情况一览表,1.4.2 关系的规范化,专门人才基本情况一览表(如表1-5所示),它收入了自然情况。 专门人才专业特长一览表(如表1-6所示),它收入了专业特长情况。 专门人才成就成果情况一览表(如表1-7所示),它收入了成就及成果情况,构建数据表,表5 信息中心专门人才基本情况一览表,表1-6 信息中心专门人才专业特长一览表,表1-7 信息中心专门人才成就成果一

11、览表,专门人才基本情况数据库,如何反映客观事物数据间的多种对应关系?通常将对应数据表放入同一个数据库中,并建立表间关联来刻画联系。 在同一个数据库中,相关联的表间关系的类型有一对一、一对多和多对一3种关系,1.4.3 表间关联关系的类型,1一对一关系 一对一关系即在两个数据表中选一个相同属性字段作为关键字段,把其中一个数据表中的关键字段称为主关键字段,该字段值是唯一的,而另一个数据表中的关键字段称为外来关键字段,该字段值也是唯一的,一对一(编号,后退到,到,到,到,2一对多关系 一对多关系,即在两个数据表中选一个相同属性字段作为关键字段,把其中一个数据表的关键字段称为主关键字段,该字段值是唯一

12、的,而把另一个数据表中的关键字段称为外来关键字段,该字段值是重复的,一对多(编号,到,到,3多对一关系 多对一关系与一对多关系是类似的,唯一的区别是在两个相关联的数据表中,选择哪一个数据表中的关键字段为主关键字段,该字段值是重复的,与它关联的另一个数据表中的关键字段为外来关键字段,该字段值是唯一的,多对一(编号,关系的完整性,即关系中的数据及具有关联关系的数据间必须遵循的制约和依存关系,以保证数据的正确性、有效性和相容性。 关系的完整性主要包括域完整性、实体完整性和参照完整性三种,1.4.4 关系的完整性,1域完整性 域完整性是对数据表中字段属性的约束,它包括字段的值域、字段的类型及字段的有效

13、规则等约束,它是由确定关系结构时所定义的字段的属性决定的。 见表,2实体完整性 实体完整性是对关系中的记录唯一性,也就是主键的约束。准确地说,实体完整性是指关系中的主属性值不能为Null且不能有相同值。见表,3参照完整性 参照完整性是对关系数据库中建立关联关系的数据表间数据参照引用的约束,也就是对外键的约束。准确地说,参照完整性是指关系中的外键必须是另一个关系的主键有效值,或者是NULL。见表,关系运算是以关系为运算对象的运算,在关系运算中,变量是关系,运算结果仍然是关系。 常见的关系运算有选择运算、投影运算和连接运算三种,1.4.5 关系运算,1选择(Select) 选择运算是从关系中选择某

14、些满足条件的记录组成一个新的关系。也可以说,选择运算是在关系R中选择满足给定条件的元组。见表,2投影(Projec) 投影运算是从关系中选择某些字段的所有值组成一个新的关系。也可以说,投影运算是在关系R中选择出若干属性列。见表,3连接(Join) 连接运算是将两个或多个关系通过连接条件组成一个新的关系。也可以说,连接运算是在关系R和关系S中选择属性间满足一定条件的元组。见表,表1 选修数据库学生成绩,选择(成绩(数据库)=90,投影(表1.学号,表1.成绩,连接(表1.学号=表2.学号,表2 选修法律学生成绩,关系运算实例,到58,到59,到60,本章小结,第1章 数据库基础理论,1、数据库的

15、3种模型 2、数据库、数据库系统、DBMS的概念 3、关系数据库的相关概念 4、关系的完整性 5、关系的运算,no2,复习,数据库管理发展阶段,人工管理阶段、文件、数据库,数据库系统组成,软件、硬件、数据库管理人员,数据模型,实体、属性、联系,数据模型分类,层次、网络、关系,关系数据库,关系模型,元组(行、纪录),属性(列,字段,关系运算,选择、投影、联结,Visual FoxPro系统概述,本章要点,Visual FoxPro的安装与启动 Visual FoxPro系统环境的配置 Visual FoxPro用户界面 Visual FoxPro向导 Visual FoxPro生成器 Visua

16、l FoxPro设计器,2.1Visual FoxPro的安装与启动,2.1.1 安装环境 2.1.2 Visual FoxPro 的安装,启动Visual FoxPro有多种方法,可采用以下三种方式之一。 1从“开始”菜单启动 2从资源管理器中启动 3从“运行”对话框中启动,2.1.3 启动Visual FoxPro,在Microsoft Visual FoxPro主菜单中,打开“文件”菜单,选择“退出”选项; 按Alt+F4组合键; 按Ctrl+Alt+Del组合键,进入“关闭程序”窗口,按“结束任务”按钮; 在Microsoft Visual FoxPro的系统环境窗口,单击其右上角的“

17、退出”按钮; 在“命令”窗口,输入命令Quit,2.1.4 退出Visual FoxPro,2.2Visual FoxPro系统环境的配置,Visual FoxPro系统环境的配置,决定了Visual FoxPro系统的操作环境和工作方式。 Visual FoxPro系统允许用户设置大量参数控制其工作方式。通过设置系统环境,可以添加或删除Visual FoxPro控件、更新Windows Registry注册项、改变选项栏和工具栏、安装ODBC数据源等,系统环境配置操作步骤,工具,选项,常规,数据,显示,文件位置,表单,项目,控件,确定,2. Visual FoxPro用户界面,2.1 Vis

18、ual FoxPro的界面 Visual FoxPro界面,是由标栏、菜单栏、工具栏、工作区、状态栏和命令窗口组成的,2.2 标题栏,标题栏位于屏幕界面的第一行,它包含系统程序图标、主屏幕标题、最小化按钮、最大化按钮和关闭按钮5个对象,菜单栏,工具栏,命令窗口,状态栏,工作区,标题栏,Visual FoxPro菜单项的功能 (1) “文件”菜单 (2) “编辑”菜单 (3) “显示”菜单 (4) “格式”菜单 (5) “工具”菜单 (6) “程序”菜单 (7) “窗口”菜单 (8) “帮助”菜单,2.3 菜单栏,Visual FoxPro系统提供了11种常用的工具栏: (1)常用工具栏 (2)

19、布局工具栏 (3)表单控件工具栏 (4)表单设计器工具栏 (5)查询设计器工具栏 (6)视图设计器工具栏 (7)数据库设计器工具栏(8)报表控件工具栏 (9)报表设计器工具栏 (10)调色板工具栏 (11)打印预览工具栏,2.4.4 工具栏,激活工具栏的操作步骤,显示,工具栏,常用,确定,命令窗口位于菜单栏和状态栏之间,是Visual FoxPro系统命令执行、编辑的窗口。 在“窗口”菜单下,选择“隐藏”,可以关闭命令窗口;选择“命令窗口”,可以弹出命令窗口,2.4.5 命令窗口,状态行位于屏幕的最底部,用于显示某一时刻的管理数据的工作状态。 (1) Set Status off/ on,可控

20、制屏幕上的状态行是否出现。 (2) 当前工作区中表文件打开后,状态行显示将显示该表的相关内容,2.4.6 工作区与状态行,2.5 Visual FoxPro向导,用户通过系统提供的各种不同的向导设计器,不用编程就可以创建良好的应用程序界面,并完成许多有关对数据库的操作。 常用的向导设计器有:表向导、表单向导、报表向导、查询向导 等,2.6 Visual FoxPro生成器,Visual FoxPro系统提供的生成器,可以简化创建和修改用户界面程序的设计过程,提高软件开发的质量。每个生成器都由一系列选项卡组成,允许用户访问并设置所选对象的属性。 常用的生成器有:组合框生成器、命令组生成器、表达式

21、生成器、列表框生成器等,2.7 Visual FoxPro设计器,系统提供的设计器,为用户提供了一个友好的图形界面。用户可以通过它创建并定制数据表结构、数据库结构、报表格式和应用程序组件等。 常用的设计器有:表设计器、查询设计、视图设计器、列表框生成器、报表设计器、数据库设计器、菜单设计器等。,本章小结,第章 系统概述,熟悉的用户界面,掌握各组成部分的大致功能 如何设置系统的系统环境,第2章,数据与数据运算,本章要点,数据类型 数据存储 函数 表达式,2.1 数据类型,概念: 数据记录了客观事物的属性,包括两个方 面:数据内容和数据形式 。前者是数据的值, 后者是数据的存储形式和使用方式,也称

22、为数 据类型,字符型,数据类型,不能进行算术运算 用字母C表示 包括一切可打印字符,例如,中文字符、英文字符、数字字符和其他ASCII字符等 长度(即字符个数)范围为0254,每个字符占一个字节,数值型,数据类型,表示数量并可以进行算术运算 用字母N表示 数值型数据在内存中占用8个字节,数据长度(即数据位数)为120位,货币型,用来存储货币值 用字母Y表示 默认保留4位小数,占用8字节存储空间,数据类型,日期型,日期型数据表示不带时间的日期数据 用字母D表示 长度固定为8个字节,年月日之间的分隔符占一个字节,数据类型,日期时间型,表示日期和时间的数据 用字母T表示 长度固定为8个字节,数据类型

23、,逻辑型,描述客观事物真假 ,表示逻辑判断的结果 用字母L表示 长度固定为1个字节,数据类型,备注型,用于存放较多字符型数据(超过254个字符)或者长度不一的字符型数据 用字母M表示 备注型数据只能作为数据表中备注型字段的值 备注型字段长度固定为4个字节,这4个字节存储的是实际数据在.fpt文件中的存储位置,数据类型,通用型,数据类型,存储OLE(对象链接与嵌入)对象 (比如:电子表格、文档、图形、声音 ) 用字母G表示 只能用于数据表中的字段类型定义 通用型数据字段长度固定为4个字节,实际数据存放在与表文件同名的备注文件(.fpt)中,整型/浮点型/双精度型,都具有数值特征 都只能用于字段变

24、量 浮点型用字母F表示,功能上与数值型等价。 双精度型提供更高的数据精度 ,每个双精度型数据占8个字节 整型用于存储无小数部分的数值 ,整型字段占4个字节 ,用字母I表示,数据类型,常量与变量,常量是以直观的数据形态和意义的形式出现的数据,其值保持不变。按常量取值的数据类型,可将常量分为6种类型,变量是在操作过程中其值可以被改变的数据对象,必须在对其赋值之后才能使用。详细讲解,字符型常量,用规定的定界符括起来的一串字符,又称为字符串 字符串定界符有单引号( )、双引号( )、方括号( )三种 定界符内没有任何字符就是空串( ) 选出正确的字符型常量:3*9 hello 你好 Iam a stu

25、dent,数值型常量,由阿拉伯数字、小数点和正负号组成 没有定界符,可以是整数和小数,不能直接表示分数 两种表示方法:小数形式和指数形式 正确:117、-12.5、2.1E3(表示2.1*1000) 错误:117、1/5,货币型常量,货币型常量的书写格式与数值型常量类似,但要加上一个前置的$ ,例如$1000 货币型数据在存储和计算时,采用4位小数 ,不能采用指数形式 。例如,货币型常量$3.1415926,将存储为$3.1416,日期型常量,定界符为花括号( 或者 ) 输入格式为yyyy/mm/dd(唯一,例如:2006/10/18) 年月日之间用分隔符隔开,分隔符可以是“/” 、“-” 、

26、“.” 等符号 输出显示格式有多种,具体使用哪一种格式主要与日期格式的设置相关,日期的默认显示格式是mm/dd/yyyy,严格的日期格式,日期时间型常量,定界符也为花括号( 或者 ) 输入格式为yyyy/mm/dd,hh:mm:ssa|p,例如:2006/02/10 22:22:22 p 其分隔符与日期型数据分隔符相同,时分秒之间用“ :”分隔 输出显示格式有多种,具体使用哪一种格式主要与日期格式的设置相关,日期时间的默认显示格式为 :mm/dd/yyyy , hh:mm:ssa|p ,例如,09/01/2005 11:45:30 pm,严格的日期与时间格式,逻辑型常量,逻辑型常量只有“真”和

27、“假”两种值 定界符为圆点(. .) 逻辑真用.T.、.t.、.Y.或.y.表示,逻辑假用.F.、.f.、.N.或.n.表示。 注意:字母前后的圆点不能省略,变量,常量与变量,概念,命名规则,字段变量,内存变量,变量实质是具有某一地址的存储单元 ,该地址被赋以名字,通过名字可以访问和存取该地址中的值,这个指向某个地址的名字就是变量名,1) 只能使用字母、汉字、下划线和数字命名。 (2) 命名必须以字母、汉字或下划线开头。除自由表中字段名、索引的TAG标识名最多只能10个字符外,其他的命名可使用1128个字符。 (3) 不可与系统保留字同名。例如,for、quit、list等系统保留字,a2b、

28、年龄、Dept_3 2ab、*B、for、a,字段变量指表中的字段,是一种多值变量,其值是表记录指针当前所指的那条记录对应字段的值,可以是任意数据类型,内存变量是一种独立于表,并使用临时工作单元的变量,用户退出VFP或关机就会消失。 内存变量的类型一般是常用的六种。用内存变量名实现对内存变量的访问,如果内存变量与字段变量同名,则在调用该内存变量时应在内存变量名前加上符号“M.”或“M-” 。例如,M.姓名表示内存变量“姓名”的值,备注型、通用型、整型、浮点型、双精度型、二进制字符型和二进制备注型等数据类型只能用于字段变量中,内存变量,内存变量的赋值 命令格式1:= 命令格式2:STORE TO

29、 例子:a=.t. AND 性别“男” 显示:.T. 解析:这是将三个关系表达式用逻辑运算符连接起来构成的逻辑表达式,主要是清楚三个逻辑运算符之间的优先级问题,4)SET EXACT ON A湖南长沙 BALEFT(A,4) ?IIF(B, 长沙,北京) 显示:北京 解析:BALEFT(A,4)是一个赋值语句,是将关系表达式ALEFT(A,4)的值赋给变量B,因为ALEFT(A,4)左边的值为“湖南长沙”,右边为“湖南” ,而且是精确比较,所以其值是逻辑假,故B=.F.,例3】学生表的结构如下: 学生(学号 C 6,姓名 C 10,性别 C 2 ,出生日 期 D,少数民族否 L,籍贯 C 10

30、,入学成绩 N 5.1,简历 M,照片 G) 针对学生表,写出下列条件: (1)姓“张”的学生。 (2)20岁以下的学生。 (3)家住湖南或湖北的学生。 (4)汉族学生。 (5)入学成绩在580分以上的湖南或湖北的学生。 (6)20岁以下的少数民族学生,1)姓“张”的学生 条件1:AT(张,姓名)=1 条件2:SUBSTR(姓名,1,2)=张 条件3:姓名=张 (2)20岁以下的学生 条件1:DATE()-出生日期0,4)汉族学生 条件1:NOT 少数民族否 条件2:少数民族否.F. 条件3:IIF(少数民族否,少数民族,汉族)=汉族 (5)入学成绩在580分以上的湖南或湖北的学生 条件1:入

31、学成绩580 AND “湖” $ 籍贯 条件2:入学成绩580 AND (籍贯=“湖南” OR 籍贯=湖北) 由于AND运算优先级比OR要高,为了保证先做OR运算,条件2中的括号是必不可少的。 (6)20岁以下的少数民族学生 YEAR(DATE()-YEAR(出生日期)=20 AND 少数民族否,No 3,数据类型:字符型C,数值型N,货币型Y,逻辑型L,通用型G,备注型M,日期型D,时间型T VARTYPE中:U未定义,X null值,O对象型 变量: STORE TO ? |? 数组 DIMENSON (下标1,下标2,表达式,函数,数值型 字符型 日期时间型 数据类型转换型 测试型,第3

32、章,数据库 数据表 索引和排序 数据完整性 多工作区操作,主要内容,3.1 创建数据库,1 建立数据库 Create DataBase,创建数据库的操作步骤,文件,新建,数据库,新建文件,数据库设计器,保存,数据库名,确定,2 打开数据库 Open DataBase Modify DataBase,关闭数据库 close DataBase 关闭数据库和除主窗口外的窗口 close all,修改数据库 MODIFY DataBase 删除数据库 DELETE DataBase DELETE TABLES参数表示数据表也删除,数据库添加数据表的操作步骤,文件,打开,数据库,数据库设计器,添加表,打

33、开,数据库设计器,添加表,打开,保存,通常数据表只能属于一个数据库文件,如果想向当前数据库中添加的表已被添加到了别的数据库中,则必须先将其从其他数据库中移去后才能添加到当前数据库中,命令方式,自由表加入数据库Add table 先要打开数据库 数据库表移出数据库remove table,表的基本操作包括:数据表的建立与维护,表结构的显示与修改,记录的显示、追加、定位、插入、修改与删除,数据表的复制,数据表的排序、索引、查询,数据表统计与汇总以及多表操作等,VFP数据表基本操作,4.1.1 设计表的结构,建立表文件包括给表文件命名、建立表结构、输入数据记录等,建立表结构就是确定表文件中每一个字段

34、的字段名、字段类型、字段宽度、小数位数以及允许是否为空,1. 表文件的命名规则,2. 设计表文件结构,1)字段名(Field Name) 字段名是以汉字、字母或下划线开头,后面可以是汉字、字母、数字或下划线组成,但不可以有空格,自由表的长度不超过10个字符。 (2). 字段类型(Type) 字段类型对应于二维表格栏目填写内容的类型,是字段变量的类型,3).字段宽度(Width) 字段宽度用以表明该字段存放数据所需的宽度。用户在建立表时,只有字符型、数值型、浮点型需要用户输入所需的宽度,其他类型字段的宽度由系统自动确定,4). 小数位(Dec) 只有数值型和浮点型字段才有小数位, 小数位的宽度是

35、015位。 (5).是否允许为空 表示是否允许该字段接受空值(NULL,4.1.2 建立表的结构,在Visual FoxPro中,可以采用二种方式创建一个表的结构,命令方式:使用Create命令,菜单方式:使用“文件”菜单中的“新建”命令,1. 命令方式,命令格式1: Create table (字段1 类型(长度), (字段2 类型(长度) 命令格式2: Create 功能:该命令用于在命令窗口中直接创建一个表。 注意:一个自由表,那么在执行该命令时不能打开任何数据库。否则,创建的是一个数据库表,2. 菜单方式,通过菜单“文件”“新建”“表,4.1.3 输入记录,表结构输入或修改完成后单击“

36、确定” ,保存表结构;系统提示“现在输入数据记吗?”,打入Y,表明立即输入记录内容,否则表明仅仅建立了一空表文件。 特别注意备注和通用型数据的输入,它们的输入方法和其它类型数据的输入有所不同,4.2表的显示与维护,建立了表以后,需要对表进行维护,这包括表的修改、记录的增加与删除、表的复制等操作,通过这些操作保证表的合理性和正确性。为了及时了解表的变化需要对表进行显示操作,4.2.1 表的打开与关闭,1 表的打开 (1)命令方式 USE表文件名NoupdateExclusiveShared 功能:该命令用于在指定的工作区打开指定的表。 说明:其中Noupdate指定以只读方式打开表,Exclus

37、ive指定以独占方式打开表,Shared指定以共享方式打开表,2)菜单方式,2. 关闭表,1.命令方式 命令格式: USE 命令功能:该命令用于关闭当前工作区中的表,2.菜单方式: 使用“数据工作期”窗口,4.2.2 表的显示,一个表由两部分组成:表结构和表记录,因此表的显示就有两类命令,分别显示表结构和表记录,1. 表结构的显示,1.命令方式 命令格式:ListDisplay Structure to printer |to file 功能:查看数据表各字段的名字、类型、宽度等信息。 2.菜单方式 选择”显示”菜单表设计器选项,进入表设计器对话框, 可查看,2. 表记录的显示,List/Di

38、splay命令 命令格式: List | Display fields 范围for whileto printer prompt |to file OFF 功能:显示当前表中指定范围内符合条件的记录的指定字段的内容,范围:有种限定方法 ALL NEXT RECORD REST,FOR与WHILE的区别: 其子句都为逻辑表达式,用来指定选 择记录的条件 但后者仅在当前记录满足条件的时候 开始依次筛选记录,一旦遇到不满足条件 的记录时就停止筛选 OFF用于在显示记录时不显示记录号,4.2.3 表的修改,1.表结构的修改 (1)命令方式 命令格式:modify structure 功能:修改当前打开

39、的表的结构,2)菜单方式 选择”显示”菜单表设计器选项,进入”表设计器”对话框,命令格式: BROWSE FIELDS,FOR|WHILE NOAPPENDNODELETENOEDIT | NOMODIFY 功能:以窗口方式显示记录,同时还能输入和修改记录。 菜单方式,2表记录的修改Browse命令,1)FIELDS ,子句用于指定在浏览窗口中显示哪些字段。 :R 用于设置相关字段为只读。 :H=“字符表达式”表示将其前的字段用字符表达式代替,2)NOAPPEND不能用Ctrl+N键追加记录,3)NODELETE不能用Ctrl+T键删除记录,命令说明,例】 在浏览窗口中,将Student表的s

40、tudid字段和name字段设置为只读,那么应执行如下命令: USE Student BROW FIEL studid:R,name:R,sex,birthday,例】 在浏览窗口中,若要对Student表的studid字段和name字段分别设置字段标题:“学号”和“姓名”, 那么应执行如下命令: USE Student BROW FIEL studid:H=学号,name:H=姓名,3. 记录的修改,1)CHANGE/EDIT命令 格式:CHANGE/EDIT FIELDS FOR|WHILE 功能:以全屏幕编辑方式修改记录,2)REPLACE命令 格式:REPLACE FOR|WHILE

41、WITH ADDITIVE ,WITH ADDITIVE 功能:在指定范围内,将满足条件的记录的指定字段用对应表达式的值替换。 如果有for条件而且范围缺省,则范围表示为ALL. 如果没有for条件,范围缺省,则范围表示为当前记录,例】若要将Stud表婚否字段的数据“T”全部更新为“F”, 那么可以使用的命令,USE Student REPLACE 婚否 WITH .F. FOR 婚否=.T,4.2.4 表记录指针的定位,1.记录指针 对于表文件来说,记录指针是一个重要的概念,每个打开的表文件均有一惟一的记录指针,2记录定位命令 (1)指针绝对定位 命令格式: GOTO|TOP|BOTTOM,

42、命令格式:Skip记录数 功能:以当前记录为基准,将记录指针向前或向后移动,移动记录个数由记录数的值确定,为正时向后移动,为负时向前移动。若缺省记录数,则系统默认表达式值为1,2)指针相对定位,格式:LOCATE FOR |WHILE 功能:查找出所有符合条件的记录并将指针指向第一条符合条件的记录,若要继续,用CONTINUE命令。 注:若项缺省,则等价于all,后同,3)查询定位,是按照某些条件在数据表中查找所需的记录,4.2.5 表记录的增加与删除,1. 插入记录 格式: INSERT BLANK BEFORE 功能:在指定的记录前面或后面插入记录。若无选择项,则在指定记录的后面插入记录,

43、并提供编辑状态。选择BEFORE选项表示在指定记录前面插入记录,提供编辑状态。选择BLANK 则在指定记录前面插入一条空白记录,不提供编辑状态,2. 追加记录 命令格式:APPEND BLANK 功能:在当前表文件的尾部追加记录,追加的记录需从键盘输入。有可选项BLANK时表示在当前表文件的尾部追加一空记录,记录的删除分逻辑删除和物理删除。逻辑删除的记录可以恢复(去掉删除标记);物理删除的记录将无法恢复。 (1)逻辑删除(给要删除的记录做删除标记) 格式:DELETE FOR | WHILE 给指定范围内和满足条件的记录加删除标记“,3. 删除记录,例】若要逻辑删除Stud表中的第3条记录,例

44、】若要逻辑删除Stud表中的第3、4、5条记录,USE Stud,USE Stud GO 3,GO 3,DELETE,DELETE NEXT 3,2) 取消删除 格式:RECALL FOR 条件WHILE 条件 功能:取消指定范围内符合条件记录前面的“*”号。省略和,则为恢复当前记录,例】若要在Stud表的第3、4、5条记录中恢复已做了逻辑删除并且入学成绩大于520的记录,则命令为,USE Stud,GO 3,RECALL NEXT 3 FOR 入学成绩520,3) 真正删除记录 (删除有删除标记的记录) 格式:PACK 功能:将做删除标记的数据真正删除,并且重新整理记录的排列顺序。此命令必须

45、与DELETE连用,例】若要对Student表中已做了逻辑删除的记录进行物理删除操作,则命令,USE Student PACK,4) 删除全部记录 格式:ZAP 功能:一次性删除当前表文件中的所有记录,USE Student zap,4.2.6 表的复制,1. 复制表 格式:COPY TO FIELDS FOR |WHILE 功能:把当前表文件中指定的记录和字段复制成一个新的表文件。如果命令选项缺省,则复制所得的新的表文件为当前表文件的一个副本,2表文件结构的复制 格式:COPY STRUCTURE TO FIELDS 功能:仅复制当前表文件的结构,不复制其中的数据。若有可选项FIELDS,则

46、新表文件结构只包含其中指明的字段,同时也决定了这些字段在新表文件中的排列次序,格式:APPEND FROM 文件名 FIELDS 字段名表FOR 条件 WHILE 条件 功能:该命令将指定文件(源文件)中的数据添加到当前表的尾部,3 从其他文件向表添加数据,将表的记录数据传送到数组 格式:SCATTER FIELDS 字段名表 TO 数组名 MEMO 功能:命令按顺序将当前表当前记录指定字段的内容依次存入数组。第一个字段存入数组的第一个元素中,第二个字段存入数组的第二个元素中,依次类推,4. 表与数组间的数据传送,2) 将数组数据传送到表记录 格式: GATHER FROM FIELDS ME

47、MO 功能:命令将数组中的数据作为一个记录传送到当前打开的表中的当前记录,3) 把表的一批记录同时复制到数组 格式: COPY TO ARRAY 数组名FIELDS 范围FORWHILE 功能:命令将当前表指定记录中指定字段的数据复制到指定的数组之中,4) 从数组向表添加记录 格式: APPEND FROM ARRAY FOR FIELDS 功能:命令将满足条件的数组行的数据按记录形式依次添加到当前表中,但它忽略备注型字段。 注意一维数组与二维数组的区别,第一次上机内容,1、熟悉VF环境 2、对常用函数进行练习 3、建表,如: 4、对上表进行基本操作:USE、LIST/DISPLAY、BROW

48、SE、INSERT、 APPEND、DELETE、PACK、LOCATE、GO TOP/BOTTOM/N、ZAP,4.3 表的排序与索引,排序与索引的概念及二者的区别。 重点:索引及其使用,排序(SORT):对表中的记录进行物理排序。 格式: SORT TO ON /A|/D/C ,/A|/D/C ASCENDING|DESCENDING FORWHILE FIELDS,4.3.1 表的排序,功能:按给定的字段名值由大到小或由小到大的顺序对当前表文件重新排列,并生成一个新的表文件,例 把stud.dbf中入学成绩大于520的,按入学成绩从高到低排序,保存在strxcj.dbf中,use stu

49、d Sort to strxcj on 入学成绩/d for 入学成绩480,use strxcj list,例 把stud.dbf表按入学成绩(升序)、性别、姓名均按降序排列,保存在strxcj2.dbf中,use stud Sort to strxcj2 on 入学成绩/a,性别,姓名 desc,use strxcj2 list,4.3.2 索引概述,1索引的概念 索引(INDEX):对表中的记录进行逻辑排序。即另外形成一个索引关键表达式值与记录号之间的对照表,这个对照表就是索引文件,索引文件是一个二维表,其中仅有二列数据:关键字值和记录的物理位置。关键字值是包含有字段的排序规则表达式,记

50、录的物理位置指向关键字值在表中所在的物理位置,例如,在表4-1的Stud表中,根据入学成绩的高低来建立索引文件。建立好的索引文件如表4-2所示,表4-1 Stud表中的记录,表4-2根据入学成绩字段建立的索引文件,注意:索引并未改变表中记录的物理位置,仅仅改变了表中记录的逻辑排序。但是,当用户将建立好的索引文件打开以后,记录的显示顺序或读取处理记录的顺序将会按照索引文件排列的记录顺序进行。这样大大提高了记录的检索速度。 可以为一个表同时建立多个索引文件,每个索引文件表示处理记录的不同顺序,2.索引文件的种类,单一索引文件的内部结构如图4-1所示。单一索引文件的扩展名为.IDX,图4-1 单一索

51、引文件结构,复合索引文件的内部结构如图4-2所示。复合索引文件的扩展名为.CDX,图4-2 复合索引文件结构,从图中可以看到复合索引文件可以由多个关键字值和其对应的多个记录的物理位置构成。每一个关键字值和其对应的记录的物理位置构成了一个索引标识(TagName)。在复合索引文件中,每一个索引标识等价于一个单一索引文件。换句话说,复合索引文件等价于多个单一索引文件,结构复合索引文件的文件名称与相关的表同名,另外结构复合索引文件将随着相关表的打开而自动打开。 非结构复合索引文件的文件名称与相关的表不同名,另外非结构复合索引文件不会随着相关表的打开而自动打开,要由用户自行打开,索引与排序的不同点,生

52、成的文件不是.dbf文件,不需占用单独的工作区,索引不改变原表文件中各记录的物理顺序,索引文件占用空间小,3.索引的类型(索引可分为4种类型,索引,主索引,候选索引,不允许在指定字段和表达式中出现重复值的索引。一个表可以建立多个候选索引,不允许在指定字段和表达式中出现重复值的索引。只有数据表才能建立,惟一索引,只在索引文件中保留第一次出现的索引关键字值,普通索引,存储在.cdx结构复合索引文件中,与表文件同时打开和关闭,可存储在.cdx独立复合索引文件和.idx单索引文件中,4.3.3 建立索引文件,一、菜单方式 二、命令方式:使用INDEX命令来建立索引 格式: INDEX ON TO,功能

53、:对当前表建立一个索引文件或增加索引标识,TAG OF FOR COMPACT ASENDING|DESCENDING UNIQUECANDIDATEADDITIVE,说明: (1)若给出TO 子句,则建立一个单索引文件。 若给出TAG ,则建立一个结构复合索引文件,或为已建立并打开的复合索引文件增加索引标识。 OF 选项用于指定非结构复合索引文件的名字,省略此选项时,表示建立结构复合索引文件,2)COMPACT 参数仅在建立单一索引文件时使用。该参数用于为单一索引文件获得压缩处理快速存取索引文件技术的支持,从而大大提高单一索引文件的使用效率。 (3)ASCENDING|DESCENDING

54、参数用于指定复合索引文件的某一索引标识是按照升序(ASCENDING)还是降序(DESCENDING)方式进行排序,4)UNIQUE 参数用于建立唯一索引。也就是说对于拥有相同关键键值的若干条记录而言,只有第一条记录才会列入该索引文件中,其他具有此关键值的所有记录都将被排除在该索引文件之外。 (5)CANDIDATE 参数用于建立候选索引。 (6)ADDITIVE 参数用于在建立新的索引文件时,已打开的其他索引文件仍保持打开状态,例】对stud表按入学成绩升序建立索引文件,Use stud index on 入学成绩 to cja List,建立单一索引文件,单一索引文件只能按照升序方式进行排

55、列,Use stud index on -入学成绩 to cjd List,例】对stud表按入学成绩降序建立索引文件,建立结构复合索引,在INDEX命令中使用 TAG 标识名 参数,例】对stud.DBF: 用学号作关键字,建立结构复合索引文件,标识名为xh,Use stud,Index on 学号 tag xh,用姓名作关键字,建立结构索引文件,标记名为xm,Use stud,Index on 姓名 tag xm,在建立复合索引文件时,可使用ASCENDINGDESCENDING参数指定某一索引标识是按照升序(ASCENDING)还是降序(DESCENDING)方式进行排序,例】 若要为

56、Stud表根据入学成绩字段建立结构复合索引文件,索引标识为Et,并且希望按降序方式排列,那么应执行的命令为,USE Stud INDEX ON 入学成绩 TAG Et DESCENDING,例】对stud.DBF,用入学成绩, 出生日期, 姓名作关键字,建立结构索引文件,标记为strcx,Use stud,Index on str(入学成绩) +dtoc(出生日期) +姓名 tag strcx,上述操作相当于键入如下命令,Use stud Index on 入学成绩 tag rxcj additive Index on 出生日期 tag csrq additive Index on 姓名 ta

57、g xm additive,例】对stud表按学号建立非结构复合索引文件,文件名为scxh.CDX,索引标识为xh,Use stud,index on 学号 tag xh of scxh,建立非结构复合索引,在INDEX命令中使用 TAG OF参数,例】若要为Stud表根据入学成绩字段建立单一索引文件(单一索引文件名为en1.IDX),希望只有满足入学成绩大于520这一条件的记录才会出现在索引文件的索引关键字值列表中,那么应执行命令,Use stud,INDEX ON 入学成绩 TO En1.IDX FOR 入学成绩520,设置有条件的索引,例】若要为Stud表根据出生日期字段建立单一索引文件

58、(单一索引文件名为 nl.IDX),并且该索引文件是唯一索引,那么应执行的命令,Use stud,INDEX ON 出生日期 TO nl.IDX unique,设置惟一索引,例】若要为Stud表根据学号字段建立结构复合索引文件(索引标识为stuid),并且该索引标识为候选索引,那么应执行命令,Use stud,INDEX ON 学号 Tag stuid candidate,设置候选索引,4.3.4 索引文件的使用,命令格式:USE INDEX ORDER TAG 标记名 OF ASCENDING | DESCENDING IN,1.打开索引文件,1) 打开表文件的同时打开索引文件,功能:打开指

59、定的表及其索引文件,例】 已知stud.DBF有scxh.cdx(标记名有xh,xm) 、cja.idx 和 nl.idx 等索引文件,Use stud index cja, nl, scxh,打开表文件时打开所有索引文件,并以cja.idx作为主索引文件,命令是,Use stud index nl,cja,scxh order cja,或,Use stud index cja, scxh, nl order tag xm of scxh,打开表文件时打开所有索引文件,并以scxh.cdx作为主索引文件,标记名为xm,命令是,例】 已知stud.DBF有scxh.cdx(标记名有xh,xm)

60、、cja.idx 和 nl.idx 等索引文件,2) 在打开表后再打开索引文件,除结构复合索引能随着表文件的打开而打开外,其他索引文件必须用索引文件的打开命令来打开,命令格式:SET INDEX TO 索引文件名表 ADDITIVE,功能:在已打开表文件的前提下,打开指定的索引文件,ORDER |TAG 标记名 OF ASCENDING|DESCENDING,Use stud,打开索引文件cja.idx和nl.idx,并用nl作为主控制索引(主索引)。命令为,Set index to nl, cja,例】 已知stud.DBF有scxh.cdx(标记名有xh,xm) 、cja.idx 和 nl

温馨提示

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

评论

0/150

提交评论