




已阅读5页,还剩133页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Visual Foxpro 6.0,程序设计基础,重庆工商大学计算机学院计算机基础教研室,数据库系统基础知识,数据库技术是计算机领域的一个重要分支。在计算机应用的三大领域(科学计算、数据处理、过程控制)中,以数据库技术为基础的数据处理约占其中70%。 数据库技术研究如何科学地组织和存储数据、如何高效地获取和处理数据。,信息、数据和数据处理,1.信息的概念 信息是关于现实世界事物的存在方式或运动形态的综合反映,是人们进行各种活动所需要的知识。信息是经过加工处理的,有价值的数据。 2.数据的概念 数据是信息的符号化表示。,依赖,表达,3. 数据处理 指将数据转换成信息的过程。 4.数据与信息的关系,数据是信息的载体;信息是数据的内涵。 数据是原料,是输入,而信息是产出,是输出结果。,数据库、数据库管理系统与数据库系统,1 、数据库(DataBase,简称DB) 数据库不仅包含了描述事物的数据,而且也反映了相关事物之间的联系。 2 、数据库管理系统(DataBase Management System,简称DBMS) 是对数据库进行集中管理的软件系统。,3 数据库系统(DataBase System,简称DBS) 它主要由数据、硬件、软件和用户四部分构成。,数据库系统的核心是( )。 A. 数据模型 B. 数据库管理系统 C. 数据文件 D. 应用程序,DBMS的中文意思是( )。 A) 对象关系型数据库系统 B) 数据库管理系统 C) 关系数据库系统 D) 结构化查询语言,DB(数据库)、DBMS(数据库管理系统)和DBS(数据库系统)三者之间的关系是( )。 (A) DB包括DBMS和DBS (B) DBS包括DB和DBMS (C) DBMS包括DBS和DB (D) DBS与DB和DBMS无关,计算机数据管理经历了如下四个由低级到高级的发展过程: 人工管理阶段 文件系统阶段 数据库系统阶段 新型数据库系统阶段,数据管理技术的发展,人工管理阶段 (20世纪50年代中期以前),计算机主要用于科学处理,没有专门用于管理数据的软件,数据与程序结合在一起。 外部存储器:磁带、卡片和纸带等 软件:汇编语言 缺点: 数据与程序不具有独立性 数据存在大量冗余,数据不能共享。 不单独保存数据。,应用程序1,应用程序2,应用程序n,数据1,数据2,数据n,.,计算机不仅用于科学计算,还利用在信息管理方面。 外部存储器:磁盘、磁鼓等 软件:操作系统(文件系统)和高级软件。,文件管理阶段 (20世纪50年代后期至60年代中期),数据以“文件”形式可长期保存在外部存储器的磁盘上。 数据的逻辑结构与物理结构有了区别,但比较简单。程序与数据之间具有“设备独立性”, 数据不再属于某个特定的程序,可以重复使用,即数据面向应用。,缺点: 数据冗余。由于文件之间缺乏联系,造成每个应用程序都有对应的文件,有可能同样的数据在多个文件中重复存储。 不一致性。这往往是由数据冗余造成的,在进行更新操作时,稍不谨慎,就可能使同样的数据在不同的文件中不一样。 数据联系弱。这是由于文件之间相互独立,缺乏联系造成的。,数据库系统阶段(60年代后期),这一阶段,数据管理技术进入数据库系统阶段。数据库系统克服了文件系统的缺陷,提供了对数据更高级、更有效的管理。这个阶段的程序和数据的联系通过数据库管理系统来实现(DBMS),如图所示。,特点: 采用数据模型表示复杂的数据结构。数据模型不仅描述数据本身的特征,还要描述数据之间的联系,这种联系通过存取路径实现。通过所有存取路径表示自然的数据联系是数据库与传统文件的根本区别。这样,数据不再面向特定的某个或多个应用,而是面向整个应用系统。数据冗余明显减少,实现了数据共享。 有较高的数据独立性。数据的逻辑结构与物理结构之间的差别可以很大。用户以简单的逻辑结构操作数据而无需考虑数据的物理结构。用户(应用程序或终端用户)的数据和外存中的数据之间转换由数据库管理系统实现。,数据库系统为用户提供了方便的用户接口。用户可以使用查询语言或终端命令操作数据库,也可以用程序方式(如用C一类高级语言和数据库语言联合编制的程序)操作数据库。 数据库系统提供了数据控制功能。例如,1.数据库的并发控制:对程序的并发操作加以控制,防止数据库被破坏,杜绝提供给用户不正确的数据;2.数据库的恢复:在数据库被破坏或数据不可靠时,系统有能力把数据库恢复到最近某个正确状态;3.数据完整性:保证数据库中数据始终是正确的;4.数据安全性:保证数据的安全,防止数据的丢失、破坏。,新型数据库系统几个较重要的 发展方向,分布式数据库系统(Distributed Data Base System),分布式数据库系统(DDBS)包含分布式数据库管理系统(DDBMS)和分布式数据库(DDB)。 在分布式数据库系统中,一个应用程序可以对数据库进行透明操作,数据库中的数据分别在不同的局部数据库中存储、由不同的 DBMS进行管理、在不同的机器上运行、由不同的操作系统支持、被不同的通信网络连接在一起。 分布式数据库系统提高了数据的使用效率,加快了数据的流通速度,更加符合今天人们对数据处理的需要。,面向对象数据库系统(Object-Oriented Database System) 面向对象数据库系统是面向对象的程序设计技术与数据库技术相结合的产物。面向对象数据库系统的主要特点是具有面向对象技术的封装性和继承性,提高了软件的可重用性。 面向对象数据库支持面向对象数据模型,用面向对象的观点来描述现实世界的实体对象,将对象的集合、属性、行为、方法和联系均以面向对象数据模型来定义。,多媒体数据库系统(Multi-media Database System) 多媒体数据库系统是数据库技术与多媒体技术相结合的产物。在许多数据库应用领域中,都涉及到大量的多媒体数据,这些与传统的数字、字符等格式化数据有很大的不同,都是一些结构复杂的对象。 多媒体数据库要求系统具有处理大容量数据的能力,对多媒体数据的处理要满足实时性、集成性和交互性的要求。,多媒体数据库从本质上来说,要解决三个难题。第一是信息媒体的多样化,不仅仅是数值数据和字符数据,要扩大到多媒体数据的存储、组织、使用和管理。第二要解决多媒体数据集成或表现集成,实现多媒体数据之间的交叉调用和融合,集成粒度越细,多媒体一体化表现才越强,应用的价值也才越大。第三是多媒体数据与人之间的交互性。没有交互性就没有多媒体,要改变传统数据库查询的被动性,能以多媒体方式主动表现。,数据仓库(Data Warehouse可简写为DW ) 信息技术的高速发展,数据库应用的规模、范围和深度不断扩大,一般的事务处理已不能满足应用的需要,企业界需要在大量信息数据基础上的决策支持,数据仓库技术的兴起满足了这一需求。,数据仓库研究和解决从数据库中获取信息的问题。数据仓库作为决策支持系统(Decision Support System)的有效解决方案,涉及3方面的技术内容:数据仓库技术、联机分析处理(On-Line Analysis Processing,OLAP)技术和数据挖掘(Data Mining)技术。 数据仓库是面向主题的、集成的、稳定的、随时间变化的数据集合,用于支持管理中的决策制定,是构建决策支持系统的基础。数据仓库是一个环境,不是一个新的数据库管理系统平台,该环境提供用于决策支持系统的当前和历史数据,并且能够对这些数据进行分析。面向主题、集成、稳定和随时间变化是数据仓库四个最主要的特征。,数 据 模 型,数据模型是现实世界数据特征的抽象,是数据库中用于提供信息表示和操作手段的形式框架。,数据抽象过程通常经过两步:现实世界到概念世界,再到机器世界。因此,数据模型分为两个层次:概念模型和结构数据模型(一般简称为数据模型)。 概念模型也称为信息模型,主要用于数据库设计。 结构数据模型包括层次模型、网状模型、关系模型等,主要用于DBMS的实现。,概念模型: 反映实体及实体间联系的模型称为概念模型。又称实体-联系模型,简称E-R模型。 实体和实体集: 实体: 客观存在并且可以相互区分的事物称为实体。 属性: 指实体某一方面的特征。 域: 属性值的取值范围称为该属性的域。 键: 唯一标识一个实体的属性或属性组为实体的键。 例如:学号。 实体型: 若干个属性所组成的集合可以表示一个实体的类型,即实体型。用实体名和属性名表示。 学生(学号,姓名,性别,专业) 实体集:同类型的实体的集合称为实体集。,1.3.1实体及其联系,实体间的联系及种类:,一对一联系(1:1) 实体集A中的一个实体至多与实体集B中的一个实体相对应,反之,实体集B中的一个实体至多与实体集A中的一个实体相对应 如: 1)班长与班级的联系,一个班级只有一个班长,一个班长对应一个班级。 2)一夫一妻制度下的夫妻关系。 3)观众与座位,一对多联系(1:n) 实体集A中的一个实体与实体集B中的多个实体相对应,而实体集B中的一个实体至多与实体集A中的一个实体相对应。 如: 1)班长与学生的联系,一个班长对应多个学生,而本班每个学生只对应一个班长。 2)部门和员工之间的关系。一个部门可以有多个员工,而一个员工只能在一个部门。,多对多联系(m:n) 实体集A中的一个实体与实体集B中的多个实体相对应,并且实体集B中的一个实体也与实体集A中的多个实体相对应。 如: 1)教师与学生的联系,一位教师为多个学生授课,每个学生也有多位任课教师。 2)学生和课程之间的关系。一个学生可以选多门课程,而一门课程也可以被多个学生选择。,建立实体-联系模型 实体-联系模型(E-R):采用图形描述实体、属性和联系3个要素。方法如下: 1、用矩形框表示实体,并在框内写上实体的名字; 2、用菱形框表示实体间的联系,用线段连接矩形框和菱形框,并在线段上注明联系的类型; 3、用椭圆框表示属性,并在框内注明属性的名称;,教学管理系统的实体-联系模型,数据模型: 是将现实世界中的各种事物及其间的联系用数据及数据间的联系来表示的一种方法。 层次模型 网状模型 关系模型 Visual FoxPro6.0就属于关系模型,数据模型,优点:层次清晰、构造简单、易于实现1:1和1:M的实体联系。 缺点:不能直接表示多对多的联系,学校,财务处,人事处,行政,教学,艺术系,研究所,计辅教研室,层次模型:层次模型用树形结构来表示实体及其之间的联系。特点: (1)有一个结点没有父亲,称为根结点。 (2)其它结点有且仅有一个父亲。 实体之间的联系是1:M联系(包括1:1联系)。,网状模型:是用以实体型为结点的有向图来表示各实体及其之间的联系。特点: (1) 可以有一个以上的结点无父亲。 (2) 至少有一个结点有多于一个的父亲.能表示 M:N 联系。 缺点:编写应用程序复杂,模型结构复杂。,关系模型 在关系模型中,数据的逻辑结构是一张二维表格,即关系模型是用若干行与若干列数据构成的表格来描述数据集合以及它们之间的联系。每一个这样的表格被称为一个关系。 在关系模型中,操作的对象和结果都是二维表,这种二维表就是关系,同时每一个关系都是一个二维表. 本书讨论的Visual FoxPro就是一种关系数据库管理系统。,关系模型对数据描述内容有以下三方面: 数据结构:二维表(即关系) 数据操纵:建立在关系上的数据查询、增加、删除、修改 数据约束: )实体完整性约束: )参照完整性约束:关系之间相关联的基本约束 )用户定义的完整性约束:由用户具体设置,关系模型结构与表示,学生管理数据库中的表,关系数据库,关系的概念: 关系: 一个关系对应于我们平常讲的一张二维表。 记录: 表中的一行称为一个记录或元组。 字段: 表中的一列称为一个字段或属性。给每一列起一个名称即属性名或字段名。 域: 属性值的取值范围称为该属性的域。 关键字:能唯一标识记录的字段或字段的组合为关键字。,1.4 关系数据库 1.4.1 关系模型,关系模型的概念: 候选码: 关系中的某一属性组,若它的值唯一地标识了一个元组,则称该属性组为候选码(或候选关键字)。 主关键字: 若一个关系有多个候选码(或候选关键字),则选定其中的一个为主码(或主关键字)。 外码: 若某个属性不是本表的主码,但它却是另外一个表的主码,则称这样的码为表的外部码,简称外码。 关系模式:对关系的描述成为关系模式. 如:职工(编号,姓名,性别,婚否,出生日期,职称,基本工资,简历),1.4.1 关系模型,关系的主要特点有:(见教科书11页) (1)关系中的属性不可再分割 (2)在同一关系中不允许出现相同的属性名(字段) (3)关系中不允许有完全相同的元组(记录) (4)在同一关系中元组及属性的顺序可以任意,任意交换两个元组(或属性)的位置,不会改变关系模式。 ,不是关系的二维表示例,在Visual FoxPro中,与关系数据库对应的是数据库文件(.dbc文件),一个数据库文件包含若干个表(.dbf文件)。 表由表结构与若干个数据记录组成,表结构对应关系模式。 每个记录由若干个字段构成,字段对应关系模式的属性,字段的数据类型和取值范围对应属性的域。 一个关系模型的实际例子:学生选课课程关系模型。,学生管理数据库中的表,表之间的关系,2.关系运算,1)选择(Select):记录筛选 2) 投影(Projection):字段筛选 3) 连接(Join):表间横向连接,(见教科书13页),选出部门代码为“11”的记录,结果是:, 选择(Select):对数据表记录的选择. 选择亦称为限制,它指在关系中选择满足条件的诸元组。通俗地讲,是指按照一定的条件,在给定的表中,选取若干条满足条件的记录(即二维表格的行)。, 投影(Project):指对数据表字段的选择; 投影是指从关系中选择若干属性列组成新的关系。即从数据库中选取若干个属性(二维表格的若干列或若干字段),结果既可以存储到一个新的表中,也可保存到当前表中。 投影之后不仅取消了某些列,而且还可以取消某些元组。因为取消了某些列之后,就可能出现重复行,应取消这些重复行。, 连接(Join):对两个关系的运算 连接操作是指从两个关系中选取属性间满足一定关系的元组。即将两个表按某种条件选取部分(或全部)元组及部分(或全部)数据项(属性)连接成一个新的表。 最常用的连接运算是自然连接,它是利用两个关系中的公共字段,把该字段相等的记录连接起来。,连接(Join):,1.4.3 关系运算,联结:对两个关系的运算,1.4.3 关系运算,关系的完整性约束 关系完整性是为保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则。完整性通常包括实体完整性、参照完整性和用户定义完整性(又称域完整性),其中实体完整性和参照完整性,是关系模型必须满足的完整性约束条件。,实体完整性 实体完整性是指关系的主关键字不能取“空值”。 一个关系对应现实世界中一个实体集。现实世界中的实体是可相互区分、识别的,也即它们应具有某种惟一性标识。在关系模式中,以主关键字作惟一性标识,而主关键字中的属性(称为主属性)不能取空值,否则,表明关系模式中存在着不可标识的实体(因空值是“不确定”的),这与现实世界的实际情况相矛盾,这样的实体就不是一个完整实体。按实体完整性规则要求,主属性不能取空值,如主关键字是多个属性的组合,所有主属性均不得取空值。,参照完整性 参照完整性是定义建立关系之间联系的主关键字与外部关键字引用的约束条件。 关系数据库中通常都包含多个存在相互联系的关系,关系与关系之间的联系是通过公共属性来实现的。所谓公共属性,它是一个关系R(称为被参照关系或目标关系)的主关键字,同时又是另一关系K(称为参照关系)的外部关键字。,学生(学号,姓名,性别,出生日期,少数民族否,籍贯,) 选课(学号,课程号,成绩),主关键字,外部关键字,选课关系中学号的取值只能取学生关系中已经存在的学号的值,用户定义完整性 实体完整性和参照完整性适用于任何关系型数据库系统,主要是对关系的主关键字和外部关键字取值必须做出有效的约束。用户定义完整性则是根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。这一约束机制一般不应由应用程序提供,而应由关系模型提供定义并检验。用户定义完整性主要包括字段有效性约束和记录有效性约束。,常见的数据库管理系统 1.小型数据库管理系统 ()Access () Visual FoxPro 2.大型数据库管理系统 ()SQL Server ()Oracle 3常见的数据库开发工具 Delphi、Visual Basic、PowerBuilder ASP 、JSP、PHP,1.Foxpro文件名:用扩展名来定义 2.文件类型:在FOXPRO中,有以下各类文件 数据表类:如数据表文件(*.DBF)、数据表备注文件(*.FPT); 索引类:如复合索引文件(*.CDX)、单索引文件(*.IDX); 表单文件及菜单文件类:如表单文件(*.SCX)、菜单文件(*.MNX); 报表类:如报表文件(*.FRX); 程序类:如FOXPRO程序文件(*.PRG)菜单程序文件(*.MPR),VFP命令格式及使用规则,1 命令格式: ,(见教科书32-33页),2 命令使用规则,(1)每个命令必须以一个命令动词开头,而命令中的各个子句可以按任意次序排列。 (2)命令行中各个词应以一个或多个空格隔开,如果两个词之间嵌有双撇号、单撇号、括号、逗号等分界符,则空格可以省略。但应注意,.T.或.F.两个逻辑值中的小圆点与字母之间不许有空格。,(3)一个命令行的最大长度是254个字符。如果一个命令太长,一行写不下,可以使用续行符“;”,然后回车,在行末进行分行,并在下一行继续书写。 (4)命令行的内容可以用英文字母的大写、小写或大小混写。 (5)命令动词和子句中的短语可以用其前4个以上字母缩写表示。,(6)不可用A到J之间的单个字母作数据库、表的文件名,因为它们已被保留用作数据库工作区名称。 (7)尽量不要用命令动词、短语等Visual FoxPro的保留字作文件名、字段名、变量名等,以免发生混乱。 (8)一行最多只能写一条命令,每条命令的结束标志是按回车键。,Visual Foxpro数据库管理系统的数据模型是( ) A)关系型 B)结构型 C)层次型 D)网状型,在关系数据库中,为了简明地表达数据间的关系,采用的形式是( )。 数组 (B) 层次 (C) 二维表格 (D) 矩阵,在一个数据表中,有一个或若干个字段,它们的值可以惟一的标识一条记录,这样的字段称为( )。 A) 主题字 B)标题 C)关键字 D)记录名,对于学生数据表,包括学号,年龄,性别等字段,需要设计一条规则,把其中的年龄字段限制在1823之间,则这条规则属于( )。 实体完整性规则 B)参照完整性规则 C)域的完整性规则 D)不属于以上任何一种规则,数据库的基本操作,注:建库建表的具体操作放到上机课上,理论课不演示该操作,只提命令。,概述,1.VFP中表、数据库、项目之间的关系,项目管理器P128-133,数据库表:存在于数据库中的表,称之为数据库表。,自由表:单独的一个数据表,称之为自由表。,自由表与数据库表的区别 自由表的扩展名为.DBF。它独立存在,不与任何数据库相关联。 数据库表的扩展名为.DBF,它与某一个数据库相关联,数据库表有一些自由表所没有的特性:字段验证、记录验证、触发器和永久关系等。,问题:自由表与数据库表可否互相转换?,提示:若创建的数据表为数据库表, 则必须事先打开该数据库。,什么是数据库,数据库如同一个仓库,是存储管理各种对象的容器,这些对象有:表、视图、关联以及有效管理数据库数据的存储过程等。 而数据库中的表文件不仅包括自由表的各种属性,还具有一些特有的属性,使得数据库的管理变得更为安全有效。,创建数据库,1.数据库的建立 2.数据库文件 数据库文件的扩展名为:.dbc,create database ,格式:,关闭: Close database,数据库的基本操作,格式:,1.打开、关闭数据库,打开: Open database ,(见教科书85页),用例子演示,修改: modify database ,删除: delete database ,格式:,2.修改、删除数据库,3.向数据库添加数据表,格式:,add table ,4.把数据表从数据库中移出,格式:,remove table delete,5.数据库表的基本操作,1)在数据库中直接建立表 设置表的字段属性 设置长字段名 设置字段有效性和错误提示信息 设置触发器 2)修改数据库中的表,(见教科书93-96页),表操作,数据类型,数据类型一旦被定义,就确定了其存储方式和使用方式。 Visual FoxPro系统将数据细化分为以下几种类型。,(见教科书34-35页),1.字符型(Character) 字符型数据描述不具有计算能力的文字数据类型,是最常用的数据类型之一。 字符型数据是由汉字和ASCII字符集中可打印字符(英文字符、数字字符、空格及其他专用字符)组成,长度范围是0254个字符。,2.数值型(Numeric) 数值型数据通常分为以下四种类型: (1)数值型( N ) (2)浮动型( F ) (3)双精度型( B ) 8B (4)整型( I ) 4B,3.日期型(Date)8B 日期型数据是是用于表示日期的数据,用默认格式mm/dd/yy来表示。其中mm代表月,dd代表日,yy代表年。,4.日期时间型(date Time) 8B 日期时间型数据是描述日期和时间的数据。 其默认格式为mm/dd/yy hh:mm:ss。 其中yy代表年,前两个mm代表月,dd代表日,hh代表小时,后两个mm代表分钟,ss代表秒。,5.逻辑型(Logic) 1B 逻辑型数据是描述客观事物真假的数据,用于表示逻辑判断结果。 逻辑型数据只有真(.T.)和假(.F.)两种值。,6.货币型(CurrencY) 8B 通常使用货币型数据来存储货币值。货币型数据最多只能有4位小数。,7.备注型(Memo) 4B 备注型数据用于存放较长的字符型数据类型。 它只用于数据表中的字段类型的定义,而实际数据被存放在与数据表文件同名的备注文件(其扩展名为:.fpt)中,长度根据数据的内容而定。,8.通用型(General) 4B 通用型数据是用于存储OLE对象的数据。通用型数据中的OLE对象可以是电子表格、文档、图片、声音等多媒体信息。它只用于数据表中的字段类型的定义。 实际数据被存放在与数据表文件同名的备注文件(其扩展名为:.fpt)中,实际数据长度仅受限于现有的磁盘空间。,VARTYPE() -返回的数据类型,(见教科书第48页),数据表的创建,建立表时,首先要对所处理的对象进行调查分析,再根据需要设计一张二维表。,1.表格设计 (1)定义二维表名(标题) (文件名) 设计一张二维表,首先要给表起个名字。 (2)二维表栏目设计(列)(字段)及属性结构 首先确定表中有几个栏目,然后根据每一个栏目所含内容的不同设计栏目标题和属性。 (3)填写二维表的内容(行) (记录),2.定义数据表 在Visual FoxPro 系统中,一张二维表对应一个数据表,称为表文件(Table)。 一张二维表由表名、表头、表的内容三部分组成,一个数据表则由数据表名、数据表的结构、数据表的记录三要素构成。,数据表的文件名 数据表的结构即字段名、字段类型和字段长度(字段的基本要素)。 ,数据表中的记录是数据表中不可分割的基本项,即二维表中的表的内容。一个数据表的大小,主要取决于它拥有的数据记录的多少。不包含记录的数据表称为空表。,(见教科书57页表4.1 ),自由表的字段名不能超过10个字符,2创建数据表,(见教科书57-59页),create ,命令格式:,方法一:利用表设计器,演示命令,(见教科书99-101页),create table|dbf free,命令格式:,方法二:利用SQL命令,【例】建立表dab.dbf(结构和学生表类似)。 create table dab(学号 c(8) not null,姓名 c(8),性别 c(2),出生日期 d ,专业班级 c(20),照片 g,简历 m) ,【例】创建一个表STUD(学生信息表),它由以下字段组成:学号 (C,10);姓名(C,8);性别(C,2);班级名(C,10);系别代号(C,2);地址(C,50);出生日期 (D);是否团员 (L);备注 (M)。 CREATE TABLE STUD(学号 C(10),姓名 C(10),性别 C(2),班级名 C(10),系别代号 C(2),地址 C(50),出生日期 D,是否团员 L,备注 M,照片 G) LIST STRUCTURE 【练习】创建一个表SC(课程成绩表),它由以下字段组成:学号(C,10);课程号(C,2)。,CREATE TABLE SC(学号 C(10),课程号 C(2),3输入记录,方法一:立即输入 方法二:追加输入,append blank,命令格式:,(见教科书59-60页),备注字段和通用字段的输入P60,【功能】向当前打开表中追加若干条记录或一条空记录。 不选任何可选项,则打开记录输入窗口(编辑窗口),可以追加若干条记录。 选BLANK只能在尾部添加一条空白记录,不打开记录输入窗口,并将记录指针指向这条记录空记录。,方法三:用SQL命令添加记录,insert into ,命令格式:,(见教科书112-113页),【例】向表dab添加一条记录。 insert into dab(学号,姓名,性别,出生日期,专业班级) values(“20060002“,“张三“,“男“,1987-10-10,“计算机1班“) 【例6.21】见书P113 ,如果是给每个字段都赋值,那就可以省略字段列表,3查看表结构,list|display structure,命令格式:,不可以修改,(见教科书62页),命令执行之前首先应将表打开,否则系统将显示“打开”对话框,以选择要打开的表。,连续显示,分屏显示,4修改表结构,方法一: 打开表设计器(数据表已经打开),方法二: SQL命令(数据表关闭),(见教科书102-103页),alter table 表文件名 ,命令格式:,modify structure,命令格式:,(见教科书63页),【例】 把表dab.dbf中的学号字段宽度改为10,专业班级字段宽度改为30。 alter table dab alter 学号 c(10) alter 专业班级 c(30),(1)修改字段属性,alter table alter ,(2)增加字段,【例】 给表dab.dbf增加字段入学总分N(5,1)和身高N(4,2) 。 alter table dab add 入学总分 n(5,1) add 身高 n(4,2),alter table add ,(3)字段改名,【例】 将表dab.dbf中“入学总分”字段改名为“入学成绩”。 alter table dab rename 入学总分 to 入学成绩,alter table to rename to ,(4)删除字段,【例】删除表dab.dbf中身高字段。 alter table dab drop column 身高,alter table drop ,【例】 把表dab.dbf中的学号字段宽度改为10,增加字段入学总分N(5,1)。 alter table dab alter 学号 c(10) add 入学总分 n(5,1) ,表的打开和关闭,1. 用USE命令打开表,use noupdateexclusive|shared,(见教科书61页),命令格式:,(独占/共享),(只读),2. 关闭表,use close all clear all,命令格式:,例如: CLOSE TABLES ALL &关闭数据库表和自由表,数据库仍处于打开状态 CLOSE TABLES &关闭自由表 CLOSE ALL &关闭所有已打开的数据库、表和索引,并选择工作区1,1、任意文件的复制 命令格式:Copy File To 说明:文件名必须是全称; 源文件必须没有打开; 在复制带有备注文件及索引文件的表文件时,必须再复制备注文件或索引文件后,才可使用。 例如: copy file d:example.txt to e:exa.txt COPY FILE dab.DBF TO XSB.DBF &复制文件内容 COPY FILE dab.FPT TO XSB.FPT &复制备注文件 COPY FILE dab.IDX TO XSB.IDX &复制索引文件 USE XSB &使用XSB文件,数据表文件的复制,(教科书P69),2、表结构的复制 【格式】COPY STRUCTURE TO FIELDS 【功能】复制当前表的结构,生成一个只有结构的自由表。确省FIELDS时系统默认为全部字段。,USE dab COPY STRU TO YG FIELDS 学号,姓名,专业班级 USE YG DISP STRU &查看新表的结构,原表是打开的,产生的空表是关闭的,DAB.DBF,YG.DBF,COPY STRU TO YG FIELDS 学号,姓名,专业班级,3、表文件的复制 【格式】COPY TO FORFIELDS 【功能】将打开的表全部或部分记录复制到指定的表中,产生一个新表。 【说明】 首先需要打开要复制的表,执行命令后新表处于未打开的状态;若需要操作新表,则应先将其打开。 新表的结构由FIELDS指定,确省时系统默认为全部字段。 复制的数据记录由短语和FOR短语指定,若确省则系统默认全部记录。,产生的表是关闭的,在Visual FoxPro 系统环境下,表中的每一列数据是通过字段名来标识的,而每一行数据是通过记录号来标识的。,数据表中记录的定位,(教科书P67),1)菜单方式 “表” “转到记录” ,第一个 最后一个 下一个 前一个 记录号 定位,当前记录: 系统设有一个记录指针,该指针指向的记录称为当前记录。打开一个数据表时,当前记录为第一个记录,记录指针指向第一条记录。随着命令的执行,指针不断移动。 记录定位: 若要操作表中(修改某一个字段值),必须先使记录指针指向该记录,称为记录定位。,每一个数据表都有开始和结束标志,可以用函数bof()和eof()来测试。,bof() eof(),文件开始的测试函数,文件结束的测试函数,在一个空表中,bof( )和eof( ) 的值为: ;recn( )的值为 。,可以用函数recno()来测试当前记录号。,记录号测试函数,recno(),在一个空表中,bof( )和 eof( )的值为:.T.; recn( )的值为1。,利用命令进行记录定位:绝对定位和相对定位 1. 绝对定位,goto | bottom | top,1、功能:将指针定位到指定的记录或第一条、最后一条记录上. 2、TOP:将记录指针定位在表的第一条记录上, 3、BOTTOM:将记录指针定位在表的最后一个记录上,问题:go top ?recno() ?bof(),2. 相对定位 【格式】SKIP+|- 【功能】记录指针以当前记录为基准,向前或向后移动条记录。 1、若的值是一个正数,表示指针从当前位置向后(表尾部)移动个记录。 2、 若的值是一个负数,表示指针从当前位置向前(表头部)移动个记录 3、若只有SKIP命令而没有指定,则默认的值为+1。,USE 学生 &假设表中10条记录 ?RECNO(),BOF() &结果为1,.F. SKIP 1 ? RECNO(),BOF() &结果为1,.T. GO 4 ? RECNO() GO BOTTOM ? RECNO(),EOF() &结果为10,.F. SKIP ? RECNO(),BOF() &结果为11,.T.,例如: GOTO 2 GO 2 GO RECORD 2 GO TOP GO BOTTOM SKIP 2 SKIP -1 SKIP 例如:FORTH_1F.PRG CLEAR CLOSE ALL USE 学生 GOTO RECCOUNT( )/2 &对RECCOUNT( )/2取整 DISPLAY DISPLAY REST USE,表记录的显示与修改,browse list/display,命令格式一:,浏览记录;修改记录(“浏览方式”“编辑方式”),只能显示记录,不能修改,(教科书P62),(教科书P62-66),命令方式 【格式】 LIST|DISPLAYFIELDSFOR WHILEOFFTO PRINTER 【说明】 FIELDS指定要显示的字段名,它们之间用逗号分隔,FIELDS可选可不选。若缺省该项,显示表中的所有字段,但备注型、通用型字段不显示。 和FOR、 WHILE可选项短语限定显示的记录的范围和应满足的条件,相当于记录过滤器。 选OFF时,不显示记录号而只显示记录内容。 LIST和DISPLAY的区别有两点:一是若范围和条件短语均缺省,LIST显示所有记录,DISPLAY显示当前记录;二是若记录很多,一页显示不下时,LIST连续显示,DISPLAY分页显示。,【例1】 USE 学生 LIST 【例2】USE 学生 DISPLAY & 显示当前记录 DISPLAY ALL & 分屏显示所有记录 DISPLAY FOR 性别=“男” FIELDS 姓名,性别,简历 LIST 姓名,简历 LIST FOR 性别=“男” OFF LIST FOR “赵”$姓名,4.成批替换修改 命令格式: Replace 范围 with ,WITH , additive For WHILE 【功能】对当前表中指定范围内满足条件的记录分别用表达式的值自动取代相应字段的原来值。 例如:use xsda replace all 入学总分 with 入学总分+10 browse,(教科书P66),注意: 如果不选用和FOR短语,则只对当前记录进行字段更改。 如果只选定了短语,则对指定范围内的所有记录进行字段更改。如果选了FOR,默认范围ALL。选了while,默认范围rest。 WITH后面的的值的数据类型必须和字段的类型相同。,【例1】若XSCJ.DBF表中的每条记录的“英语”字段都加10%。 USE XSCJ.DBF REPLACE ALL英语 WITH 英语+英语*0.1 【例2】 XSCJ.DBF表中英语成绩小于70分的记录都加5分。 USE XSCJ.DBF REPLACE ALL 英语 WITH 英语+5 FOR英语70 【例3】 计算出XSCJ.DBF表中的平均成绩。 REPLACE ALL 平均成绩 WITH (英语+计算机+数学 )/3 【例4】 计算出XSCJ.DBF表中的总成绩 REPLACE ALL 平均成绩 WITH 英语+计算机+数学,操作命令如下: USE 学生 REPLACE 入学成绩 WITH 入学成绩+20 FOR 少数民族否 GO 6 &将记录指针定位到6号记录 REPLACE 出生日期 WITH 1983-09-07,【例】写出对学生表进行如下操作的命令: (1)将少数民族学生的入学成绩增加20分。 (2)将6号记录的出生日期修改为1983年9月7日。,命令格式三:SQL命令更新记录,update set,操作命令如下: UPDATE 学生 SET 入学成绩=入学成绩+20 WHERE 少数民族否 UPDATE 学生 SET 出生日期=1983-09-07 WHERE RECNO()=6,(教科书P114),如果省略WHERE子句,则表示表中所有行。,记录的插入,命令格式:,insert blank before,(教科书P68),【功能】在当前表中插入新记录。 若没有BEFORE选项,则在当前记录之前插入一条新记录,否则在当前记录之后插入新记录。 若有BLANK选项则插入一条空白记录,并不立即进入新记录数据的输入状态,否则立即弹出新记录的编辑窗口,输入记录数据。,【例】对学生表增加第6条和第7条记录。 USE 学生 GO 6 INSERT BEFORE &此时新增加的6号记录变成 当前记录 INSERT &在6号记录之后插入一条新记录, 即第7号记录,删除和恢复表中的数据,1.逻辑删除表中的记录,delete 范围 for 条件1 while 条件2,注意删除标记,命令格式一:,(教科书P68),表中数据的删除包括逻辑删除和物理删除,【例】USE 学生 DELE ALL FOR 性别=”女”,delete from where 条件,命令格式二(SQL):,【例】逻辑删除学生表中姓名为“王红”的记录。 delete from dab where 姓名=“王红“,(教科书P113),2.恢复表中逻辑删除的记录,recall 范围 for 条件1 while 条件2,(教科书P69),3.物理删除表中的记录,pack,4.记录清除命令,zap,【例】 删除学生表中510之间的全部记录。 USE 学生 GO 5 DELETE NEXT 6 PACK,?BOF(),EOF(),RECNO(),(教科书P69),与删除相关的命令: 功能:将逻辑删除的记录隐藏或显示。on为隐藏,off为显示(默认)。,set deleted on/off,1. 将记录传送到数组或内存变量 命令格式: scatter fields memo to 将当前记录的字段值按的顺序依次送入数组元素中。,表数据与数组之间的数据传送,CLEAR MEMORY USE 学生 DIMENSION y(5) STORE 0 TO y GO 4 SCATTER TO y FIELDS 姓名,出生日期,少数民族否,籍贯 LIST MEMORY LIKE y?,学生,y(5),2. 将数组或内存变量的数据传送到记录 命令格式: gather from fields memo 将数组的数据依次传送到当前记录,以替换相应字段值。,USE 学生 DIME A(9),B(5) SCATTER TO A A(1)=191024 GO BOTTOM APPEND BLANK GATHER FROM A,学生,A(10),【例】 通过数组y向学生表添加记录。 USE 学生 APPE BLAN DIMENSION y(5) Y(1)=100100 STORE “邓杰辉“ TO y(2) y(3)=“女“ y(4)=1986-07-23 STORE .T. TO y(5) GATHER FROM y GO BOTT DISP,注意:要保证传送的数组元素和相应字段的数据类型是一致的。,若要在ZG 表中增加一个宽度为2的“性别”字段,应使用的SQL命令为( )。 A)ALTER TABLE ZG ADD 性别 C(2) B)ALTER TABLE ZG ADD 性别 WITH C(2) C)INSERT TABLE ZG ADD 性别 C(2) D)UPDATE STUDENT ZG ADD 性别 WITH C(2),设已打开表文件A1.DBF,执行命令COPY STRUCTURE TO B1的作用是( ) A)仅将当前一条记录拷贝到B1.DBF中 B)将A1.DBF的全部记录拷贝到B1.DBF中 C)将A1.DBF和B1.DBF的内容连接后再存入B1.DBF中 D)仅将表文件A1.DBF的结构复制到新建立的B1.DBF中,设当前所使用的数据表有10条记录,而当前记录指针指向第5条记录,则执行以下语句后,使记录指针指向第10条记录的语句是( ) A)LIST REST B)LIST ALL C)LIST NEXT 6 D)LIST RECORD 5,以下关于数据库及数据表的叙述中,不正确的是( )。 A) 数据库表的字段或记录可以定义有效性规则 B) 数据库表的字段名可超过10个字符 C) 在数据库设计器中,既可以创建数据库表,也可以创建自由表 D) 打开数据库之后,数据库包含的数据表并不一定被打开,在已打开的表文件中有“学号”字段,此外又定义了一个内存变量“学号”,要把内存变量的“学号”的值传送给当前记录的学号字段,应用使用命令( ) A)学号=M-学号 B)REPLACE 学号 WITH M-学号 C)STORE M-学号 TO 姓名 D)GATHER FROM M-学号 FILESDS 学号,以下关于Visual Foxpro的数据库操作的叙述中,正确的是( ) A)OPEN DATABASE和MODIFY DATABASE的功能相同 B)打开数据库之后,数据库包含的数据表并不一定被打开 C)使用DELETE DATABASE命令删除数据库的同时,数据库所包括的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 试析创业板公司激励性股票期权制度研究
- 公司流程制度管理制度
- 安徽省鼎尖联考2024-2025学年高二下学期5月月考语文试卷(含答案)
- 江苏开放大学2025年春大学英语(A)复习题2参考答案
- 贵州省毕节市2024-2025学年高三下册第二次模拟(3月)数学试卷
- 多模态命令解析技术-洞察阐释
- 沈阳精益管理发言材料
- 南昌大学招聘笔试真题2024
- 社区社区服务设施使用效率管理基础知识点归纳
- 跨行业合作在推动中国式养老金融中的作用
- 光伏电站售后服务承诺书
- 相位对焦技术原理
- 珊瑚化石科普知识讲座
- 中小学德育工作指南实施手册
- 学术规范与学术道德课件
- (新湘科版)六年级下册科学知识点
- 短视频的拍摄与剪辑
- 合格供应商的声明函和承诺书范文
- 小学数学《年龄问题》ppt
- 部编版初中语文课后习题答案
- 数据链系统与技术(第2版) 课件 第5、6章 无人机数据链、数据链的消息格式
评论
0/150
提交评论